Skip to content

AI 聊天对话 ​

这篇解决什么 ​

会话和消息落哪两张表、流式发送走哪条接口。读完能对上 POST /ai/chat/message/send-stream,不要和写作助手当成同一张记录表。

默认端口 48080。先开模块并配对话模型,见 AI 功能设计。

示意图:用户页走 SSE。管理员另有会话、消息管理页。

从哪改 ​

名称说明仓库路径
会话@RequestMapping("/ai/chat/conversation")ruoyi-office/yudao-module-ai/.../controller/admin/chat/AiChatConversationController.java
消息/ai/chat/messageAiChatMessageController
流式POST /send-streamTEXT_EVENT_STREAM
非流式POST /send备用
会话表ai_chat_conversationAiChatConversationDO
消息表ai_chat_messageAiChatMessageDO
用户页对话ruoyi-office-vben/apps/web-antd/src/views/ai/chat/index/
管理页会话列表views/ai/chat/manager/

官方菜单:AI 对话 2759(ai/chat/index/index.vue),mobile_path 是 /pages-ai/chat/index。聊天管理 2778。权限 ai:chat-conversation:query、ai:chat-message:query。

前端用 fetchEventSource 接 SSE。乱码先看应用 YAML 里 WebFlux 的 UTF-8 配置。

字段 ​

角色可绑知识库和工具。检索到的段落 id 写进消息 segmentIds。

名称说明仓库路径
roleId / modelId角色、模型AiChatConversationDO
systemMessage / temperature覆盖角色默认同上
maxContexts带入上下文条数同上
typeSpring AI MessageTypeAiChatMessageDO
reasoningContent推理过程同上
useContext / webSearchPages上下文、联网页同上
attachmentUrls附件同上

发送 VO:conversationId、content、useContext、useSearch、attachmentUrls。用户接口带 -my;管理端 page / delete-by-admin。

角色先配模型

ai_chat_role.modelId 空时,实现会退到第一条启用的对话模型。知识库召回见 AI 知识库。

不是写作记录

写作落 ai_write,走 /ai/write/generate-stream。两边都是 SSE,表和菜单不同。

按本仓库 DO 生成的 ER。

配置与操作 ​

走 AI 对话(2759,ai/chat/index/index.vue)。会话先选 roleId / modelId,可覆盖 systemMessage、temperature、maxContexts。发送走 POST /ai/chat/message/send-stream,带 conversationId、content、useContext、useSearch、attachmentUrls。

保存后消息落 ai_chat_message,检索到的段落 id 写进 segmentIds。ai_chat_role.modelId 空时退到第一条启用的对话模型。管理页聊天管理 2778 只查会话和消息。写作走另一张 ai_write,不要混。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版