pai-smart(RAG 系统的聊天助手模块)
聊天助手模块是派聪明系统的核心组件之一,承载了用户与系统之间的主要交互能力。模块通过WebSocket 协议实现双向通信,支持大语言模型(接入了 DeepSeek)输出内容的流式返回;为支持多轮连续对话,该模块集成了 Redis 用于存储和维护用户会话上下文,确保大模型在生成回答时能够“记住”前文内容,维持语义连贯性。同时,模块深度集成了 Elasticsearch,可以为用户提供结构化文本的全文
简介:
聊天助手模块是派聪明系统的核心组件之一,承载了用户与系统之间的主要交互能力。
模块通过 WebSocket 协议实现双向通信,支持大语言模型(接入了 DeepSeek)输出内容的流式返回;为支持多轮连续对话,该模块集成了 Redis 用于存储和维护用户会话上下文,确保大模型在生成回答时能够“记住”前文内容,维持语义连贯性。
同时,模块深度集成了 Elasticsearch,可以为用户提供结构化文本的全文索引和关键词匹配,通过这套混合检索机制,派聪明能在海量本地知识中快速定位与用户问题相关的信息片段。
为了更好地引导大语言模型生成高质量回答,系统特别强化了 Prompt 构建与模板管理能力:
- 根据检索结果动态生成 Prompt;
- 支持多种 Prompt 模板配置与调优;
- 确保内容组织清晰、有重点,引导模型围绕核心信息生成响应。
这一机制是实现 RAG 的关键保障,确保模型回答既有语义逻辑,又有知识依据。
prompt:

我们会把规则、引用的知识库添加到到 system 中。

一、功能需求

二、技术选型

三、关键流程
1. 接收消息
负责组件 : ChatController
核心流程 :

- 接收用户通过 WebSocket 发送的消息
- 记录性能监控和业务日志
- 调用 ChatHandler 处理消息
2. 权限与速率检查
负责组件 : ChatHandler
核心流程 :
- 检查用户的聊天速率限制
- 确保用户在允许的范围内发送消息

利用固定窗口做限流


3. 会话管理
负责组件 : ChatHandler
核心流程 :


- 获取或创建会话 ID
- 为会话创建响应构建器
- 获取对话历史
1. 会话 ID :
- 为每个用户创建唯一的会话 ID
- 存储在 Redis 中,有效期 7 天
2. 历史存储 :
- 存储用户消息和助手回复
- 包含时间戳
- 限制历史记录长度,保留最近 20 条消息
3. 引用映射 :
- 存储回复中引用的文档信息
- 包含文件名、页码、MD5 等信息
4. 知识检索
负责组件 : HybridSearchService
核心流程 :
- 执行带权限过滤的混合搜索
- 结合向量搜索和文本搜索
- 应用权限过滤,确保用户只能访问有权限的文档

5. 上下文构建
负责组件 : ChatHandler
核心流程 :
利用redis存储的会话,与搜索结果一起组成上下文

6. LLM 生成
负责组件 : LlmProviderRouter
核心流程 :
- 调用活动 LLM Provider
- 传递用户消息、上下文和对话历史
- 处理流式响应

7. 流式响应
负责组件 : ChatHandler
核心流程 :
- 实时发送 LLM 生成的响应块
- 检查停止标志
- 发送完成通知

更多推荐
所有评论(0)