- Transformer基础
- 常用的大语言模型
- 行业大语言模型
- 大语言模型评估
- 数据构造与清洗
- 分词器构造
- 大语言模型的微调
- 基于PEFT的LLaMA模型微调
- 基于人类反馈的强化学习框架
- 前沿偏好对齐方法
- 基于DPO的偏好对齐实战
- GPTs初体验
- GPTs的初阶使用
- GPTs的高阶使用
- 公开数据集
- 主流方法
- Text2SQL任务实战
- 角色扮演
- 角色扮演实战测试
- 基于Baichuan的角色扮演模型微调
- 对话要素抽取
- 对话要素抽取实战测试
- 基于Qwen的对话要素抽取模型微调
- Agent概述
- Agent的主要模块
- Agent的行为决策机制
- 主流Agent框架
- 基于知识库问答
- 向量数据库
- 基于知识库的大型语言模型问答实战
- AutoGPT概述
- LangChain概述
- 使用LangChain构建AutoGPT
- 运行AutoGPT
GPTs可以使用自己内置的插件或通过配置Actions动作来调用外部工具。而Actions可以理解为函数调用的一种具体形式,通过对具体函数定义一个Schema,ChatGPT 模型可以利用自然语言来调用函数或工具,从而执行特定的任务。目前Actions在工具调用过程中支持GET方法、POST方法、PUT方法和DELETE方法。
本小节以搭建一个“健康管理”应用为例,为读者介绍如何在GPTs中通过配置Actions来调用外部工具。而待搭建的“健康管理”应用主要功能是通过用户输入的身高和体重计算用户的BMI值,从而判断用户的身材是否在标准范围内,当BMI指标过低或过高时,给出一些健康管理的建议。
用户配置Actions动作时,需要在Configure页面的Actions部分单击Create newaction按钮,进入Actions页面,如图4-21所示。Actions编辑页面如图4-22所示,包含Schema(编辑)部分、Authentication(身份验证)部分和Privacy policy(隐私权政策)部分。
Schema部分主要是根据OpenAI的API要求,将外部工具相关信息按照规定格式进行信息录入,以方便ChatGPT可以准确调用外部工具。如果外部工具是按照OpenAI的API标准开发的接口,可以直接在Import from URL处导入对应openapi.yaml文件即可,如图4-23和图4-24所示;如果不是,则可以在Schema框中手动编写。GPTs提供了样例以作参考,单击Examples按钮,可以选择“Weather(JSON)”“Pet Store(YAML)”“Blank Template”,如图4-25所示。其中“Weather(JSON)”为一个天气查询API的JSON格式样例,“Pet Store(YAML)”为一个宠物商店API的YAML格式样例,“Blank Template”为一个空模板。
通过天气查询API的JSON格式样例可以发现,OpenAI的规范的主要部分包括“openapi”“info”“servers”“paths”和“components”5个部分,如图4-26 所示,具体如下。
·openapi:表示使用OpenAPI规范具体版本,目前为OpenAI的3.1.0版本规范。
·info:表示API的基本信息,包括标题、描述和版本号。
■title:API的标题名称,尽量与API功能对应。
■description:API的详细描述,需要说明该API的具体作用,ChatGPT会根据该描述内容判断何时调用API。
■version:API的版本号,可根据API实际版本进行填写。
·servers:表示API的服务器信息,指定了API的基本URL。
■url:API的根URL,一般为https://xxxx.com,注意如果是HTTP而非HTTPS时,服务可能无法调用。
·paths:表示API的可用路径和操作。
■/location:表示API的一个路径,需要根据具体API的具体路径进行编写。
◆get:表示可以执行HTTP GET请求来获取数据,若需要HTTP POST请求来获取数据,则使用post作为key。
◆description:描述了该操作的具体作用,当ChatGPT使用API时,会根据该描述内容来判断是否调用该操作。
◆operationId:操作的唯一标识符,在进行工具调用时,会使用定义好的标识符进行工具调用。
◆parameters:定义了操作所需的参数。
➢name:参数的名称。
➢in:参数的位置,当值为query时表示该参数是一个查询参数。
➢description:参数的描述,说明该参数的主要作用。
➢required:参数是否是必需的,其中true表示必需,false表示非必需。
➢schema:参数的格式,一般为字符串类型、整数类型等。
·components:组件,用于请求和响应数据的模式,以便在规范中引用和重用。
BMI计算器API链接:https://www.juhe.cn/docs/api/id/571。
“健康管理”应用需要利用身高和体重计算BMI值的API,来确认用户的BMI值是否正常,以便给出合理的健康管理建议。BMI计算器可以从互联网上找一个公开可以调用的API,或者自己本地实现并搭建一个API,但由于API需要公网才可以访问,因此本小节的BMI计算器API 直接选择一个公开的API,其具体调用参数如表4-4所示。
表4-4 BMI计算器API参数调用及输出说明
根据OpenAI的API规范将上述BMI计算器API进行Schema编写,详细内容如下。
将接口规范JSON输入Schema窗口时,如果输入内容正确,则会增加Available actions模块,用于显示当前可以调用的动作,如图4-27所示。单击Test按钮,则可以在预览页面进行API测试,详细如图4-28所示。
当API需要API key或OAuth身份验证时,可以单击Authentication部分的 按钮进行相应配置,否则为None即可,如图4-29所示。
根据“健康管理”应用的功能需求,与GPT Builder交互来创建应用,在应用创建过程中,需要告知使用Actions来计算BMI值。“健康管理”应用的配置信息如表4-5所示。对搭建的“健康管理”应用进行预览测试,如图4-30所示,根据给出的身高、体重等相关信息,先调用外部BMI计算API工具,再对获取结果进行描述,最终给出健康管理建议。
▼表4-5 “健康管理”应用的配置信息