know-engine

对话相关表结构设计

Chat 模块是知识引擎中的 AI 对话管理模块,负责管理用户与 AI 之间的对话会话和消息记录。该模块支持完整的对话生命周期管理,包括会话创建、消息存储、RAG 引用记录等功能。 核心实体设计 ChatConversation(会…

TL;DR

Chat 模块是知识引擎中的 AI 对话管理模块,负责管理用户与 AI 之间的对话会话和消息记录。该模块支持完整的对话生命周期管理,包括会话创建、消息存储、RAG 引用记录等功能。 核心实体设计 ChatConversation(会…

Chat 模块是知识引擎中的 AI 对话管理模块,负责管理用户与 AI 之间的对话会话和消息记录。该模块支持完整的对话生命周期管理,包括会话创建、消息存储、RAG 引用记录等功能。

核心实体设计

ChatConversation(会话实体)

数据库表名chat_conversation | 字段名 | 类型 | 说明 | 备注 | | --- | --- | --- | --- | | id | Long | 主键ID | 自增 | | conversationId | String | 会话唯一标识 | 会话唯一标识 | | userId | String | 用户ID | 关联用户 | | title | String | 会话标题 | 默认"新对话" | | createTime | LocalDateTime | 创建时间 | | | updateTime | LocalDateTime | 更新时间 | 每次操作更新 | | status | ChatConversationStatus | 会话状态 | 枚举类型 |

会话状态枚举(ChatConversationStatus) | 状态值 | 说明 | | --- | --- | | ACTIVE | 活跃状态,正常使用中 | | ARCHIVED | 已归档,不再活跃但保留 | | DELETED | 已删除,逻辑删除标记 |

设计要点 1. 软删除机制:删除操作仅将状态设为 DELETED,不进行物理删除 2. 时间追踪:记录创建和更新时间,便于排序和审计

ChatMessage(消息实体)

数据库表名chat_message | 字段名 | 类型 | 说明 | 备注 | | --- | --- | --- | --- | | id | Long | 主键ID | 自增 | | messageId | String | 消息唯一标识 | | | conversationId | String | 所属会话ID | 外键关联 | | type | ChatMessageType | 消息类型 | USER/ASSISTANT | | content | String | 消息内容 | 原始内容 | | transformContent | String | 改写后内容 | 用户问题改写结果 | | tokenCount | Integer | Token数量 | AI回复的Token统计 | | modelName | String | 模型名称 | 使用的LLM模型 | | ragReferences | List | RAG引用内容 | JSON存储 | | createTime | LocalDateTime | 创建时间 | | | metadata | Map | 扩展元数据 | JSON存储 |

消息类型枚举(ChatMessageType) | 类型值 | 说明 | | --- | --- | | USER | 用户消息 | | ASSISTANT | AI助手消息 |

RAG引用内部类(RagReference),用于记录 AI 回复中引用的知识库内容: | 字段名 | 类型 | 说明 | | --- | --- | --- | | documentId | String | 文档ID | | url | String | 文档URL | | documentTitle | String | 文档标题 | | chunkId | String | 文档块ID | | chunkContent | String | 文档块内容 | | similarityScore | Double | 相似度分数 | | rerankScore | Double | 重排序分数 | | retrievalSource | RetrievalSource | 检索来源 | | metadata | Map | 扩展元数据 |

检索来源枚举(RetrievalSource) | 来源值 | 说明 | | --- | --- | | VECTOR | 向量检索 | | KEYWORD | 关键词检索 | | HYBRID | 混合检索 | | RERANK | 重排序后结果 |

设计要点 1. JSON字段存储:ragReferences 和 metadata 使用 MyBatis-Plus 的 JacksonTypeHandler 进行 JSON 序列化 2. 问题改写支持:transformContent 字段支持存储用户问题改写后的结果,用于 RAG 优化 3. Token统计:记录 AI 回复的 Token 消耗,便于成本分析 4. RAG追溯:完整记录 AI 回复引用的知识库来源,支持答案可解释性

业务流程

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。