对话相关 
创建新的对话 
POST /chat/create_chat
用途:创建新对话
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| supplierName | string | ollama | 否 | 模型供应商名称 | 
| model | string | 是 | 模型名称,示例:deepseek-R1 | |
| parameters | string | 是 | 要安装的参数参数规模版本,supplierName==ollama时必传 | |
| title | string | 是 | 对话标题 | |
| agent_name | string | 否 | 智能体名称,如果不使用智能体,可不传或直接传空 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| context_id | string | 对话上下文ID | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"创建成功",
    "error_msg":"",
    "message":{
         "context_id":"xxxxxxxxx"
    }
}调用搜索引擎 
POST /search/search
用途:在选中联网搜索并发送对话时
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| query | string | 是 | 搜索内容(通常是用户输入的内容) | |
| searchProvider | string | baidu | 否 | 搜索引擎 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| title | string | 标题 | 
| link | string | 连接地址 | 
| content | string | 正文 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"搜索成功",
    "error_msg":"",
    "message":[
        {
            "title": "麻婆豆腐怎么做才正宗?这关键的几步您可看好了,简单美味,三碗米饭...",
            "link": "https://m.douyin.com/share/video/7213317945336810752",
            "content": "麻婆豆腐怎么做才正宗?这关键的几步您可看好了,简单美味,三碗米饭不够吃!#麻婆豆腐 #美食教程 #家常菜 #美食推荐官 #艾特你的饭搭子请你吃 - 中国烹饪大师郝振江于20230322发布在抖音,已经收获了19209个喜欢,来抖音,记录美好生活!"
        },
        ...
    ]
}发送对话消息 
POST /chat/chat
用途:创建对话后,发送对话内容
PS:此接口为流式响应,响应类型为text/plain
PS:标签内的为MCP工具调用结果
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| supplierName | string | ollama | 否 | 模型供应商名称 | 
| model | string | 是 | 模型名称,示例:deepseek-R1 | |
| parameters | string | 是 | 要安装的模型参数规模版本,如:1.5b,supplierName=ollama时必传 | |
| context_id | string | 是 | 对话上下文ID | |
| user_content | string | 是 | 用户输入的对话内容 | |
| images | string | 否 | 图片路径,多个用逗号隔开支持的格式:jpg:.jpgjpeg:.jpegpng:.pnggif:.gifbmp:.bmpwebp:.webp | |
| doc_files | string | 否 | 文档路径,多个用逗号隔开支持的格式:Word文档:docx:.docxdoc:.doc表格类型:xlsx:.xlsxxls:.xlscsv:.csv演示文稿类型:pptx:.pptxppt:.pptPDF 文件:.pdf网页文件:html:.htmlhtm:.htm图片类型:(仅识别中文和英文)jpg:.jpgjpeg:.jpegpng:.pnggif:.gifbmp:.bmpwebp:.webpMarkdown 文件:md:.mdmarkdown:.markdown纯文本文件:txt:.txtlog:.log | |
| search_results | array | 否 | 搜索结果,示例:[{"title": "麻婆豆腐怎么做才正宗?这关键的几步您可看好了,简单美味,三碗米饭...","link": "https://m.douyin.com/share/video/7213317945336810752","content": "麻婆豆腐怎么做才正宗?这关键的几步您可看好了,简单美味,三碗米饭不够吃!#麻婆豆腐 #美食教程 #家常菜 #美食推荐官 #艾特你的饭搭子请你吃 - 中国烹饪大师郝振江于20230322发布在抖音,已经收获了19209个喜欢,来抖音,记录美好生活!"},...] | |
| rag_results | array | 否 | 知识库检索结果,示例:[ { "id": "bc78dd90-fa75-11ef-a96a-4b17421e6c04", "doc": "其它SSL证书\n\n1. 什么是其它 SSL 证书?\n\n当您自行在其他厂商申请 SSL 证书(如腾讯云、阿里云)并部署到宝塔面板后,面板会将该证书归类到其他证书分类,您可在面板左侧导航栏SSL模块-其他证书中查看管理,支持删除、部署、下载、上传到云端等。\n\n  \n\n》", "docId": "bc78dd90-fa75-11ef-a96a-4b17421e6c04", "docName": "其它SSL证书.docx", "docFile": "F:\desk-top-ai\data\rag\堡塔\markdown\其它SSL证书.docx.md", "score": 0.23035039901733398, "vectorScore": 0.3290719985961914, "keywordScore": 0 }, ...] | |
| regenerate_id | string | 否 | 指定ID进行重新生成,此消息之后的历史消息将全部被删除此ID从“获取对话信息”接口中history字段中获取 | |
| temp_chat | string | false | 否 | 是否为临时对话:true = 是, false = 否请传字符串如果temp_chat=true,不再传递历史消息给模型,每一个问题都独立回答作用:解决ollama上下文长度不足的情况下,大模型在第二次之后的回答容易产生幻觉的问题缺点:开启后,大模型不知道你之前问过什么,也不知道之前回复过什么 | 
| compare_id | string | 否 | 多模型对照ID,请随机生成一个唯一值,同一轮对话都使用此值 | |
| mcp_servers | array | 否 | 要调用的MCP服务,允许多个,如["mcp-bt-panel","filesystem"] | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
获取指定对话的最后一条消息 
POST /chat/get_last_chat_history
用途:在大模型完成回答后调用
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| context_id | string | 是 | 对话上下文ID | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| id | string | 消息ID | 
| role | string | 角色:user|assistant|tool , user=用户输入的消息,assistant=大模型回复的消息, tool=工具回复 | 
| reasoning | string | 【?】思考过程,只有role=assistant时才可能有,没有则此字段不存在 | 
| content | string | 消息内容 | 
| images | array | 【?】包含在消息中的图片列表,base64,没有则此字段不存在 | 
| tool_calls | string | 【?】模型使用的工具列表,JSON格式,没有则此字段不存在 | 
| created_at | string | 创建时间,格式示例:2023-08-04T08:52:19.385406455-07:00 | 
| create_time | int | 创建时间,时间戳 | 
| stat | object | 此信息的模型统计信息,详情请查看示例 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"获取成功",
    "error_msg":"",
    "message":{
                "id": "xxxxxxxxxxx",
                "stat": {
                    // 所使用的模型名称,指定为 deepseek-r1 系列的 14b 版本模型
                    "model":"deepseek-r1:14b",
                    
                    // 模型创建的时间,遵循 ISO 8601 标准格式,精确到纳秒
                    "created_at":"2025-02-11T09:34:25.6977786Z",
                    
                    // 整个操作流程的总耗时,单位为秒
                    "total_duration":25.3098628,
                    
                    // 模型加载所耗费的时间,单位为毫秒
                    "load_duration":18.9324,
                    
                    // 输入tokens数
                    "prompt_eval_count":1235,
                    
                    // 对输入信息进行评估所花费的时间,单位为毫秒
                    "prompt_eval_duration":455,
                    
                    // 整个生成过程的总tokens开销
                    "eval_count":1455,
                    
                    // 整个生成过程所花费的总时间,单位为秒
                    "eval_duration":24.477
                },
                "role": "assistant",
                "reasoning": "<think></think>"
                "content": "你好,我是xxx",
                "created_at": "2023-08-04T08:52:19.385406455-07:00",
                "create_time": 1112231231,
            }
}- 中断生成 
POST /chat/stop_generate
用途:发送对话等待响应或正在响应生成内容时,调用此接口可中断响应
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| context_id | string | 是 | 对话上下文ID | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"中断成功",
    "error_msg":"",
    "message":null
}获取对话信息 
POST /chat/get_chat_info
作用:需要重新获取对话信息时,如:刷新页面、切换对话、进入历史对话等
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| context_id | string | 是 | 对话上下文ID | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| context_id | string | 对话上下文ID | 
| title | string | 对话标题(通常是第一个问题) | 
| history | array | 历史消息,请参考:历史消息字段说明 | 
| model | string | 模型名称,示例:deepseek-R1 | 
| parameters | string | 模型参数规模版本,如:1.5b | 
| created_at | string | 创建时间,格式示例:2023-08-04T08:52:19.385406455-07:00 | 
| create_time | int | 创建时间,时间戳 | 
| 历史消息字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| id | string | 消息ID | 
| role | string | 角色:user|assistant|tool , user=用户输入的消息,assistant=大模型回复的消息, tool=工具回复 | 
| reasoning | string | 【?】思考过程,只有role=assistant时才可能有,没有则此字段不存在 | 
| content | string | 消息内容 | 
| images | array | 【?】包含在消息中的图片列表,base64,没有则此字段不存在 | 
| tool_calls | string | 【?】模型使用的工具列表,JSON格式,没有则此字段不存在 | 
| created_at | string | 创建时间,格式示例:2023-08-04T08:52:19.385406455-07:00 | 
| create_time | int | 创建时间,时间戳 | 
| stat | object | 此信息的模型统计信息,详情请查看示例 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"获取成功",
    "error_msg":"",
    "message":{
        "context_id": "xxxxxxxxx",
        "title": "你好",
        "model": "deepseek-R1",
        "parameters": "1.5b",
        "created_at": "2023-08-04T08:52:19.385406455-07:00",
        "create_time": 1112231231,
        "history": [
            {
                "id": "xxxxxxxxxx",
                "role": "user",
                "content": "你好",
                "created_at": "2023-08-04T08:52:19.385406455-07:00",
                "create_time": 1112231231,
                "stat": {
                    // 所使用的模型名称,指定为 deepseek-r1 系列的 14b 版本模型
                    "model":"deepseek-r1:14b",
                    
                    // 模型创建的时间,遵循 ISO 8601 标准格式,精确到纳秒
                    "created_at":"2025-02-11T09:34:25.6977786Z",
                    
                    // 整个操作流程的总耗时,单位为秒
                    "total_duration":25.3098628,
                    
                    // 模型加载所耗费的时间,单位为毫秒
                    "load_duration":18.9324,
                    
                    // 输入tokens数
                    "prompt_eval_count":1235,
                    
                    // 对输入信息进行评估所花费的时间,单位为毫秒
                    "prompt_eval_duration":455,
                    
                    // 整个生成过程的总tokens开销
                    "eval_count":1455,
                    
                    // 整个生成过程所花费的总时间,单位为秒
                    "eval_duration":24.477
                },
            },
            {
                "id": "xxxxxxxxxxx",
                "role": "assistant",
                "reasoning": "<think></think>"
                "content": "你好,我是xxx",
                "created_at": "2023-08-04T08:52:19.385406455-07:00",
                "create_time": 1112231231,
                "stat": {
                    // 所使用的模型名称,指定为 deepseek-r1 系列的 14b 版本模型
                    "model":"deepseek-r1:14b",
                    
                    // 模型创建的时间,遵循 ISO 8601 标准格式,精确到纳秒
                    "created_at":"2025-02-11T09:34:25.6977786Z",
                    
                    // 整个操作流程的总耗时,单位为秒
                    "total_duration":25.3098628,
                    
                    // 模型加载所耗费的时间,单位为毫秒
                    "load_duration":18.9324,
                    
                    // 输入tokens数
                    "prompt_eval_count":1235,
                    
                    // 对输入信息进行评估所花费的时间,单位为毫秒
                    "prompt_eval_duration":455,
                    
                    // 整个生成过程的总tokens开销
                    "eval_count":1455,
                    
                    // 整个生成过程所花费的总时间,单位为秒
                    "eval_duration":24.477
                },
            },
            ...
        ]
    }
}获取历史对话列表 
POST /chat/get_chat_list
作用:需要重新获取对话列表时,如:刷新页面、创建新对话,删除对话等
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| context_id | string | 对话上下文ID | 
| title | string | 对话标题(通常是第一个问题) | 
| model | string | 模型名称,示例:deepseek-R1 | 
| parameters | string | 模型参数规模版本,如:1.5b | 
| created_at | string | 创建时间,格式示例:2023-08-04T08:52:19.385406455-07:00 | 
| create_time | int | 创建时间,时间戳 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"获取成功",
    "error_msg":"",
    "message":[
        {
            "context_id": "xxxxxxxxx",
            "title": "你好",
            "model": "deepseek-R1",
            "parameters": "1.5b",
            "created_at": "2023-08-04T08:52:19.385406455-07:00",
            "create_time": 1112231231,
        }
    ]
}删除指定对话 
POST /chat/remove_chat
作用:删除对话
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| context_id | string | 是 | 对话上下文ID,多个用逗号隔开 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"删除成功",
    "error_msg":"",
    "message":null
}- 修改指定对话标题 
POST /chat/modify_chat_title
作用:删除对话
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| context_id | string | 是 | 对话上下文ID | |
| title | string | 是 | 新的对话标题 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
响应示例:
JSON
{
    "status":0,
    "code":200,
    "msg":"修改成功",
    "error_msg":"",
    "message":null
}获取分享列表 
POST /share/get_share_list
作用:分享对话窗口
| 请求表单 | ||||
|---|---|---|---|---|
| 参数名称 | 数据类型 | 默认值 | 是否必传 | 说明 | 
| 响应字段说明 | ||
|---|---|---|
| 字段名称 | 数据类型 | 说明 | 
| share_id | string | 分享ID | 
| title | string | 标题 | 
| url | string | 公网URL地址 | 
| model | string | 模型名称,示例:deepseek-R1 | 
| parameters | string | 模型参数规模版本,如:1.5b | 
| password | string | 分享密码,可为空 | 
| chats | array | 对话列表 | 
| create_time | int | 创建时间 | 
响应示例:
JSON
{
    "status": 0,
    "code": 200,
    "msg": "分享列表获取成功",
    "error_msg": "",
    "message": [
        {
            "share_id": "5ab88c20-eda7-11ef-a7aa-bdbc32fa6cba",
            "model": "deepseek-r1",
            "parameters": "14b",
            "title": "测试",
            "password": "",
            "url": "https://share.aingdesk.com/5nyxWm/5ab88c20-eda7-11ef-a7aa-bdbc32fa6cba",
            "chats": [
                {
                    "shareId": "5ab88c20-eda7-11ef-a7aa-bdbc32fa6cba",
                    "contextId": "a0a8be70-ee5c-11ef-8282-1f22922be40b",
                    "model": "deepseek-r1",
                    "parameters": "14b",
                    "create_time": 1739926707,
                    "update_time": 1739926707,
                    "history": [
                        {
                            "id": "0f991851-ee5f-11ef-b95f-b7344121b57b",
                            "role": "user",
                            "reasoning": "",
                            "stat": {},
                            "content": "写一篇500字的文章,题目:爸爸和妈妈",
                            "images": [],
                            "tool_calls": "",
                            "created_at": "",
                            "create_time": 1739927752,
                            "tokens": 19
                        },
                        {
                            "id": "0f991850-ee5f-11ef-b95f-b7344121b57b",
                            "role": "assistant",
                            "reasoning": "<think>\n嗯,用户让我写一篇关于“爸爸和妈妈”的500字文章。首先,我得考虑这个题目的重点是什么。可能用户希望突出父母之间的关系,或者他们各自的特质。\n\n接下来,我应该分析用户的需求。也许这是一个学生作业,或者是想表达对父母的爱。考虑到是学生,可能需要结构清晰、有情感的文章。\n\n然后,我得思考文章的结构。开头可以引出爸爸和妈妈的不同之处,中间部分分别描述他们的性格、互动以及孩子们如何从中受益,结尾总结他们的关系的重要性。\n\n在内容上,我可以举一些例子,比如爸爸严厉而理性,妈妈温柔而感性,他们在教育孩子上的不同方式,但又互补合作。这样能展示他们各自的优点和相互支持的关系。\n\n语言方面,要保持温暖和真诚,避免过于正式或生硬。用一些具体的细节会让文章更生动,比如提到一起做饭、讨论孩子的情况等场景。\n\n最后,确保文章长度大约500字,不要太长或太短。检查一下有没有跑题,是否紧扣主题,表达对父母关系的赞美和理解。\n</think>\n",
                            "stat": {
                                "model": "deepseek-r1:14b",
                                "created_at": "2025-02-19T01:16:02.4710549Z",
                                "total_duration": 10.1908624,
                                "load_duration": 20.0953,
                                "prompt_eval_count": 16,
                                "prompt_eval_duration": 13,
                                "eval_count": 599,
                                "eval_duration": 10.156
                            },
                            "content": "\n## 爸爸妈妈:爱的不同表达\n \n 在我眼中,爸爸妈妈就像两颗独特的星星,各自散发着不同的光芒。爸爸总是像一位严谨的学者,他的话语充满逻辑与理性,用独特的方式教会我面对困难时要冷静思考;而妈妈则如同一位温柔的诗人,她的情感细腻而丰富,在我困惑时给予我温暖的慰藉。\n \n 爸爸的爱就像一本厚重的书,需要我们用心去细细品味。他的教育方式看似严厉,实则是对我的严格要求和殷切期望。每当我在学习上遇到难题,爸爸总是耐心地引导我一步步分析问题,教会我用理性的眼光看待世界。而妈妈的爱则像一首优美的诗,她用细腻的心思关注着我的喜怒哀乐,在我受伤时轻轻拥抱着我,用温柔抚慰我的心灵。\n \n 爸爸妈妈虽然表达爱的方式不同,但他们都在用自己的方式守护着这个家。爸爸在工作上认真负责,用坚实的肩膀撑起家庭的重担;妈妈则在家里营造出温暖和睦的氛围,让每个平凡的日子都充满爱意。他们的互补与合作让我感受到一种独特的家庭教育魅力。\n \n 生活中,我常常看到他们互相理解、彼此包容。当意见不同时,爸爸会用理性的方式表达自己的想法,而妈妈则会以温柔的态度化解可能的冲突。这种相处模式教会了我如何在不同观点中找到平衡,在理性与感性之间寻找最适合的解决之道。\n \n 爸爸和妈妈就像生活中的左右手,看似分工不同,实则是最佳拍档。他们的爱让我感受到不一样的成长力量,也让我明白了爱可以有不同的表达方式,但每一种都同样温暖而重要。",
                            "images": [],
                            "tool_calls": "",
                            "created_at": "2025-02-19T01:16:02.4710549Z",
                            "create_time": 1739927762,
                            "tokens": 0
                        },
                       ...
                    ]
                }
                ...
            ]
        }
        ...
    ]
}
