API插件管理

本文介绍应用中心-插件中心的功能介绍。2024630日我们将升级调整插件功能,现有版本将会下线。详情请查看插件服务更新通知

操作说明

API插件的新建、编辑、展示等均在「插件中心」菜单中。

image

添加API插件

填写插件名称以及插件描述,点击下一步后保存插件的基本信息。

说明
  • 插件名称租户内唯一

  • 插件名称不能超过50个字符,插件描述不能超过500个字符

image

重要

插件描述,是LLM调度插件的重要判断依据。LLM会根据插件的描述信息判断是否使用该插件解决用户问题,同时会根据插件描述、插件出入参等信息构建Manifest信息传递给模型,模型根据以上信息对用户的输入进行识别槽位、填补槽位等操作,最终将识别的参数传递给API完成插件的执行。可以参考如何写好插件及API出入参的描述

更新插件详细配置

当前API插件支持HTTP/HTTPS协议直接对接到平台上。image

HTTP协议配置项说明

1、调用方式

当前支持最常用的两种调用协议GETPOST

2、接口地址

需要带上https/http的协议头

3、输入参数

由【参数code】【参数类型】【取值来源】【参数解释】共同组成。

说明

【参数code】为接口的入参code,【参数解释】是对该入参的功能描述,这两部分是Manifest的重要组成部分,是大模型对入参进行识别、挖槽位、填槽位的重要依据,所以对参数code和参数解释进行明确且有效的定义,可以参考如何定义好插件的入参

【取值来源】当前有两种:业务透传模型识别,默认为模型识别。

image.png

如果入参勾选为“模型识别”,则说明该参数值的来源需要大模型从用户输入中进行提取。

该参数会被构造在Manifest中一同传递给大模型,大模型根据该参数的配置,对用户的输入进行识别提取,在API调用时对指定参数进行赋值。

如果入参勾选为“业务透传”,则说明该参数值的来源是从外部主动透传过来的。

该参数不会传递给大模型,大模型也不会感知该参数,业务方通过“bizVars”进行透传,详见【应用调用】或【测试窗】。

假设一个场景,用户想在某电商平台咨询“xx手机多少钱”,由于用户在平台上有会员、优惠券等抵扣的优惠,所以计算xx手机多少钱是需要传给API两个参数:「xx手机」以及「用户id」。xx手机是需要大模型从用户的问题中识别出来的参数,选择【模型识别】;用户id是不会让用户在问题中体现出来的,这个时候就需要选择【业务透传】,并在调用的时候通过bizVars透传给应用当中。

【参数类型】当前仅支持简单类型,string字符串,number数字以及boolean布尔型。

4、输出参数

image.png

如上图为例,输出参数以data、errorInfostatus为主体结构,且不可编辑,status的返回值为string,仅接收success为成功的返回值,所以接入的api返回需要满足以下结构,否则会报错“插件API 返回结果与定义不一致。

{
 "data":{
 "a":"1",
 "b":"2",
 ……
 },
 "errorInfo":"",
 "status":"success"
}

data支持list、object以及其他基本类型(string、numberboolean),允许多重嵌套。由于大模型会根据出参的定义,再结合用户的问题,对api返回的结果进行筛选、重新组合,作为最终的答案返回给用户,所以出参与入参一样,也需要尽可能精简和描述准确,嵌套的层级也尽可能少,详见如何定义好插件的出参

测试API插件

平台为API插件的功能单测提供了测试窗功能。

image

image

按照要求填写入参值,点击插件测试,测试结果会打印在结果区域,结果会根据配置的输出参数结构进行json结构的解析,未配置具体结构的json会以jsonstring的形式显示。结果区域可以自由复制结果。

示例接口

为了方便用户体验测试,官方提供了一个接口用于体验调试功能(仅为mock接口,并不是真正天气查询接口,不可用于生产)

  • 接口url:https://bailian.aliyun.com/sample/weather/query

  • 协议:get

  • 入参:

  • city 城市,例如杭州

  • date 日期,例如今天或者2023-07-11

  • 出参:

  • status值为success

  • errorInfo值为空

  • data为字符串,返回例如晴,气温26~37℃

常出现的错误

错误code

错误信息

错误原因

15312

配置的插件API返回结果与系统强制规范不一致

系统调用插件API返回的结构体中未满足{status:"failed", data: {}, errorinfo: "this is error"}。常出现于直接配置了现成的API但未适配返回结构体。

如何解决:

需要重新编写接口适配代码,让返回的结构体符合要求。

15500

插件测试失败

插件测试调用发生异常。

如何解决:

如果注册的API接口返回了具体的错误信息,该错误信息会跟随错误码一并返回给开发者,开发者可以根据具体错误信息来排查问题。