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

GPT实战系列-ChatGLM3管理工具的API接口

GPT实战系列-ChatGLM3管理外部借力工具

用ChatGLM的工具可以实现很多查询接口和执行命令,外部工具该如何配置使用?如何联合它们实现大模型查询助手功能?例如调用工具实现股票信息查询,网络天气查询等助手功能。


LLM大模型相关文章:

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

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

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

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

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


配置tools信息

tools = [{'name': 'querystock', 'description': '查询指定股票的实时价格', 'parameters': {'type': 'object', 'properties': {'symbol': {'description': '需要查询的股票代码'}}, 'required': []}}, 
]

参数解释:

"name":为配置tool工具名;"description":对工具的描述;"parameters":"type":数据类型默认为"object";"properties":在此定义工具的属性以及对属性值的描述;"required": 需要返回的属性;

系统描述接口调用

system_item = {"role": "system","content": "Answer the following questions as best as you can. You have access to the following tools:","tools": tools}

程序中调用语句以便实现工具调用

tokenizer = AutoTokenizer.from_pretrained(TOKENIZER_PATH, trust_remote_code=True)
model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True, device_map="auto").eval()past_key_values, history = None, [system_item]

调用模型时,当对话query和tool相关时,模型会自动调用tool并反馈

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

期望调用工具得到输出为:

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

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

调用工具,生成回复

此时需要自行实现调用工具的逻辑。假设已经得到返回结果,将结果以 json 格式返回给模型并得到回复。

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

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

经LLM整理信息后,期望得到的输出为

根据您的查询,经过API的调用,股票 sz000001 的价格是 9.270。

表示本次工具调用已经结束,模型根据返回结果生成回复。

可以根据返回的 responsestr 还是 dict 来判断返回的是生成的回复还是工具调用请求。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End


GPT专栏文章:

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

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

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

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

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

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

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

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

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

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

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

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

相关文章:

  • 浏览器深色模式
  • C++ OpenGL 3D Game Tutorial 2: Making OpenGL 3D Engine学习笔记
  • python期末考试:python的基本使用
  • GPT-4技术报告的解读(二)
  • 【Python】数据可视化--基于TMDB_5000_Movie数据集
  • 大一统的监控探针采集器 cprobe
  • Linux 脚本编程题库
  • 【2024】OAK智能深度相机校准教程
  • SpringBoot 入门 SpringBoot 与其他项目整合 集成 Druid 数据库连接池 集成 Log 日志 配置修改
  • Python从入门到精通秘籍五
  • ssm基于vue的儿童教育网站的设计与实现论文
  • 解决ELK日志收集中Logstash报错的关键步
  • NI PXIe-6386国产替代,8路AI(16位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块
  • 恢复 iPhone 和 iPad 数据的 10 个好工具 - [苹果数据恢复]
  • TongLINKQ(1):TongLINKQ概述
  • Brief introduction of how to 'Call, Apply and Bind'
  • codis proxy处理流程
  • DOM的那些事
  • Elasticsearch 参考指南(升级前重新索引)
  • Golang-长连接-状态推送
  • HTTP中GET与POST的区别 99%的错误认识
  • iOS小技巧之UIImagePickerController实现头像选择
  • JAVA多线程机制解析-volatilesynchronized
  • MySQL数据库运维之数据恢复
  • Python爬虫--- 1.3 BS4库的解析器
  • ReactNativeweexDeviceOne对比
  • SpriteKit 技巧之添加背景图片
  • tensorflow学习笔记3——MNIST应用篇
  • Vue UI框架库开发介绍
  • 二维平面内的碰撞检测【一】
  • - 概述 - 《设计模式(极简c++版)》
  • 高程读书笔记 第六章 面向对象程序设计
  • 赢得Docker挑战最佳实践
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 阿里云服务器如何修改远程端口?
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2015)JS ES6 必知的十个 特性
  • (4.10~4.16)
  • (C#)获取字符编码的类
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)Linux——Linux常用指令
  • (二)springcloud实战之config配置中心
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)Oracle 9i 数据库设计指引全集(1)
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET 8.0 发布到 IIS
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .php文件都打不开,打不开php文件怎么办