本文对会话接口请求与相应参数进行了解释说明,并提供了相关示例以及错误码以便于您在调用接口时查阅。
阅读提示
请先阅读:大模型会话接口集成概述。
集成示例
网页端接入示例:【集成示例】网页端
钉钉端机器人接入示例:【集成示例】钉钉端机器人
微信客服接入示例:【集成示例】微信客服
企业微信接入示例:【集成示例】企业微信
Lark机器人接入示例:【集成示例】Lark机器人
会话接口请求
请求链接
https://alime-ws.aliyuncs.com/sse/paas4Json/{AccessToken}/{ChannelId}/{Sign}/{Timestamp}
请求链接参数说明
名称 | 描述 |
AccessToken | 认证Token。调用获取流式调用的连接信息接口获取。 |
ChannelId | 流式通道。调用获取流式调用的连接信息接口获取。 |
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 | 是 | 机器人访问者的输入。长度限制512个字符。 |
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:问答策略配置。 混合型知识:HYBRID_KNOWLEDGE |
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:无答案。 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": "9e268624-1853-4f8b-8bd6-41a7ad818d62",
"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": "{\"IsAIGC\":true,\"MessageBody\":{\"DirectMessageBody\":{\"AnswerReference\":{\"ItemList\":[]},\"ContentType\":\"RICH_TEXT\",\"RelatedQuestionList\":[],\"SentenceList\":[{\"Content\":\"我可以扮演各种专业角色来回答你的问题。无论你需要什么方面的专业知识,我都能尽力为你提供帮助。有什么具体问题可以问我哦!\"}]},\"Type\":\"Direct\",\"VoiceConfig\":{\"AsrMaxEndSilence\":\"700\",\"CollectNumber\":false,\"CollectVoice\":false,\"HangUp\":false,\"Interruptible\":false,\"ReplyTimeout\":5}},\"MessageId\":\"7a2c9996-64d4-4f08-8b90-5d78d43f84c7\",\"SequenceId\":\"d8d33d7fe5e244a4a37656a0d80bb003\",\"SessionId\":\"10fc717a-b2ee-4914-86a4-8f1d1f2a827c\",\"Source\":\"HYBRID_KNOWLEDGE\",\"StreamEnd\":false}"
}
],
"messageId": "9e268624-1853-4f8b-8bd6-41a7ad818d62",
"requestId": "7a2c9996-64d4-4f08-8b90-5d78d43f84c7",
"success": true
}会话响应结果
返回示例中的value字段去除转义字符后得到的JSON对象。
{
"MessageBody": {
"DirectMessageBody": {
"AnswerReference": {
"ItemList": [
]
},
"ContentType": "RICH_TEXT",
"RelatedQuestionList": [
],
"SentenceList": [
{
"Content": "我可以扮演各种专业角色来回答你的问题。无论你需要什么方面的专业知识,我都能尽力为你提供帮助。有什么具体问题可以问我哦!"
}
]
},
"Type": "Direct",
"VoiceConfig": {
"AsrMaxEndSilence": "700",
"CollectNumber": false,
"CollectVoice": false,
"HangUp": false,
"Interruptible": false,
"ReplyTimeout": 5
}
},
"MessageId": "7a2c9996-64d4-4f08-8b90-5d78d43f84c7",
"SequenceId": "d8d33d7fe5e244a4a37656a0d80bb003",
"SessionId": "10fc717a-b2ee-4914-86a4-8f1d1f2a827c",
"Source": "HYBRID_KNOWLEDGE",
"StreamEnd": false,
"IsAIGC": true
}其他的响应示例
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
命中异常提示话术:HitSystemAskConfig=NO_ANSWER
{
"MessageBody": {
"DirectMessageBody": {
"Ext": {},
"AnswerReference": {
"ItemList": []
},
"ContentType": "RICH_TEXT",
"SentenceList": [
{
"Content": "机器人正忙,请稍后重试"
}
],
"HitSystemAskConfig": "NO_ANSWER",
"RelatedQuestionList": []
},
"VoiceConfig": {
"ReplyTimeout": 5,
"Interruptible": false,
"HangUp": false,
"AsrMaxEndSilence": "700",
"CollectVoice": false,
"CollectNumber": false
},
"Type": "Direct"
},
"MessageId": "6B15B50A-46D0-50DD-8EB4-5E82E931B331",
"SequenceId": "e140735e71014ff78ee84a2692a231a4",
"SessionId": "797acf6e-96b7-435b-9156-8a92ccefba1c",
"Source": "SYSTEM_ASK_CONFIG",
"StreamEnd": true,
"IsAIGC": true
}命中安全预设话术:HitSystemAskConfig=SENSITIVE_WORD
{
"success": true,
"MessageBody": {
"DirectMessageBody": {
"AnswerReference": {
"ItemList": []
},
"ContentType": "PLAIN_TEXT",
"HitSystemAskConfig": "SENSITIVE_WORD",
"RelatedQuestionList": [],
"SentenceList": [
{
"Content": "您说的这个问题我不能回答您,您可以尝试询问其他问题"
}
]
},
"Type": "Direct"
},
"MessageId": "d163a0b1-cce4-41c3-8502-d314f464485e",
"SequenceId": "b7d96983212340f8ad672aee03e9c28f",
"SessionId": "c44f27edf48246b5b95c79035cbfac33",
"Source": "SYSTEM_ASK_CONFIG",
"StreamEnd": true,
"IsAIGC": true
}命中指令:HitSystemAskConfig=COMMANDS
{
"success": true,
"MessageBody": {
"Commands": {
"sysToAgent": "{\"skillGroup\":\"\",\"ext\":\"\",\"toAgentReason\":\"HitEmotion\"}"
},
"DirectMessageBody": {
"AnswerReference": {
"ItemList": []
},
"ContentType": "PLAIN_TEXT",
"HitSystemAskConfig": "COMMANDS",
"RelatedQuestionList": [],
"SentenceList": [
{
"Content": "正在为您转接人工客服"
}
]
},
"VoiceConfig": {
"AsrMaxEndSilence": "700",
"CollectNumber": false,
"CollectVoice": false,
"HangUp": false,
"Interruptible": false,
"ReplyTimeout": 5
},
"Type": "Direct"
},
"MessageId": "5d7db238-7c7e-4adb-b00f-fc22183dbdda",
"SequenceId": "2be71925e6fe4556bcfcbaaa0456e6d3",
"SessionId": "a78f6a070a574bb69cea4ee0108b2370",
"Source": "SYSTEM_ASK_CONFIG",
"StreamEnd": true,
"IsAIGC": 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
}