文档

流式会话接口

更新时间:

阅读提示

请先阅读:大模型会话接口集成概述

1 会话接口请求

1.1 请求链接

https://alime-ws.aliyuncs.com/sse/paas4Json/{AccessToken}/{ChannelId}/{Sign}/{Timestamp}

1.2 请求链接参数解释

名称

描述

AccessToken

认证Token。调用ApplyForStreamAccessToken - 获取流式调用的连接信息接口获取。

ChannelId

流式通道。调用ApplyForStreamAccessToken - 获取流式调用的连接信息接口获取。

Sign

签名,通过加签协议生成。参考会话接口签名

Timestamp

时间戳,是获取sign的加签元素之一,可直接取系统时间毫秒值作为时间戳

1.3 请求体参数(JSON)

名称

类型

是否必填

描述

messageId

String

请求调用的唯一标志,系统内部用于幂等判断,建议使用UUID

action

String

固定值:TongyiBeebotChat

version

String

固定值:2022-04-08

data

List

详见会话请求参数

1.3.1 会话请求参数

名称

类型

是否必填

描述

InstanceId

String

机器人ID

Utterance

String

机器人访问者的输入。长度限制128个字符

SessionId

String

会话ID,用于标识一个访问者的会话和保持上下文信息

Command

String

请求的指令信息。

当前支持传入TIMEOUT:触发对话工厂超时话术

GUIDEPOST:触发对话工厂异步服务,详见异步服务使用手册

SenderId

String

访问者ID。用于识别当前会话中的用户

SenderNick

String

当前会话中访问的昵称

VendorParam

JSON String

是一个JSON格式的用户自定义参数集,可以传入用户自定义的参数到各对话引擎,例如:

  • 参数为单个值:{"phone":123456789}

  • 参数为数组:{"name":["a","b","c"]}

SandBox

Boolean

测试、正式环境标识,默认为正式环境

true:测试环境,仅限测试使用,生产使用有不稳定、QPS限制等风险。

false:正式环境

3 响应参数说明

字段名

类型

描述

success

Boolean

是否成功

code

String

错误码(success为false时)

message

String

错误提示(success为false时)

messageId

String

2.3中请求的messageId

requestId

String

每段响应推送的requestId

data

List

接口返回结果

data格式:

[
  {
    "type": "JSON_TEXT",
    "value": ""
  }
]

value为会话接口的响应结果,详见:会话响应结果

3.1 会话响应结果

字段名

类型

描述

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

消息体,可能为空

3.1.1 MessageBody

字段名

类型

描述

Type

String

答案类型。

Direct:直出

Clarify:反问或者澄清

DirectMessageBody

DirectMessageBody

当Type为Direct时,此字段包含机器人返回的DirectMessageBody对象

ClarifyMessageBody

ClarifyMessageBody

当Type为Clarify时,此字段包含机器人返回的ClarifyMessageBody对象

Commands

Map<String, Object>

此字段返回指令信息。字段详情见Commonds字段释义

DirectMessageBody字段说明

字段名

类型

描述

HitSystemAskConfig

String

命中的问答策略配置,可能为空

SENSITIVE_WORD:敏感词

NO_ANSWER:无答案

GPTQA_MODEL:模型兜底回复

COMMANDS:指令

ContentType

String

答案内容的数据类型

枚举值如下:

PLAIN_TEXT:纯本文

RICH_TEXT: 富文本

CARD_TEMPLATE:卡片模板

SentenceList

Array of Sentence

当ContentType为PLAIN_TEXT、RICH_TEXT,内容可能分成多段,可以分段展示。

字段详情见Sentence字段释义

CardTemplateContent

JSONString

当ContentType为CARD_TEMPLATE,该字段返回卡片模板格式的机器人答案信息。字段详情见CardTemplateContent字段释义

AnswerReference

AnswerReference

答案引用内容

字段详情见AnswerReference字段释义

Ext

Map<String, Object>

各种答案来源个性化信息。字段详情见Ext字段释义

RelatedQuestionList

