本文介绍基于 HTTP 协议的多模态交互 API。
前提条件
已开通服务并获取与配置 API Key。请配置API Key到环境变量,而非硬编码在代码中,防范因代码泄露导致的安全风险。
服务地址
鉴权
需要在发起HTTP请求时,把API Key放在HTTP Header里(需要将your_api_key替换为真实的API Key):
消息类型
当前HTTP协议仅包含文本消息。文本消息是JSON格式字符串。
发起请求
Request - Input Message
发起HTTP请求。
一级参数 | 二级参数 | 类型 | 是否必选 | 说明 |
model | string | 是 | 阿里云百炼模型名称,固定为"multimodal-dialog",请直接复制使用 | |
input | directive | string | 是 | 指令名称:Request |
app_id | string | 是 | 客户创建的应用ID(获取APP ID),可在多模态交互开发套件控制台的“我的应用”页面查看 | |
dialog_id | string | 否 | 对话id,默认不填时是新对话,服务端会自动生成并在返回结果中下发,格式示例:"12345678-1234-1234-1234-1234567890ab",共36个字符。当希望继续之前的对话时,把当时服务端下发的dialog_id在这里传入 | |
text | string | 是 | 要处理的文本。
| |
parameters | client_info | object | 是 | 参数说明参考下方 parameters.client_info的参数说明表格 |
history | list[] | 否 | 客户自己组织的问答历史,会覆盖服务内默认维护的问答历史,影响后续所有问答。 | |
images | list[] | 否 | 需要分析的图片数据,仅多模态应用可支持图片问答,参数说明参考下方parameters.images的参数说明表格 | |
biz_params | object | 否 | 按需配置,参数说明参考下方parameters.biz_params的参数说明表格 |
一级参数 | 二级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|---|
user_id | string | 是 | 终端用户ID,客户根据自己业务规则生成,用来针对不同终端用户实现定制化功能。最大长度36个字符。 | |
device | uuid | string | 否 | 客户端全局唯一的ID,需要用户自己生成并传入SDK,最大长度40个字符。一个终端用户可以有多个设备,那么每一个设备的uuid都不同,但user_id相同。 |
network | ip | string | 否 | 调用方公网IP |
location | latitude | string | 否 | 调用方纬度信息,在需要客户端精确位置的业务场景提交 |
longitude | string | 否 | 调用方经度信息,在需要客户端精确位置的业务场景提交 | |
city_name | string | 否 | 调用方所在城市,指明客户端粗略位置 |
一级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
role | string | 是 | 本记录是哪个角色说的,只支持user, assistant两种。 注意:不支持设为system |
content | string | 是 | 具体文本内容 |
一级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
type | string | 是 | 图片类型,支持两种:base64/url |
value | string | 是 | 图片内容。
|
一级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
user_defined_params | json object | 否 | 需要透传给agent的参数,各类agent传递的参数参考调用官方Agent文档说明 |
user_prompt_params | json object | 否 | 用于设置用户自定义prompt变量,由用户自定义设置json中的key和value。管控台上配置自定义prompt变量的方法参考应用配置-提示词 |
user_query_params | json object | 否 | 用于设置用户自定义对话变量,由用户自定义设置json中的key和value。管控台上配置自定义对话变量的方法参考应用配置-对话变量 |
示例如下
文本下发事件
RespondingContent - Output Message
一级参数 | 二级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|---|
output | event | string | 是 | 事件名称:RespondingContent |
dialog_id | string | 是 | 对话ID | |
round_id | string | 是 | 本轮交互的ID | |
llm_request_id | string | 是 | 调用llm的request_id | |
text | string | 是 | 系统对外输出的文本,流式增量输出 | |
spoken | string | 是 | 合成语音时使用的文本,流式增量输出 | |
finished | bool | 是 | 输出是否结束 | |
finish_reason | string | 否 | 结束原因,目前只有一种:
| |
extra_info | object | 否 | 其他扩展信息,目前支持:
|
示例如下:
错误事件
报错信息。错误码说明可以参考官方文档:多模态交互套件-错误码
Error - Output Message
一级参数 | 类型 | 是否必选 | 说明 |
|---|---|---|---|
code | string | 是 | 错误码 |
message | string | 是 | 错误消息 |
request_id | string | 是 | 请求id |