服务接口调用

1、系统提供API接口

系统提供一些常用的API接口,例如:地址查询、邮政编码查询、快递查询等,供开发者免费使用。例如:查询BMI体质指数这个意图,就需要调取API接口。首先通过槽位识别, 获取用户的身高和体重,然后通过调用BMI计算的API, 给出明确的回复。下面是使用范例:

首先回复类型处选择需要的系统API,例如BMI计算器:

api

然后点击右侧“接口配置”,将输入参数与语义槽对应起来,保证语义槽的传递。

api

这里的输出参数不需要开发者配置,系统会对其自动建槽,并关联接口回填词典。如果想要更改,也可以删除系统填写的语义槽名称,重新定义新的语义槽名称。点击确定后,语义槽设置中即会显示输出参数对应的语义槽名称。

api

开发者也可以在API配置中进行接口调试,参看API是否生效。在调试页面输入身高和体重数值,即可查看返回的结果状态。

api

配置完成后,开发者即可在返回的每个查询状态下,配置上相应的回复结果。

api

2、自定义API接口

如果系统API不能满足技能开发需要,平台也支持开发者上传自定义API。 点击自定义API 创建自定义接口,填写接口名称、URL、输入/输出参数、返回状态即可。

api

输入参数中,“参数”即为传递给 API 的参数名,“名称”用来表示该参数的含义,“是否必填”会在接口调用时检验参数是否有值,“输入建议”会在接口调试界面给出建议。

输出参数中,“参数”为 API 返回的参数名,“名称”用来表示该参数的含义。 返回状态中,“状态码”应和 API 能够返回的 err_code 一一对应,“名称”表示该状态码的含义。

api

点击保存后,即可在自定义接口中看到刚创建的 API,并可进行修改、删除操作。在服务接口调用右侧的下拉选项中的首部,可以看到已经创建的 API。‌

3、API配置方法

在服务接口调用右侧的下拉选项中选中希望使用的 API,点击右侧接口配置进行配置。

对于 API 的每个输入参数,都需要一个语义槽与之对应(供选择的列表为该意图中已经配置的语义槽),语义槽的内容将作为参数的值来调用 API,因此需要在语义槽设置部分建好语义槽,并设置好填槽方式。并可设置默认值以在未提供值时填充,可对必填参数设置追问话术(否则将使用默认追问话术)。

对于 API 的每个输出参数,系统将会自动建立与其名称相同的语义槽并设置其词典为 sys.接口回填,可以在回答中使用以展示返回信息。

api

接口调试标签中,可以设置每个参数的值,点击下方调试按钮,将会从 OpenAI 后端尝试调用接口,并展示返回的 JSON 响应。 此外,在服务接口调用下方,将会看到每个状态码所对应的标签, OpenAI 将会在获得对应状态码时跳转到响应标签进行后续操作,同样包括回复结果、服务接口调用、语义槽信息追问、机器人提问等。已填充返回信息的语义槽在后续步骤中同样可用。后续步骤中可以对相同语义槽进行覆盖填充。

api

4、配置用户鉴权

我们提供了帮助开发者识别用户鉴权信息的方案。

当开发者使用自定义接口时,可以根据自己的需要定义类似user_id的参数名称,并且自定义好预期对应的槽位。最后只要将此槽位关联到系统词典:sys.用户名即可。

(1) 添加自定义接口-定义用户鉴权参数

api

(2) 配置语义槽

api

(3) 关联系统词典sys.用户名

api

通过如上配置,可以通过对话的方式,将用户ID作为鉴权,与用户绑定。