当前位置: 首页 > article >正文

JMeter与大模型融合应用之JMeter菜单栏中切入大模型交互详解

JMeter与大模型融合应用之JMeter菜单栏中切入大模型交互详解

门槛要求

本文开始,我们就具体针对JMeter与大模型之间的具体功能实现进行详细介绍。在具体介绍之前,这里需要说明几点:
第一:本文所有开发的特性都是基于JMeter 5.1.1版本进行开发。
第二:针对JMeter如何从官网下载源码到本地并且搭建开发环境已经在我其他文档中进行详细说明,这里不再赘述。

需求描述

我们目前要在JMeter上实现如下功能:
在这里插入图片描述
特性1:在TCtools的一级菜单中增加一个二级菜单,菜单名称为AI Assistant,如果切换成简体中文的时候,菜单名称AI助手
特性2:AI Assistant能够弹出AI助手界面,在界面中有2个框和2个按钮,其中一个框用来展示跟大模型交互的内容,另外一个框为输入框,用于输入我们的问题,点击“发送内容”可以把问题发送给大模型,大模型收到内容后把结果返回到界面进行展示,点击“清空内容”能够清空交互的历史内容。
下面我们继续详细介绍如何开发上述特性。

特性开发详解

二级菜单添加

第一步:在org/apache/jmeter/gui/action/ActionNames.java类中新增如下代码

public static final String AI_ASSISTANT     = "ai_assistant"; 

第二步:在org/apache/jmeter/resources/messages.properties文件中新增一个key-value值,结果如下

ai_assistant=AI Assistant

第三步:在同样的路径下找到messages_zh_CN.properties文件中新增一个key-value值,结果如下

ai_assistant=AI助手

上述第二步和第三步,完成了菜单栏中中英文展示的具体菜单名称
第四步:在org/apache/jmeter/gui/util/JMeterMenuBar.java类中,我们需要在我们对应的TCtool一级菜单栏中添加对应的代码来完成二级菜单,这里小伙伴根据自己实际的应用看是否需要新建一级菜单或者是依附在原有的一级菜单中增加二级菜单,我们添加的代码如下

 private void makeTCMenu(){
   
        //代码省略
        JMenuItem aiAssistant = makeMenuItemRes("ai_assistant", ActionNames.AI_ASSISTANT);//$NON-NLS-1$
        //代码省略
        TCMenu.add(aiAssistant);
        //代码省略
    }

至此二级菜单已经增加完成。

菜单功能开发

菜单开发完成以后,我们要对对应的菜单添加相应的功能。
第一步:在org/apache/jmeter/gui/action文件夹下,新增一个AIAssistant.java,并且我们对应的代码如下

import org.apache.jmeter.gui.action.AbstractAction;
import org.apache.jmeter.gui.action.ActionNames;
import org.apache.jmeter.sptp.gui.ChatWindow;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;


public class AIAssistant extends AbstractAction {
   

    //设置事件
    private static final Logger log = LoggerFactory.getLogger(AIAssistant.class);
    private static final Set<String> commandSet;
    static {
   
        Set<String> commands = new HashSet<>();
        commands.add(ActionNames.AI_ASSISTANT);
        commandSet = Collections.unmodifiableSet(commands);
    }

    //获取事件列表
    @Override
    public Set<String> getActionNames(){
   
        return  AIAssistant.commandSet

http://www.kler.cn/a/324201.html

相关文章:

  • linux企业中常用NFS、ftp服务
  • Spring整合Redis
  • Day44 | 动态规划 :状态机DP 买卖股票的最佳时机IV买卖股票的最佳时机III
  • 软件设计师 - 第1章 计算机网络概论
  • 金融领域先锋!海云安成功入选2024年人工智能先锋案例集
  • <AI 学习> 下载 Stable Diffusions via Windows OS
  • RTA-OS Port Guide学习(三)-基于S32K324 OS
  • php学习基础语法学习
  • 玩转图像处理:Python与OpenCV实现高效绿幕背景替换
  • 基于监控易,了解IT设备的监控策略
  • Linux基础入门 --12 DAY(SHELL脚本编程基础)
  • 力扣 简单 112.路径总和
  • 小徐影院:Spring Boot驱动的影院管理系统
  • 57 长短期记忆网络(LSTM)_by《李沐:动手学深度学习v2》pytorch版
  • ansible 配置
  • Acwing 质数
  • AAMAS 24 | 基于深度强化学习的多智能体和自适应框架用于动态组合风险管理
  • 【HTML5】html5开篇基础(4)
  • 使用transformers调用Qwen2-VL-7B-Instruct
  • 【算法题】221. 最大正方形-力扣(LeetCode)
  • 【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL66
  • 负载均衡--会话保持失败原因及解决方案(五)
  • 鸿蒙harmonyos next纯flutter开发环境搭建
  • HTML基础用法介绍二
  • Goland使用SSH远程Linux进行断点调试 (兼容私有库)
  • Leetcode基础算法篇|202409(4)贪心算法