Array of RelatedQuestion

关联问题。字段详见RelatedQuestion字段释义

Sentence字段释义

字段名

类型

描述

Content

String

文本内容

ReferNumber

Integer

段落序号

AnswerReference字段释义

字段名

类型

描述

ItemList

Array of Item

引用内容列表

Item字段释义

字段名

类型

描述

Number

Integer

引用的序号,需要从1开始

DataSource

String

数据来源,枚举值:

FAQ_DIRECT:高频问答高置信直出

FAQ:高频问答

DOC:文档

WEBSITE:网站

QUARK:夸克

TABLE:表格

EXTERNAL_DATA_SOURCE:元数据

FLOW:流程

FUNCTION:API插件

ContentType

String

引用的数据类型

枚举值如下:

PLAIN_TEXT:纯本文

RICH_TEXT: 富文本

CARD_TEMPLATE:卡片模板

Content

String

当ContentType为PLAIN_TEXT、RICH_TEXT,该字段返回相应格式的引用的文本信息

当ContentType为CARD_TEMPLATE,该字段类型为JSONString,返回卡片模板格式的引用信息。字段详情见CardTemplateContent字段释义

Title

String

DataSource为FAQ:高频问答知识标题

DataSource为DOC、WEBSITE、QUARK:文档标题

DataSource为TABLE、EXTERNAL_DATA_SOURCE:数据表名称

DataSource为FLOW:流程名称

DataSource为FUNCTION:API插件名称

ReferenceExt

Map<String, Object>

来源于不同DataSource的个性化引用的信息。字段详情见ReferenceExt字段释义

ReferenceExt字段释义

DataSource=DOC/WEBSITE/QUARK时:

字段名

类型

描述

DocName

String

文档名称

PageUrls

Array of String

引用内容所在页URL

PagePos

Array of PageBlockPos

引用内容所在页坐标

Meta

JSONString

引用的文档Meta信息

依赖DataSource

当WEBSITE/QUARK时:系统内置 {"url":""}

当DOC时:客户自定义

PageBlockPos

字段名

类型

描述

X

Integer

x坐标

Y

Integer

y坐标

Width

Integer

引用内容所在页面的宽度

Height

Integer

引用内容所在页面的高度

PageId

String

引用内容所在页的页码

Ext字段释义

Source=TASK_DRIVEN_DIALOGUE时:

字段名

类型

描述

EXTERNAL_FLAGS

Map

流程中配置的EXTERNAL_FLAGS透出

RelatedQuestion字段释义

字段名

类型

描述

Content

String

关联问题的内容

卡片模板数据说明

CardTemplateContent字段释义

字段名

类型

描述

code

String

卡片模板的code

枚举值如下:

数据问答卡片模板:llm-databot-card

data

Map<String, Object>

卡片模板的数据。

不同模板code数据字段可以参考卡片模板数据字段释义

卡片模板数据字段释义

code=llm-databot-card

字段名

类型

描述

title

String

标题

subTitle

String

子标题,如20230901-20230930。只有因子分析、异常检测有

analysisType

String

只有智子分析场景有

FACTOR_ANALYSIS、ANOMALY_DETECTION

cellList

Array of Array

结果值,第一行是表头名称,后续是每一行所对应的文本值。输出结果会对表头进行排序,数值指标返回在前,中间是维度信息,最后是日期信息。

drawType

String

结果渲染方式

line:线形图

table:表格

factor:因子分析

abnormal:异常检测

bar:柱状图

pie:饼图

recommendList

Array of RecommendColumn

推荐、澄清、反问

anomalyNodes

Array of AnomalyNode

异常检测 node

factorAnalysisReasons

Array of FactorAnalysisReason

因子分析 node

factorAnalysisTitle

String

因子分析标题

clickable

Boolean

标识是否可以单击

message

String

错误信息

RecommendColumn

字段名

类型

描述

title

String

推荐标题

contentList

Array of ColumnContent

列信息

ColumnContent

字段名

类型

描述

show

String

展示信息

echo

