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

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);}//获取事件列表@Overridepublic Set<String> getActionNames(){return  AIAssistant.commandSet

http://www.mrgr.cn/news/35027.html

相关文章:

  • HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结
  • C++编程:利用环形缓冲区优化 TCP 发送流程,避免 Short Write 问题
  • 单体架构 IM 系统之 Server 节点状态化分析
  • 51c嵌入式~单片机合集2
  • 基于Cocos Creator开发的打砖块游戏
  • 访问网页的全过程(知识串联)
  • 什么软件可以同声传译?5款高效沟通的翻译软件速速收藏
  • 低场核磁共振成像系统MRI的成像优势特点
  • 车辆合格证识别接口-汽车管理智能化-python示例
  • 外包功能测试干了4年,技术退步太明显了。。。。。
  • 【Docker】在 CentOS 上安装 Docker 的完整指南
  • python类的call方法与init方法
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(二)-索引
  • 嵌入式必备技能
  • AI推介-大语言模型LLMs之RAG(检索增强生成)论文速览(arXiv方向):2024.07.20-2024.08.15
  • 神经网络(二):卷积神经网络
  • visual studio 调试技巧
  • 如何进行“服务器内部错误”的诊断 | OceanBase诊断案例
  • 闰年判断-C语言
  • 使用Nginx反向代理为OneAPI配置https访问
  • LDRA Testbed(TBrun)软件单元测试_常见问题及处理
  • 紧急避坑 | MySQL 含有下划线的数据库名在特殊情况下导致权限丢失
  • 信息安全概论期末复习笔记
  • Java语言程序设计基础篇_编程练习题**18.38 (递归树)
  • JAVA开源项目 影城管理系统 计算机毕业设计
  • 【LeetCode面试150】——209单词规律