模型对话接口
约 7155 字大约 24 分钟
2025-04-16
说明
- 获取token
请参考系统集成开发-第三方系统集成助手,获取access_token,在调用后续接口时,需要在header中加入: Fusion-Auth: <access_token>。
- 开始对话
首先,需要调用创建对话接口,获取对话id(chatSessionId),后续对话内容都根据对话id关联。 创建对话时,可以自定义对话名称,通常也可以用第一个对话内容作为对话名称。
获取到对话id后,可以调用开始对话接口开始对话。 对话接口是一个流式接口,返回的内容是一个流,需要不断读取流内容,直到流结束。
对话中,可以上传用户相关附件,并在对话中引用附件。 需要注意的是,在上传附件后,还需要调用文件解析接口,才能在对话中引用附件。
- 查询对话历史
调用查询对话历史接口,可以获取当前用户所有之前的对话列表。 根据对话id,可以进一步调用查询对话内容接口,查询具体的对话内容。
相关接口
1.创建对话
接口地址:/api/fusion-ai/chatSession/create
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json;charset=UTF-8
接口描述:
新建对话
通用对话的创建请求示例:
{
"chatSessionName": "测试对话创建"
}与某某智能体对话的创建请求示例:
{
"chatSessionName":"做一个三个月学习营养师的学习计划。",
"agentId":"8w1pccthjoif1lxzchqp"
}请求参数说明:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| createSessionParam | createSessionParam | body | true | CreateSessionParam | CreateSessionParam |
| agentId | 智能体id | false | string | ||
| chatSessionName | 会话名称 | false | string | ||
| chatSessionType | 会话类型 | false | integer(int32) |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | ApiResponseBody«ChatSession» |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 返回码 | integer(int32) | integer(int32) |
| data | 返回数据 | ChatSession | ChatSession |
| agentId | 智能体id | string | |
| chatSessionId | 会话id,随机生成 | string | |
| chatSessionName | 会话名称 | string | |
| chatSessionStatus | 会话状态 | integer(int32) | |
| chatSessionType | 会话类型 | integer(int32) | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer(int32) | |
| id | ID | integer(int64) | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| userId | 用户id | integer(int64) | |
| message | 返回信息 | string | |
| status | 本次返回状态 true正常 | boolean | |
| txId | 全局调用链id | string |
响应示例:
{
"status": true,
"data": {
"id": "1901464883988271105",
"createBy": "L20143423",
"createDate": "2025-03-17 10:45:30",
"updateBy": "L20143423",
"updateDate": "2025-03-17 10:45:30",
"deleteFlag": 0,
"chatSessionId": "19bac8abd3b0c04588e7b2b96f26320c",
"userId": 1849532859089465348,
"agentId": "",
"chatSessionName": "测试对话创建",
"chatSessionType": 0,
"chatSessionStatus": 0
},
"code": 8000000,
"message": "成功",
"txId": "dfd1c264714352750a503567756a7cfd"
}2.开始对话
接口地址:/api/fusion-ai/chat/streamChat
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json;charset=UTF-8
接口描述:
通用对话请求示例:
{
"conversation_id": "19bac8abd3b0c04588e7b2b96f26320c",
"messages": [{
"content": "测试对话创建",
"role": "user"
}],
"services": {
"use_filechat": false,
"use_recommend": true,
"use_search": false,
"use_stream": true
}
}文档对话请求示例:
{
"conversation_id": "19bac8abd3b0c04588e7b2b96f26320c",
"messages": [{
"content": "文档中有什么内容",
"role": "user"
}],
"services": {
"use_filechat": true,
"use_recommend": true,
"use_search": false,
"use_stream": true
},
"file_id": ["22508b946978615396bf249db7575a77"]
}联网搜索对话请求示例:
{
"conversation_id": "19bac8abd3b0c04588e7b2b96f26320c",
"messages": [
{
"content": "今日中交集团大事件",
"role": "user"
}
],
"services": {
"use_filechat": false,
"use_recommend": true,
"use_search": true,
"use_stream": true
}
}开启DEEPSEEK深度思考请求示例:
{
"conversation_id": "19bac8abd3b0c04588e7b2b96f26320c",
"messages": [
{
"content": "根据今日股市行情,给出推荐买入的股票",
"role": "user"
}
],
"services": {
"use_filechat": false,
"use_recommend": true,
"use_search": false,
"use_stream": true
},
"model": "deepseek"
}与某某智能体对话请求示例:
{
"conversation_id": "24ce10641b9c33fb1021943ef8a6e469",
"messages": [
{
"content": "做一个三个月学习营养师的学习计划。",
"role": "user"
}
],
"services": {
"use_filechat": false,
"use_recommend": false,
"use_search": false,
"use_stream": true
},
"agentId": "8w1pccthjoif1lxzchqp",
"model": "deepseek"
}请求参数说明:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| req | req | body | true | StreamChatParam | StreamChatParam |
| agentId | 智能体id | false | string | ||
| user_identity | 身份:必须传,并且该参数的值目前 固定写死outside | true | String | ||
| args | 参数 | false | ChatAiArguments | ChatAiArguments | |
| content_outline | 文档生成:使用的大纲内容 | false | string | ||
| file_outline | 大纲生成:文件输入的大纲模板 | false | array | string | |
| file_theme | 文档生成:参考文件 | false | array | string | |
| text_outline | 大纲生成:文本输入的大纲模板 | false | string | ||
| url_theme | 文档生成:参考网站 | false | array | string | |
| bizType | 业务场景类型:outlineGenerate: 大纲生成, docGenerate: 文本生成 | false | string | ||
| conversation_id | 对话ID | true | string | ||
| file_id | 文档对话所针对的文档\n若未传入file_id且use_filechat为True,将转而使用基础问答服务 | false | array | string | |
| messages | 聊天消息列表,传入用户当前问题 | true | array | ChatAiContextMessage | |
| content | 传入的问题 | false | string | ||
| role | 传入问题的角色 | false | string | ||
| model | 助手ID/模型名,可选值:jiaorong、moonshot、deepseek、qwen | false | string | ||
| recommend_k | 推荐个数,默认值为3,可修改推荐问题个数 | false | integer(int32) | ||
| services | 服务功能开启或关闭,流式对话、联网搜索、文档对话、问题推荐等 | false | ChatAgentServicesVo | ChatAgentServicesVo | |
| use_filechat | 文档对话,布尔值,默认False,若设定为True,则启用文档对话功能,且此时必须传入参数[文档id] | false | boolean | ||
| use_recommend | 问题推荐,布尔值,默认False,若设定为True,则启用问题推荐功能 | false | boolean | ||
| use_search | 联网搜索,布尔值,默认False,若设定为True,则启用联网搜索功能(而不是使用基础问答功能) | false | boolean | ||
| use_stream | 流式输出,默认True,若设定为True,则启用流式输出 | false | boolean | ||
| use_cot | 是否启用深度思考,不传默认开启(需要模型支持,支持的模型包括:deepseek、qwen) | false | boolean | ||
| tools | 工具列表,助手暂不支持,使用助手配置 | false | array | string |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | SseEmitter |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应类型:
响应类型(0)智能体正在思考
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | ping表示智能体正在思考 |
响应示例
{"event": "ping"}响应类型(1)开启SSE通道-后端服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | 代表响应的是sse流式事件 |
| sseId | 通道ID | Long | 后端开启的SSE流式交互的ID |
响应示例
{"sseId":508624114517413888,"event":"sse"}响应类型(2)收到请求-后端服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | req,表示这个响应是“收到请求” |
| content | 传入的问题 | String | 用户输入的问题 |
| groupId | 对话组ID | String | 表示一问一答,代表这是一组对话的标识 |
| recordId | 对话ID | String | 每次创建新对话的ID,每个对话里包含多组问答 |
| avatarPath | 回答图标 | String |
响应示例:
{
"event": "req",
"content":"你是谁",
"groupId":"aa7b4906f0c1cb44d831d07826987b43",
"recordId":"c161b3d8ee7e8d00f726e21a3294c761",
"avatarPath":null
}响应类型(3)确认请求-后端服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | resq,表示这个响应是“确认请求” |
| groupId | 对话组ID | String | 代表这是一组对话的标识,一问一答是一组, |
| recordId | 对话ID | String | 每次创建新对话的ID,每个对话里包含多组问答 |
| avatarPath | 回答图标 | String |
响应示例:
{
"event": "resp",
"groupId": "aa7b4906f0c1cb44d831d07826987b43",
"recordId": "c161b3d8ee7e8d00f726e21a3294c761",
"avatarPath": null
}响应类型(4)基础回答响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | cmpl,表示这个响应是内容 |
| stream | 流式响应 | 布尔值 | 代表流式响应 |
| service | 服务 | String | base_chat,代表基础聊天回答服务 |
| choices | 回答 | List | 必出,列表,列表的元素是字典 |
| choices[0].delta | 回答的具体内容 | List | 若是非流式响应,则此处为空 |
| choices[0].delta.content | 实际内容 | String | 对于流式响应而言,此处是回答的片段,需要拼接成完整回答,1 个 Token 大约相当于 1.5-2 个汉字。 |
响应示例:
{
"event": "cmpl",
"stream": true,
"service": "base_chat",
"choices": [
{
"index": 0,
"message": null,
"finish_reason": "stop",
"delta": {
"content": "您好"
}
}
]
}响应类型(4.1)基础回答结束格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | done,表示基础回答服务结束 |
| service | 服务 | String | base_chat,表示基础聊天回答服务 |
响应示例:
{"event": "done", "service": "base_chat"}响应类型(5)问题推荐响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | cmpl,表示这个响应是内容 |
| stream | 流式响应 | 布尔值 | 代表流式响应 |
| service | 服务 | String | recommend_questiont,代表基础问题推荐服务 |
| choices | 回答 | List | 必出,列表,列表的元素是字典 |
| choices[0].delta | 回答的具体内容 | List | 若是非流式响应,则此处为空 |
| choices[0].delta.content | 实际内容 | String | 对于流式响应而言,此处是回答的片段,需要拼接成完整回答,1 个 Token 大约相当于 1.5-2 个汉字。 |
响应示例:
{
"event": "cmpl",
"stream": true,
"service": "recommend_question",
"choices": [
{
"index": 0,
"message": null,
"finish_reason": "stop",
"delta": {
"content": "您"
}
}
]
}响应类型(6)联网搜索工具服务响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | cmpl,表示这个响应是内容 |
| stream | 流式响应 | 布尔值 | 代表流式响应 |
| service | 服务 | String | tool_calls,代表工具调用服务 |
| choices | 回答 | List | 必出,列表,列表的元素是字典 |
| choices[0].delta | 回答的具体内容 | List | 若是非流式响应,则此处为空 |
| choices[0].delta.content | 实际内容 | String | 对于流式响应而言,此处是回答的片段,需要拼接成完整回答,1 个 Token 大约相当于 1.5-2 个汉字。 |
响应示例:
{
"event": "cmpl",
"stream": true,
"service":"tool_calls",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "no content",
"tool_calls": "{\n \"query\": \"中交AI平台 服务\"\n}"
},
"finish_reason": "tool_calls",
"delta": null,
"query": null
}
]
}响应类型(6.1)工具调用-工具响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | tool,表示这个是工具搜索或参考的内容 |
| service | 服务 | String | search,代表联网搜索工具。 crawl,代表网页解析工具。 |
| url | 统一资源定位符 | String | 搜索到、或解析的资源的url |
| snippet | 摘要内容或结果 | String | 若工具采用的是search,那么此处是该网页的一小段内容; 若工具采用的是crawl,那么此处是该网页解析后的结果 |
响应示例:
{
"event": "tool",
"service": "search",
"url": "https://www.ctticyun.com/",
"snippet": "中交航信..."
}响应类型(6.2)工具调用-联网问答响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | cmpl,表示这个响应是内容 |
| stream | 流式响应 | 布尔值 | 代表流式响应 |
| service | 服务 | String | search_chat,代表联网问答服务回答 |
| choices | 回答 | List | 必出,列表,列表的元素是字典 |
| choices[0].delta | 回答的具体内容 | List | 若是非流式响应,则此处为空 |
| choices[0].delta.content | 实际内容 | String | 对于流式响应而言,此处是回答的片段,需要拼接成完整回答, 1 个 Token 大约相当于 1.5-2 个汉字。 |
响应示例:
{
"event": "cmpl",
"stream": true,
"service": "search_chat",
"choices": [
{
"index": 0,
"message": null,
"finish_reason": "stop",
"delta": {
"content": "交"
}
}
]
}响应类型(6.3)工具调用-联网问答结束响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | done,表示联网搜索回答服务结束 |
| service | 服务 | String | search_chat,表示联网搜索回答服务 |
响应示例:
{"event": "done", "service": "search_chat"}响应类型(7)文档问答响应格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | cmpl,表示这个响应是内容 |
| stream | 流式响应 | 布尔值 | 代表流式响应 |
| service | 服务 | String | file_chat,代表文档问答 |
| choices | 回答 | List | 必出,列表,列表的元素是字典 |
| choices[0].delta | 回答的具体内容 | List | 若是非流式响应,则此处为空 |
| choices[0].delta.content | 实际内容 | String | 对于流式响应而言,此处是回答的片段,需要拼接成完整回答, 1 个 Token 大约相当于 1.5-2 个汉字。 |
| file_id | 文档ID | 数组[Stirng] | 需要解析的文档ID数组 |
响应示例:
{
"event": "cmpl",
"stream": true,
"service": "file_chat",
"choices": [
{
"index": 0,
"message": null,
"finish_reason": "stop",
"delta": {
"content": "文件"
}
}
],
"file_id": [
"2ee89aa5930adb26d5a3e7a6b2c9561b"
]
}响应类型(7.1)文档问答响应结束格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | done,表示文档问答服务结束 |
| service | 服务 | String | file_chat,表示文档回答服务 |
响应示例:
{"event": "done", "service": "file_chat"}响应类型(8)所有回答全部结束格式-第三方服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | all_done,智能体所有回答全部结束 |
响应示例:
{"event": "all_done"}响应类型(9)所有回答全部结束格式-后端服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| event | 事件类型 | String | all_done,所有回答全部结束 |
| query | 查询内容 | 查询的内容 | |
| query.chatSessionId | 对话ID | String | 创建的对话ID |
| query.content | 问题 | String | 用户提问的问题 |
| query.fileList | 文件集合 | 数组[String] | 文件集合 |
| query.imageList | 图片集合 | 数组[String] | 图片集合 |
| query.groupId | 对话组ID | String | 对话中一问一答的对话组ID |
| query.recordId | 对话历史记录ID | String | 对话历史记录ID |
| query.liked | 是否点赞 | String | 0-未点赞,1-点赞 |
| query.sourceType | 来源 | String | 1-用户 |
| query.type | 类型 | String | 0 |
| query.userId | 用户ID | String | 用户ID |
| reply | 回答 | 智能体的回答 | |
| reply.chatSessionId | 对话ID | String | 创建的对话ID |
| reply.content | 全部回答 | String | 智能体的全部回答 |
| reply.groupId | 对话组ID | String | 对话中一问一答的对话组ID |
| reply.recordId | 对话历史记录ID | String | 对话历史记录ID |
| reply.liked | 是否点赞 | String | 0-未点赞,1-点赞 |
| reply.sourceType | 来源 | String | 0-智能体 |
| reply.type | 类型 | String | 0 |
| reply.userId | 用户ID | String | 用户ID |
响应示例:
{
"event": "all_done",
"query":
{
"chatSessionId": "ee072ebbcfc9fce795f33896dc5d0947",
"content": "分析文件内容",
"fileList": ["2ee89aa5930adb26d5a3e7a6b2c9561b"],
"groupId": "f7eb3c3e86028c904dbb1d11fb4b525e",
"imageLit": [],
"liked": 0,
"recordId": "184db0e14421384486605c3d8fa62017",
"sourceType": 1,
"type": 0,
"userId": 1825720288008998914
},
"reply":
{
"chatSessionId": "ee072ebbcfc9fce795f33896dc5d0947",
"content": "文件内容是一段日志信息...。",
"groupId": "f7eb3c3e86028c904dbb1d11fb4b525e",
"liked": 0,
"recordId": "6f721faab4468eff7fc863a4d8e45f1a",
"sourceType": 0,
"type": 0,
"userId": 1825720288008998914
}
}非流式响应类型(10)异常格式-后端服务
响应参数:
| 参数英文名称 | 参数中文名称 | 类型 | 参数说明 |
|---|---|---|---|
| status | 状态 | 布尔值 | 状态true代表调用成功 |
| data | 返回数据 | 对象或集合等 | 返回数据 |
| code | 返回码 | String | 返回码 |
| message | 返回细腻系 | String | 返回细腻系 |
| txId | 全局调用链 | String | 全局调用链 |
响应示例:
{
"status": false,
"data": null,
"code": -8000000,
"message": "必输参数不能为空",
"txId": "null"
}3.文件上传
接口地址:/api/sys-storage/upload
请求方式:POST
请求数据类型:multipart/form-data
响应数据类型:*/*
接口描述:
请求参数:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| file | file | formData | true | file | |
| e9y | 服务器名 | formData | false | string | |
| g9s | 文件组 | formData | false | string | |
| md5 | md5 | formData | false | string | |
| tag | 标签 | formData | false | string |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | ApiResponseBody«SysOssVO» |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 返回码 | integer(int32) | integer(int32) |
| data | 返回数据 | SysOssVO | SysOssVO |
| dir | 文件的目录 | string | |
| extName | 文件扩展名 | string | |
| fileName | 文件名 | string | |
| fileToken | 文件token | string | |
| groupToken | 文件组token | string | |
| link | 文件地址 | string | |
| objectName | oss对象名 | string | |
| resource | Byte流 | ByteArrayResource | ByteArrayResource |
| size | 文件的大小 | string | |
| tag | 文件标签 | string | |
| version | 文件的版本 | string | |
| message | 返回信息 | string | |
| status | 本次返回状态 true正常 | boolean | |
| txId | 全局调用链id | string |
响应示例:
{
"status": true,
"data": {
"link": "http://10.212.34.196:11005/uuu/2025-03/b2c8db2c11c8989f630e22fea6318fe8.txt",
"fileToken": "b2c8db2c11c8989f630e22fea6318fe8",
"fileName": "测试文件.txt",
"extName": "txt",
"groupToken": null,
"dir": "2025-03/",
"size": "1389",
"version": "0",
"objectName": "2025-03/b2c8db2c11c8989f630e22fea6318fe8.txt",
"tag": null,
"resource": null
},
"code": 8000000,
"message": "成功",
"txId": "6fda8f9a3e1d44672d15dfdfbda33a05"
}4.文件解析
接口地址:/api/fusion-ai/chatFile/extract
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json;charset=UTF-8
接口描述:
上传文件后传入文件token
支持格式 .pdf .txt .csv .doc .docx .xls .xlsx .ppt .pptx .md .jpeg .png .bmp .gif .svg .svgz .webp .ico .xbm .dib .pjp .tif .pjpeg .avif .dot .apng .epub .tiff .jfif .html .json .mobi .log .go .h .c .cpp .cxx .cc .cs .java .js .css .jsp .php .py .py3 .asp .yaml .yml .ini .conf .ts .tsx
请求示例:
{"files":["b2c8db2c11c8989f630e22fea6318fe8"]}请求参数:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| requestParam | requestParam | body | true | ChatAiFileExtractRequestParam | ChatAiFileExtractRequestParam |
| api_key | LLM秘钥 | false | string | ||
| base_url | LLM的url | false | string | ||
| files | 文件列表 | true | array | string | |
| model | 助手ID/模型名 | false | string | ||
| n | 返回答案个数,默认值为1 | false | integer(int32) | ||
| fileToken | 文件token | false | string |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | ApiResponseBody«FileExtract» |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 返回码 | integer(int32) | integer(int32) |
| data | 返回数据 | FileExtract | FileExtract |
| content | 会话内容 | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer(int32) | |
| fileName | 文件名称 | string | |
| fileToken | 文件token | string | |
| fileType | 文件类型 | integer(int32) | |
| fileTypeStr | 文件类型字符串 | string | |
| id | ID | integer(int64) | |
| title | 标题 | string | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| message | 返回信息 | string | |
| status | 本次返回状态 true正常 | boolean | |
| txId | 全局调用链id | string |
响应示例:
{
"status": true,
"data": {
"id": "1901476969279655938",
"createBy": "L20143423",
"createDate": "2025-03-17 11:33:31",
"updateBy": "L20143423",
"updateDate": "2025-03-17 11:33:31",
"deleteFlag": 0,
"fileToken": "b2c8db2c11c8989f630e22fea6318fe8",
"fileType": 3,
"fileTypeStr": "text/plain",
"fileName": "测试文件.txt",
"title": "",
"content": null
},
"code": 8000000,
"message": "成功",
"txId": "c0cfa9f7b5a7953b670900d8bf2cecb7"
}5.查询对话历史
接口地址:/api/fusion-ai/chatSession/historyPage
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json;charset=UTF-8
接口描述:
历史对话列表
通用智能体历史对话查询请求示例:
{
"agentId": "",
"keyword": "",
"pageNo": 0,
"pageSize": 0
}某某智能体历史对话查询请求示例:
{
"pageNo": 1,
"pageSize": 50,
"keyword": "",
"agentId": "xp0pwxoer3atemho5nmt"
}请求参数:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| createSessionParam | createSessionParam | body | true | ChatHistoryParam | ChatHistoryParam |
| agentId | 智能体id | false | string | ||
| keyword | 搜索词 | false | string | ||
| pageNo | 当前页 | false | integer(int32) | ||
| pageSize | 每页条数 | false | integer(int32) |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | ApiResponseBody«PageInfo«ChatSessionVO»» |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 返回码 | integer(int32) | integer(int32) |
| data | 返回数据 | PageInfo«ChatSessionVO» | PageInfo«ChatSessionVO» |
| endRow | integer(int64) | ||
| hasNextPage | boolean | ||
| hasPreviousPage | boolean | ||
| isFirstPage | boolean | ||
| isLastPage | boolean | ||
| list | array | ChatSessionVO | |
| agentId | 智能体id | string | |
| agentInfo | 回答对应的问题 | AgentMarket | AgentMarket |
| agentId | 智能体ID,随机生成 | string | |
| avatar | 智能体图标地址 | string | |
| avatarToken | 智能体图标token | string | |
| avatarWelcome | 欢迎语处的图标 | string | |
| avatarWelcomeToken | 智能体欢迎语图标token | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| description | 智能体描述 | string | |
| flow | 执行流程 | string | |
| host | 访问地址 | string | |
| id | ID | integer | |
| introduction | 智能体介绍 | string | |
| isDefault | 是否为默认智能体 | integer | |
| knowledge | 知识 | string | |
| name | 智能体名称 | string | |
| prompt | 提示词 | string | |
| recommendedPrompt | 初始提示词列表,json形式列表 | string | |
| service | 服务 | string | |
| serviceUrl | 服务路径 | string | |
| sort | 智能体顺序 | integer | |
| source | 来源 | string | |
| status | 状态 | integer | |
| tool | 工具 | string | |
| type | 智能体类型 | integer | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| welcomePrompt | 欢迎语 | string | |
| chatSessionId | 会话id,随机生成 | string | |
| chatSessionName | 会话名称 | string | |
| chatSessionStatus | 会话状态 | integer | |
| chatSessionType | 会话类型 | integer | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| id | ID | integer | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| userId | 用户id | integer | |
| navigateFirstPage | integer(int32) | ||
| navigateLastPage | integer(int32) | ||
| navigatePages | integer(int32) | ||
| navigatepageNums | array | integer(int32) | |
| nextPage | integer(int32) | ||
| pageNum | integer(int32) | ||
| pageSize | integer(int32) | ||
| pages | integer(int32) | ||
| prePage | integer(int32) | ||
| size | integer(int32) | ||
| startRow | integer(int64) | ||
| total | integer(int64) | ||
| message | 返回信息 | string | |
| status | 本次返回状态 true正常 | boolean | |
| txId | 全局调用链id | string |
响应示例:
{
"code": 0,
"data": {
"endRow": 0,
"hasNextPage": true,
"hasPreviousPage": true,
"isFirstPage": true,
"isLastPage": true,
"list": [
{
"agentId": "",
"agentInfo": {
"agentId": "",
"avatar": "",
"avatarToken": "",
"avatarWelcome": "",
"avatarWelcomeToken": "",
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"description": "",
"flow": "",
"host": "",
"id": 0,
"introduction": "",
"isDefault": 0,
"knowledge": "",
"name": "",
"prompt": "",
"recommendedPrompt": "",
"service": "",
"serviceUrl": "",
"sort": 0,
"source": "",
"status": 0,
"tool": "",
"type": 0,
"updateBy": "",
"updateDate": "2006-01-02 15:04:05",
"welcomePrompt": ""
},
"chatSessionId": "",
"chatSessionName": "",
"chatSessionStatus": 0,
"chatSessionType": 0,
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"id": 0,
"updateBy": "",
"updateDate": "2006-01-02 15:04:05",
"userId": 0
}
],
"navigateFirstPage": 0,
"navigateLastPage": 0,
"navigatePages": 0,
"navigatepageNums": [],
"nextPage": 0,
"pageNum": 0,
"pageSize": 0,
"pages": 0,
"prePage": 0,
"size": 0,
"startRow": 0,
"total": 0
},
"message": "",
"status": true,
"txId": ""
}6.查询对话内容
接口地址:/api/fusion-ai/chatSession/detail
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json;charset=UTF-8
接口描述:
根据内容查询对话列表
请求参数:
| 参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
|---|---|---|---|---|---|
| chatSessionId | 对话id | query | false | string |
响应状态:
| 状态码 | 说明 | schema |
|---|---|---|
| 200 | OK | ApiResponseBody«ChatDetailVO» |
| 201 | Created | |
| 401 | Unauthorized | |
| 403 | Forbidden | |
| 404 | Not Found |
响应参数:
| 参数名称 | 参数说明 | 类型 | schema |
|---|---|---|---|
| code | 返回码 | integer(int32) | integer(int32) |
| data | 返回数据 | ChatDetailVO | ChatDetailVO |
| docGenerateDetail | 文档生成的详情 | DocGenerateDetailVO | DocGenerateDetailVO |
| document | 生成的文档,回显时使用 | string | |
| outlineParsed | 解析后的大纲 | array | OutlineSectionDTO |
| children | 下一级大纲 | array | OutlineSectionDTO |
| content | 文本内容 | string | |
| prompt | 提示词,富文本形式 | string | |
| promptText | 提示词,文本形式 | string | |
| referenceFileList | 文档内容参考资料,文档token列表 | array | FileUploadDTO |
| name | 文件名称 | string | |
| token | 文件token | string | |
| templateInput | 模板文本输入 | string | |
| templateUpload | 上传文档token | string | |
| templateUploadName | 上传文档名称,回显时使用 | string | |
| templateUsed | 使用的模板文档token | string | |
| templates | 模板列表 | array | DocTemplateVO |
| description | 模板描述 | string | |
| fileToken | 模板文件 | string | |
| title | 模板名称 | string | |
| topicId | 主题主键id | integer | |
| recordList | 对话记录列表 | array | ChatSessionRecordVO |
| agentId | 智能体id | string | |
| avatarPath | 对话图标 | string | |
| chatSessionId | 所属会话id | string | |
| chunks | 引用记录 | string | |
| content | 会话内容 | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| docAggs | string | ||
| fileInfoList | 文件信息列表 | array | FileExtract |
| content | 会话内容 | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| fileName | 文件名称 | string | |
| fileToken | 文件token | string | |
| fileType | 文件类型 | integer | |
| fileTypeStr | 文件类型字符串 | string | |
| id | ID | integer | |
| title | 标题 | string | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| fileList | 文件列表 | string | |
| groupId | 对话组id,一问一答为一组 | string | |
| id | ID | integer | |
| imageList | 图片列表 | string | |
| imageUrlList | 图片地址列表 | array | string |
| liked | 是否点赞 | integer | |
| message | 回答对应的问题 | string | |
| recordId | 会话记录id | string | |
| referenceList | 引用文档列表 | array | ChatRecordReference |
| chunkId | 分块id | string | |
| contentLtks | 分块内容 | string | |
| contentWithWeight | 分块标记内容 | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| docId | 文档id | string | |
| docName | 文档名称 | string | |
| filePath | 文件地址 | string | |
| fileType | 文件类型 | string | |
| id | ID | integer | |
| imgId | 图片id,可能存在多个 | string | |
| imgPath | 图片地址,可能存在多个 | string | |
| importantKwd | 重要关键词 | string | |
| kbId | 知识库id | string | |
| positions | 位置信息 | string | |
| recordId | 所属记录id | string | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| searchList | 联网搜索列表 | array | ChatRecordSearchVO |
| author | 作者 | string | |
| createBy | 创建人 | string | |
| createDate | string | ||
| date | 时间 | string | |
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| id | ID | integer | |
| recordId | 对话记录id | string | |
| searchId | 联网搜索id,随机生成 | string | |
| site | 参考的网站名称 | string | |
| siteIcon | 参考的网站图标地址 | string | |
| snippet | 摘要 | string | |
| title | 文章标题或名称 | string | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| url | 参考的网站地址 | string | |
| sendTime | 发送时间 | string | |
| sourceType | 消息来源类型 | integer | |
| think | 思考过程 | string | |
| type | 内容类型 | integer | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| userId | 用户id | integer | |
| sessionInfo | 对话信息 | ChatSession | ChatSession |
| agentId | 智能体id | string | |
| chatSessionId | 会话id,随机生成 | string | |
| chatSessionName | 会话名称 | string | |
| chatSessionStatus | 会话状态 | integer | |
| chatSessionType | 会话类型 | integer | |
| createBy | 创建人 | string | |
| createDate | string | ||
| deleteFlag | 数据状态 0可用 -1不可用 | integer | |
| id | ID | integer | |
| updateBy | 更新人 | string | |
| updateDate | string | ||
| userId | 用户id | integer | |
| message | 返回信息 | string | |
| status | 本次返回状态 true正常 | boolean | |
| txId | 全局调用链id | string |
响应示例:
{
"code": 0,
"data": {
"docGenerateDetail": {
"document": "",
"outlineParsed": [
{
"children": [
{
"children": [
{}
],
"content": ""
}
],
"content": ""
}
],
"prompt": "",
"promptText": "",
"referenceFileList": [
{
"name": "",
"token": ""
}
],
"templateInput": "",
"templateUpload": "",
"templateUploadName": "",
"templateUsed": "",
"templates": [
{
"description": "",
"fileToken": "",
"title": ""
}
],
"topicId": 0
},
"recordList": [
{
"agentId": "",
"avatarPath": "",
"chatSessionId": "",
"chunks": "",
"content": "",
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"docAggs": "",
"fileInfoList": [
{
"content": "",
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"fileName": "",
"fileToken": "",
"fileType": 0,
"fileTypeStr": "",
"id": 0,
"title": "",
"updateBy": "",
"updateDate": "2006-01-02 15:04:05"
}
],
"fileList": "",
"groupId": "",
"id": 0,
"imageList": "",
"imageUrlList": [],
"liked": 0,
"message": "",
"recordId": "",
"referenceList": [
{
"chunkId": "",
"contentLtks": "",
"contentWithWeight": "",
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"docId": "",
"docName": "",
"filePath": "",
"fileType": "",
"id": 0,
"imgId": "",
"imgPath": "",
"importantKwd": "",
"kbId": "",
"positions": "",
"recordId": "",
"updateBy": "",
"updateDate": "2006-01-02 15:04:05"
}
],
"searchList": [
{
"author": "",
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"date": "",
"deleteFlag": 0,
"id": 0,
"recordId": "",
"searchId": "",
"site": "",
"siteIcon": "",
"snippet": "",
"title": "",
"updateBy": "",
"updateDate": "2006-01-02 15:04:05",
"url": ""
}
],
"sendTime": "",
"sourceType": 0,
"think": "",
"type": 0,
"updateBy": "",
"updateDate": "2006-01-02 15:04:05",
"userId": 0
}
],
"sessionInfo": {
"agentId": "",
"chatSessionId": "",
"chatSessionName": "",
"chatSessionStatus": 0,
"chatSessionType": 0,
"createBy": "",
"createDate": "2006-01-02 15:04:05",
"deleteFlag": 0,
"id": 0,
"updateBy": "",
"updateDate": "2006-01-02 15:04:05",
"userId": 0
}
},
"message": "",
"status": true,
"txId": ""
}