String

单击展示信息时,用于发起请求的Query

AnomalyNode

字段名

类型

描述

date

String

日期

tag

String

标志是否是异常点

value

Double

纵坐标数值

FactorAnalysisReason

字段名

类型

描述

reasonTitle

String

原因标题

reasons

Array of String

详细原因列表

ClarifyMessageBody

字段名

类型

描述

Title

String

标题

ClarifyList

Array of Clarify

反问信息列表

ClarifyContent

String

澄清的完整回复,用于模型生成的澄清内容或者语音机器人场景。

Clarify

字段名

类型

描述

Title

String

反问内容,可能是

数据文档的列值

Commands

Commands 系统内置指令

参数名称

参数类型

参数含义

value值示例

内置value字段释义

sysToAgent

string

系统内置转人工指令

{\"skillGroup\":\"12\",\"ext\":\"abc\",\"toAgentReason\":\"MultiTurnNoAnswer\"}

skillGroup: 技能组信息

ext:扩展字段

toAgentReason:转人工原因,枚举值:

  • 机器人无回复:MultiTurnNoAnswer

  • 机器人重复澄清:RepeatRecommend

  • 用户重复提问:RepeatAsk

  • 触发关键词转人工:HitKeywords

  • 触发情绪转人工:HitEmotion

3 示例

3.1 请求示例

会话接口链接:

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-ZRmF3jbyVf\",
                \"Utterance\":\"你有什么技能?\"}"
    }
  ]
}

3.2 返回示例

{
    "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
}

3.2.1 会话响应结果

返回示例中的value字段去除转义字符后得到的JSON对象

{
    "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
}

3.2.2 其他的响应示例

3.2.2.1 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
}

3.2.2.2 Source=STRUCTURAL_KNOWLEDGE
{
    "MessageBody":{
      "DirectMessageBody": {
        "AnswerReference": {
          "ItemList": [
            {
              "Content": "{\"code\":\"llm-databot-card\",\"data\":{\"cellList\":[[\"学生姓名\",\"id\",\"学生id\",\"英语成绩\",\"语文成绩\",\"数学成绩\"],[\"张三\",\"4\",\"4\",\"20.0\",\"30.0\",\"40.0\"],[\"李思\",\"5\",\"6\",\"1.0\",\"3.0\",\"4.0\"],[\"王五\",\"6\",\"5\",\"0.0\",\"2.0\",\"1.0\"]],\"clickable\":false,\"drawType\":\"table\",\"nextPage\":false}}",
              "ContentType": "CARD_TEMPLATE",
              "DataSource": "EXTERNAL_DATA_SOURCE",
              "Number": 1,
              "ReferenceExt": {
                "DocName": "学生成绩表"
              },
              "Title": "学生成绩表"
            }
          ]
        },
        "CardTemplateContent": "{\"code\":\"llm-databot-card\",\"data\":\"{\\\"cellList\\\":[[\\\"学生姓名\\\"],[\\\"张三\\\"],[\\\"李思\\\"],[\\\"王五\\\"]],\\\"clickable\\\":true,\\\"drawType\\\":\\\"table\\\",\\\"nextPage\\\":false,\\\"title\\\":\\\"学生姓名 数学成绩(元数据:学生成绩表;条件:数学成绩<60)\\\"}\"}",
        "ContentType": "CARD_TEMPLATE"
      },
      "Type": "Direct",
      "VoiceConfig": {}
    },
    "MessageId":"6119d114-e53c-4259-bde5-f0d59c2244ef",
    "SequenceId":"17ae23fa40624ff6a754f1831ba9b60f",
    "SessionId":"194aa450940a11eea00ed1e090d3b275",
    "Source":"STRUCTURAL_KNOWLEDGE",
    "StreamEnd":true
}

3.2.2.3 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
}

3.2.2.4 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
}

4 错误码

错误代码

Http状态码

描述

InvalidInstanceId.NotFound

404

指定的机器人ID不存在

InvalidParameter

400

参数不合法

InternalError

500

内部错误