本文对会话接口请求与相应参数进行了解释说明,并提供了相关示例以及错误码以便于您在调用接口时查阅。
阅读提示
请先阅读:大模型会话接口集成概述。
会话接口请求
请求链接
https://alime-ws.aliyuncs.com/sse/paas4Json/{AccessToken}/{ChannelId}/{Sign}/{Timestamp}
请求链接参数说明
名称 | 描述 |
AccessToken | 认证Token。调用ApplyForStreamAccessToken - 获取流式调用的连接信息接口获取。 |
ChannelId | 流式通道。调用ApplyForStreamAccessToken - 获取流式调用的连接信息接口获取。 |
Sign | 签名,通过加签协议生成。参考会话接口签名。 |
Timestamp | 时间戳,是获取sign的加签元素之一,可直接取系统时间毫秒值作为时间戳。 |
请求体参数(JSON)
名称 | 类型 | 是否必填 | 描述 |
messageId | String | 是 | 请求调用的唯一标志,在系统内部用于幂等判断,建议使用UUID。 |
action | String | 是 | 固定值:TongyiBeebotChat。 |
version | String | 是 | 固定值:2022-04-08。 |
data | List | 是 | 详见下列会话请求参数。 |
InstanceId | String | 是 | 机器人ID,例如:chatbot-cn-dDmF3jcdVf。 |
Utterance | String | 是 | 机器人访问者的输入。长度限制128个字符。 |
SessionId | String | 否 | 会话ID,用于标识一个访问者的会话和保持上下文信息。 |
SenderId | String | 否 | 访问者ID。用于识别当前会话中的用户。 |
SenderNick | String | 否 | 当前会话中访问的昵称。 |
VendorParam | JSON String | 否 | 是一个JSON格式的用户自定义参数集(随路参数),可以传入用户自定义的参数到各对话引擎,例如:
|
Perspective | Array of String | 否 | 视角编码,用于调用同一知识标题下不同视角的答案。在拼装请求参数时,需要以Perspective={视角编码}的格式传递参数。如:&Perspective=["FZJBY3raWr"]。 |
SandBox | Boolean | 否 | 测试、正式环境标识,默认为正式环境。
|
Command | String | 否 | 请求的指令信息。 当前支持传入TIMEOUT:触发对话工厂超时话术。 GUIDEPOST:触发对话工厂异步服务,详见异步服务使用手册。 |
响应参数说明
如果返回HTML代码,则说明URL上的参数不正确。
字段名 | 类型 | 描述 |
success | Boolean | 是否成功。 |
code | String | 错误码(success为false时)。 |
message | String | 错误提示(success为false时)。 |
messageId | String | 请求的messageId。 |
requestId | String | 每段响应推送的requestId。 |
data | Array | 接口返回结果 data格式:
value为会话接口的响应结果。 |
SessionId | String | 本次会话的ID。 |
MessageId | String | 本条会话应答消息的ID。 |
SequenceId | String | 本条会话应答消息的某一段内容的ID。 |
Source | String | 答案来源,可能为空。 任务型对话:TASK_DRIVEN_DIALOGUE 结构化数据表知识:STRUCTURAL_KNOWLEDGE 半结构化/非结构化知识:NON_STRUCTURAL_KNOWLEDGE SYSTEM_ASK_CONFIG:问答策略配置。 |
StreamEnd | Boolean | 流式返回是否结束。 |
MessageBody | MessageBody | 大模型返回的消息体。 |
Type | String | 答案类型。 Direct:直出。 Clarify:反问或者澄清。 |
DirectMessageBody | DirectMessageBody | 当Type为Direct时,此字段包含机器人返回的DirectMessageBody对象。 |
SentenceList | Array of Sentence | 大模型输出的答案,内容可能分成多段,可以分段展示。 |
Content | String | 大模型输出的答案段落。 |
ReferNumber | Integer | 段落序号。 |
ContentType | String | 答案内容的数据类型。 枚举值如下: PLAIN_TEXT:纯本文。 RICH_TEXT: 富文本。 |
HitSystemAskConfig | String | 命中的问答策略配置,可能为空。 SENSITIVE_WORD:敏感词。 NO_ANSWER:无答案。 GPTQA_MODEL:模型兜底回复。 COMMANDS:指令。 |
AnswerReference | AnswerReference | 答案引用内容。 |
ItemList | Array of Item | 引用内容列表,字段详情请参见ItemList字段释义。 |
Ext | Map<String, Object> | 各种答案来源个性化信息。 |
EXTERNAL_FLAGS(Source=TASK_DRIVEN_DIALOGUE时) | Map | 流程中配置的EXTERNAL_FLAGS透出。 |
RelatedQuestionList | Array of RelatedQuestion | 关联问题。 |
Content | String | 关联问题的内容。 |
ClarifyMessageBody | ClarifyMessageBody | 当Type为Clarify时,此字段包含机器人返回的ClarifyMessageBody对象。 |
ClarifyContent | String | 大模型澄清的完整回复。如: 你想咨询的是哪个学校:清华大学还是北京大学? |
Title | String | 澄清的标题,如:你想咨询的是哪个学校 |
ClarifyList | Array of Clarify | 澄清内容列表,接入方可以依据此数据实现点击后继续提问的效果。 如:清华大学、北京大学。 |
Commands | Map<String, Object> | 此字段返回指令携带的参数。字段详情请参见Commonds字段释义。 |
示例说明
请求示例
会话接口链接示例:
此链接仅参考作用,请不要直接使用。https://alime-ws.aliyuncs.com/sse/paas4Json/121ccf51-94bf-4035-b7b4-4596ec1c03b4/e8c472e8-ddd8-42c8-b042-a89c7caa346d/d18120b6d9f83953b56340443f75188f/1718179407815
请求体:
{
"messageId": "9b73cec6-c6d0-4424-8427-1307eaa0b9fb",
"action":"TongyiBeebotChat",
"version":"2022-04-08",
"data": [
{
"type": "JSON_TEXT",
"value": "{\"InstanceId\":\"chatbot-cn-dDmF3jcdVf\",\"Utterance\":\"你有什么技能?\",\"VendorParam\":\"{\\\"docLabels\\\":\\\"30022351214\\\"}\",\"Perspective\":[\"cnfKrDEfFa\",\"deasdSKoipa\"]}"
}
]
}
返回示例
{
"data": [
{
"type": "JSON_TEXT",
"value":"{\"MessageBody\":{\"DirectMessageBody\":{\"ContentType\":\"RICH_TEXT\",\"Ext\":{},\"HitSystemAskConfig\":\"GPTQA_MODEL\",\"SentenceList\":[{\"Content\":\"我作为一名人工智能助手,\"}]},\"Type\":\"Direct\"},\"MessageId\":\"d8720210-9588-4b49-b412-09648621a073\",\"SequenceId\":\"f186e72492214631a6a150b2288d269f\",\"SessionId\":\"cidu1dmqF8iUdz2gNonzzZAhsWsocstnJqThr+wp430evc=\",\"Source\":\"SYSTEM_ASK_CONFIG\",\"StreamEnd\":false}"
}
],
"messageId": "9b73cec6-c6d0-4424-8427-1307eaa0b9fb",
"requestId": "8362abad-cde4-4350-b89a-583429d00204",
"success": true
}
会话响应结果
返回示例中的value字段去除转义字符后得到的JSON对象。
{
"MessageBody": {
"DirectMessageBody": {
"ContentType": "RICH_TEXT",
"Ext": {},
"HitSystemAskConfig": "GPTQA_MODEL",
// 大模型输出的答案:把SentenceList列表每一个content为一个段落。
"SentenceList": [
{
"Content": "我作为一名人工智能助手,"
}
]
},
"Type": "Direct"
},
"MessageId": "d8720210-9588-4b49-b412-09648621a073",
"SequenceId": "f186e72492214631a6a150b2288d269f",
"SessionId": "cidu1dmqF8iUdz2gNonzzZAhsWsocstnJqThr+wp430evc=",
"Source": "SYSTEM_ASK_CONFIG",
"StreamEnd": false
}
其他的响应示例
Source=TASK_DRIVEN_DIALOGUE
{
"MessageBody":{
"Commands":{},
"DirectMessageBody":{
"ContentType":"PLAIN_TEXT",
"Ext":{
"EXTERNAL_FLAGS":{}
},
"SentenceList":[
{
"Content":"北京市晴,气温 8 摄氏度,东风 ≤3 级"
}
]
},
"Type":"Direct"
},
"MessageId":"7a2cdb51-af56-4ac9-9c6d-108905695ac9",
"SequenceId":"4861074fe523498ba3f397e876b60105",
"SessionId":"f3d7e960933411ee96144bea43fe4df3",
"Source":"TASK_DRIVEN_DIALOGUE",
"StreamEnd":true
}
Source=NON_STRUCTURAL_KNOWLEDGE
{
"MessageBody":{
"DirectMessageBody":{
"AnswerReference":{
"ItemList":[
{
"Content":"你好",
"ContentType":"RICH_TEXT",
"DataSource":"FAQ_DIRECT",
"Number":1,
"ReferenceExt":{
"DocName":"FAQ知识库"
},
"Title":"你好"
}
]
},
"ContentType":"RICH_TEXT",
"SentenceList":[
{
"Content":"你好",
"ReferNumber":1
}
]
},
"Type":"Direct"
},
"MessageId":"808a9cfb-2cec-4230-aad1-66c28df6040e",
"SequenceId":"32a052f098c14769b8b81ac202f38d01",
"SessionId":"595fa8a0940611eeb59a155f6621f5d6",
"Source":"NON_STRUCTURAL_KNOWLEDGE",
"StreamEnd":true
}
Source=SYSTEM_ASK_CONFIG
{
"MessageBody":{
"DirectMessageBody":{
"ContentType":"PLAIN_TEXT",
"HitSystemAskConfig":"NO_ANSWER",
"SentenceList":[
{
"Content":"我还没有学会这个问题,已经记录会尽快学习为您解答,请尝试询问我其他问题"
}
]
},
"Type":"Direct"
},
"MessageId":"f13833e7-9ca4-4a5b-8878-f5cc8a0a327c",
"SequenceId":"245c39ce1f11406bb3cf60b4d017dff0",
"SessionId":"6e7c44a0940111ee91e69d173591e2de",
"Source":"SYSTEM_ASK_CONFIG",
"StreamEnd":true
}
错误码
如果返回HTML代码,则说明URL上的参数不正确。
错误代码 | HTTP状态码 | 描述 |
InvalidInstanceId.NotFound | 404 | 指定的机器人ID不存在。 |
InvalidParameter | 400 | 参数不合法。 |
InternalError | 500 | 内部错误。 |
限流错误
如果并发超过版本并发,将会触发限流,相应示例如下:
{
"code": "csQueueBusy",
"data": [],
"message": "排队中:服务繁忙,请等待",
"messageId": "203bee17-c404-4b9c-ba96-cf3873237fa0",
"requestId": "18f80b3c-ff87-468c-b90f-0d31e4ce34b8",
"success": false
}