建立websocket
出于安全考虑,必须将 TOKEN 存储于服务端并通过后端接口调用,避免在前端代码中直接暴露,以防止凭证泄露造成损失
请在 Websocket 请求的 请求参数中携带 token,见Request Params:
TOKEN获取可通过 个人令牌 和 OAuth 应用获取,具体见 个人令牌授权,OAuth 授权码授权
应用秘钥key 的获取具体见 生成应用密钥
chat_id (str) 聊天ID (非必填) 在原有聊天基础上继续对话,可通过对话消息返回的 chat_id 获取key* (str)秘钥token* (str)令牌发送请求
直接发送 Json 字符串,格式如下
chatHistory (arr) 聊天历史列表 ,从获取历史消息接口中获取, 需要过滤category为node的记录inputs(obj)
input(str) 用户问题file_list(array) 文件列表消息返回参数说明
| 返回参数key | 类型 | 含义 | |
|---|---|---|---|
| is_bot | bool | true是大模型回复,false是用户问题 | |
| message | str/ json | 返回的消息最终结果 | |
| type | str | begin/close 表示整轮会话的开始和结束,start/stream/end 表示stream的开始和结束 | |
| category | str | processing: 暂无特别实用 question/answer/report/system: 对应前端不同的展示样式 | |
| user_id | int | 当前用户id | |
| message_id | int | 消息id | |
| source | bool | 是否支持溯源, 0 不支持, 1 支持, 2有权限限制,3 问答库, 4 QA库 | |
| flow_id | str | 当前聊天的技能id | |
| chat_id | str | 当前会话id | |
| knowledge_source | json | 知识库来源列表 包含file_name和file_url |
当完整构建一条消息,至少需要后端给前端发送4条消息:
type=begin, category=system
type=start, category=system
type=end, message=""
type=close, category=system
开始处理对话的消息
表示已经接受到消息,准备开始执行
流式开始输出的消息
表示接下来准备输出流式消息
流式输出消息
message为输出的片段
工具调用消息
知识库调用消息
知识库来源信息消息
成对出现
第一条 类型为start
第二条 类型为end
流式输出结束消息
最终回答的消息
将流式输出拼接成完成的一段话,并且返回文件、知识库来源、微应用等信息
回答结束消息
表示该次回答结束