GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

news/2024/7/20 16:33:41 标签: ChatGLM3, GPT-assistant, LLM, RAG, LLM应用, Baichuan2, 大模型

GPT实战系列-icon-default.png?t=N7T8https://blog.csdn.net/alex_starsky/category_12467518.html

如何使用大模型查询助手功能?例如调用工具实现网络查询助手功能。目前只有 ChatGLM3-6B 模型支持工具调用,而 ChatGLM3-6B-Base 和 ChatGLM3-6B-32K 模型不支持。

定义好工具的格式后,以下是实践步骤:

LLM大模型相关文章:

GPT实战系列-探究GPT等大模型的文本生成

GPT实战系列-Baichuan2大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-大话LLM大模型训练

一、向助手提问题

history = [system_info]
query = "帮我查询股票10111的价格"
response, history = model.chat(tokenizer, query, history=history)
print(response)

这里期望得到的输出为

{"name": "querystock", "parameters": {"symbol": "10111"}}

这表示模型需要调用工具 querystock,并且需要传入参数 symbol

二、让助手查询

实现调用工具的查询逻辑。把第一步的返回结果以 json 格式,让助手模型回答。

result = json.dumps({"price": 12412}, ensure_ascii=False)
response, history = model.chat(tokenizer, result, history=history, role="observation")
print(response)

这里 role="observation" 表示输入的是工具调用的返回值而不是用户输入,不能省略。

三、小案例

欢迎使用 ChatGLM3-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序
​
用户:history = [system_info]
query = "帮我查询股票10111的价格"
response, history = model.chat(tokenizer, query, history=history)
print(response)
ChatGLM:{'name': 'track', 'parameters': {'symbol': 'AAPL'}}
​
结果:
ChatGLM:您需要查询的股票代码是10111,请稍等,我去调用API查询一下经过查询,股票10111的实时价格是23.51美元。请问您还有其他需要查询的股票吗?
​
结果:
ChatGLM:好的,我会将您的请求记录在历史记录中。请稍等,我现在去调用API进行查询经过查询,股票10111的实时价格是23.51美元。请问您还有其他需要查询的股票吗?
​

欢迎使用 ChatGLM3-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序
​
用户:将文本转换为语音
​
ChatGLM:{'name': '/text-to-speech', 'parameters': {'text': 'Hello, how are you?', 'voice': 'friendly', 'speed': 'medium'}}
​
结果:{'name': '/text-to-speech', 'parameters': {'text': 'Hello, how are you?', 'voice': 'friendly', 'speed': 'medium'}}
​
ChatGLM:非常感谢您的查询。根据您的要求,我已经使用我们公司提供的文本转语音API将您输入的文本转换成了语音。经过转换,您的文本“Hello, how are you?”已经变成了一个友好、中速的语音。如果您需要进一步的帮助或者有任何疑问,请随时告诉我。
​

助手工具调用已经结束,模型根据返回结果生成回复。对于比较复杂的问题,通过问题分解,模型可能需要进行多次工具调用。这时,可以根据返回的 responsestr 还是 dict 来判断返回的是生成的回复还是工具调用请求。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End


GPT专栏文章:

GPT实战系列-Baichuan2大模型的计算精度与量化-CSDN博客

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF-CSDN博客

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

GPT实战系列-大话LLM大模型训练

决策引擎专栏:

Falcon构建轻量级的REST API服务

决策引擎-利用Drools实现简单防火墙策略


http://www.niftyadmin.cn/n/5307962.html

相关文章

Qt6入门教程 3:创建Hello World项目

一.新建一个项目 程序员的职业生涯都是从一声问候开始的,我们的第一个Qt项目也是HelloWorld 首先要说明的是,IDE不一定要用Qt Creator,用Visual Studio、VSCode、CLion也可以搭建Qt开发环境,它们都相应的插件来支持Qt开发。当然这…

【Docker】容器的相关命令

上一篇:创建,查看,进入容器 https://blog.csdn.net/m0_67930426/article/details/135430093?spm1001.2014.3001.5502 目录 1. 关闭容器 2.启动容器 3.删除容器 4.查看容器的信息 查看容器 1. 关闭容器 从图上来看,容器 aa…

高校选课系统需求分析开发源码

高校学生选课报名系统包括学生、教师和管理员三方的功能需求,学生的需求是查询院系的课程、选课情况及个人信息修改;教师则需要查看和查询所有课程信息及自己的课程信息以及教师信息的修改;管理员则负责更为复杂的任务,包括对学生…

2023年全国职业院校技能大赛软件测试—测试计划模板参考文档

ERP(资源协同)管理平台测试计划 目录 ERP(资源协同)管理平台测试计划 1. 概述

创新资源再升级,打造全球领袖:复旦MBA iLab项目再出发

2023年11月6日,复旦MBA iLab商业咨询项目 (iLab项目)举行了为期一周、内容丰富的iLab咨询训练营活动。继去年新增投资与创业方向的投资项目之后,今年的iLab项目规模进一步实现增长,可供选择的科技创新类项目数量显着扩…

Java BIO、NIO、AIO、Netty知识详解(值得珍藏)

1. 什么是IO Java中I/O是以流为基础进行数据的输入输出的,所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入输出流。简单来说就是java通过io流方式和外部设备进行交互。 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领…

【JAVA】volatile 关键字的作用

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 volatile 的作用: 结语 我的其他博客 前言 在多线程编程中,保障数据的一致性和线程之间的可见性是…

物理与网络安全

物流环境安全 场地选择考虑抗震、承重、防火、防水、供电、空气调节、电磁防护、雷击及静电 场地因素: 自然灾害,社会因素(加油站、化工厂),配套条件(消防,交通,电力,…