大语言模型实战

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 StoreYAML)”“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 “健康管理”应用的配置信息