docs: update design docs for general chat
This commit is contained in:
@@ -44,10 +44,20 @@
|
||||
└──────┬──────┘
|
||||
│
|
||||
│ 1:N
|
||||
├─────────────────┐
|
||||
│ │
|
||||
▼ ▼
|
||||
┌─────────────┐ ┌──────────────┐
|
||||
├──────────────────────┐
|
||||
│ │
|
||||
├──────────────────┐ │
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌─────────────┐ ┌──────────────┐ ┌──────────────────────┐
|
||||
│ Projects │ │ Knowledge │ │ General │
|
||||
│ │ │ Bases │ │ Conversations ⭐ │
|
||||
└──────┬──────┘ └──────┬───────┘ └──────┬───────────────┘
|
||||
│ │ │
|
||||
│ 1:N │ 1:N │ 1:N
|
||||
▼ ▼ ▼
|
||||
┌─────────────┐ ┌──────────────┐ ┌──────────────────────┐
|
||||
│Conversations│ │ Documents │ │ General Messages ⭐ │
|
||||
│ Projects │ │KnowledgeBases│
|
||||
└──────┬──────┘ └──────┬───────┘
|
||||
│ │
|
||||
@@ -399,6 +409,113 @@ COMMENT ON TABLE admin_logs IS '管理员操作日志表,用于审计';
|
||||
|
||||
---
|
||||
|
||||
### 8. general_conversations - 通用对话表
|
||||
|
||||
**用途:** 存储智能问答的对话记录(无需项目和智能体)
|
||||
|
||||
```sql
|
||||
CREATE TABLE general_conversations (
|
||||
id VARCHAR(36) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
user_id VARCHAR(36) NOT NULL,
|
||||
|
||||
-- 对话信息
|
||||
title VARCHAR(255) NOT NULL,
|
||||
model_name VARCHAR(50), -- 主要使用的模型
|
||||
|
||||
-- 时间戳
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
deleted_at TIMESTAMP, -- 软删除
|
||||
|
||||
-- 外键
|
||||
CONSTRAINT fk_general_conversations_users FOREIGN KEY (user_id)
|
||||
REFERENCES users(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX idx_general_conversations_user_id ON general_conversations(user_id);
|
||||
CREATE INDEX idx_general_conversations_created_at ON general_conversations(created_at);
|
||||
CREATE INDEX idx_general_conversations_updated_at ON general_conversations(updated_at);
|
||||
|
||||
-- 注释
|
||||
COMMENT ON TABLE general_conversations IS '通用对话表,用于智能问答功能';
|
||||
```
|
||||
|
||||
**字段说明:**
|
||||
|
||||
| 字段 | 类型 | 说明 | 约束 |
|
||||
|------|------|------|------|
|
||||
| id | VARCHAR(36) | 对话ID | PRIMARY KEY, UUID |
|
||||
| user_id | VARCHAR(36) | 用户ID | NOT NULL, FK → users |
|
||||
| title | VARCHAR(255) | 对话标题(自动生成) | NOT NULL |
|
||||
| model_name | VARCHAR(50) | 主要使用的模型 | - |
|
||||
| created_at | TIMESTAMP | 创建时间 | DEFAULT NOW() |
|
||||
| updated_at | TIMESTAMP | 最后更新时间 | DEFAULT NOW() |
|
||||
| deleted_at | TIMESTAMP | 删除时间(软删除) | - |
|
||||
|
||||
---
|
||||
|
||||
### 9. general_messages - 通用消息表
|
||||
|
||||
**用途:** 存储智能问答的消息记录
|
||||
|
||||
```sql
|
||||
CREATE TABLE general_messages (
|
||||
id VARCHAR(36) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
||||
conversation_id VARCHAR(36) NOT NULL,
|
||||
|
||||
-- 消息内容
|
||||
role VARCHAR(20) NOT NULL, -- user / assistant
|
||||
content TEXT NOT NULL,
|
||||
|
||||
-- AI响应信息
|
||||
model VARCHAR(50), -- 使用的具体模型
|
||||
tokens INTEGER, -- token消耗
|
||||
metadata JSONB, -- 扩展信息(如knowledgeBaseIds、usage等)
|
||||
|
||||
-- 时间戳
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
|
||||
-- 外键
|
||||
CONSTRAINT fk_general_messages_conversations FOREIGN KEY (conversation_id)
|
||||
REFERENCES general_conversations(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX idx_general_messages_conversation_id ON general_messages(conversation_id);
|
||||
CREATE INDEX idx_general_messages_created_at ON general_messages(created_at);
|
||||
|
||||
-- 注释
|
||||
COMMENT ON TABLE general_messages IS '通用消息表,用于智能问答功能';
|
||||
```
|
||||
|
||||
**字段说明:**
|
||||
|
||||
| 字段 | 类型 | 说明 | 约束 |
|
||||
|------|------|------|------|
|
||||
| id | VARCHAR(36) | 消息ID | PRIMARY KEY, UUID |
|
||||
| conversation_id | VARCHAR(36) | 对话ID | NOT NULL, FK → general_conversations |
|
||||
| role | VARCHAR(20) | 角色(user/assistant) | NOT NULL |
|
||||
| content | TEXT | 消息内容 | NOT NULL |
|
||||
| model | VARCHAR(50) | 使用的模型 | - |
|
||||
| tokens | INTEGER | token消耗 | - |
|
||||
| metadata | JSONB | 元数据(知识库IDs、使用统计等) | - |
|
||||
| created_at | TIMESTAMP | 创建时间 | DEFAULT NOW() |
|
||||
|
||||
**metadata结构示例:**
|
||||
```json
|
||||
{
|
||||
"knowledgeBaseIds": ["kb-uuid-1", "kb-uuid-2"],
|
||||
"usage": {
|
||||
"promptTokens": 150,
|
||||
"completionTokens": 200,
|
||||
"totalTokens": 350
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 索引设计
|
||||
|
||||
### 主要索引
|
||||
@@ -415,6 +532,9 @@ COMMENT ON TABLE admin_logs IS '管理员操作日志表,用于审计';
|
||||
| knowledge_bases | user_id | INDEX | 查询用户的知识库 |
|
||||
| documents | kb_id | INDEX | 查询知识库的文档 |
|
||||
| documents | status | INDEX | 筛选处理状态 |
|
||||
| general_conversations | user_id | INDEX | 查询用户的通用对话 |
|
||||
| general_conversations | created_at | INDEX | 按时间排序 |
|
||||
| general_messages | conversation_id | INDEX | 查询对话消息 |
|
||||
|
||||
### 复合索引(如需优化性能可添加)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user