DeepSeek Manager Conversation Store
这套方案完整覆盖了DeepSeek官网风格的历史对话管理需求,既保证了数据安全又提供了丰富的操作接口。- 获取用户所有对话列表。- 获取对话完整内容。
·
DeepSeek 历史对话管理系统设计
1. 数据存储方案
1.1 数据库设计
conversations
表
CREATE TABLE conversations (
id VARCHAR(36) PRIMARY KEY,
user_id VARCHAR(36) NOT NULL,
title VARCHAR(255) NOT NULL,
model VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
is_deleted BOOLEAN DEFAULT FALSE,
FOREIGN KEY (user_id) REFERENCES users(id)
);
messages
表
CREATE TABLE messages (
id VARCHAR(36) PRIMARY KEY,
conversation_id VARCHAR(36) NOT NULL,
role ENUM('user', 'assistant', 'system') NOT NULL,
content TEXT NOT NULL,
tokens INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (conversation_id) REFERENCES conversations(id)
);
1.2 存储策略
- 实时写入:每条消息生成后立即写入数据库
- 定期归档:超过3个月未活跃的对话自动归档
- 软删除机制:标记删除而非物理删除
- 内容加密:敏感内容加密存储
2. 完整API接口文档
2.1 历史对话列表
GET /api/conversations
- 获取用户所有对话列表
请求参数:
参数 | 类型 | 说明 |
---|---|---|
limit |
int | 每页数量 (默认20) |
offset |
int | 偏移量 (默认0) |
archived |
bool | 是否包含归档对话 (默认false) |
响应示例:
{
"conversations": [
{
"id": "conv_abc123",
"title": "Python编程问题",
"model": "deepseek-coder",
"created_at": "2023-11-20T12:00:00Z",
"updated_at": "2023-11-21T08:30:00Z",
"message_count": 5
}
],
"total": 15
}
2.2 获取单条对话详情
GET /api/conversations/{conversation_id}
- 获取对话完整内容
响应示例:
{
"id": "conv_abc123",
"title": "Python编程问题",
"model": "deepseek-coder",
"created_at": "2023-11-20T12:00:00Z",
"messages": [
{
"id": "msg_001",
"role": "user",
"content": "如何用Python处理JSON数据?",
"created_at": "2023-11-20T12:00:00Z"
},
{
"id": "msg_002",
"role": "assistant",
"content": "可以使用json模块...",
"created_at": "2023-11-20T12:00:05Z"
}
]
}
2.3 修改对话属性
PATCH /api/conversations/{conversation_id}
- 修改对话属性
请求体:
{
"title": "新的对话标题",
"tags": ["编程", "Python"]
}
响应:
{
"status": "success",
"updated_at": "2023-11-22T09:15:00Z"
}
2.4 删除对话
DELETE /api/conversations/{conversation_id}
- 删除对话
请求参数:
参数 | 类型 | 说明 |
---|---|---|
permanent |
bool | 是否永久删除 (默认false) |
响应:
{
"status": "success",
"deleted_at": "2023-11-22T10:00:00Z"
}
2.5 批量操作
POST /api/conversations/batch
- 批量操作
请求体:
{
"action": "archive", // 或 "delete", "restore"
"conversation_ids": ["conv_abc123", "conv_def456"]
}
响应:
{
"success_count": 2,
"failed_count": 0
}
2.6 搜索对话
GET /api/conversations/search
- 搜索对话
请求参数:
参数 | 类型 | 说明 |
---|---|---|
query |
string | 搜索关键词 |
start_date |
string | 开始日期 (ISO格式) |
end_date |
string | 结束日期 (ISO格式) |
model |
string | 筛选模型 |
响应:
{
"results": [
{
"id": "conv_abc123",
"title": "Python问题",
"preview": "如何用Python处理JSON数据...",
"matched_message_id": "msg_001"
}
],
"total": 1
}
3. 高级功能接口
3.1 导出对话
GET /api/conversations/{conversation_id}/export
- 导出对话
请求参数:
参数 | 类型 | 说明 |
---|---|---|
format |
string | 导出格式 (json/markdown/txt) |
响应:直接返回文件流
3.2 对话统计
GET /api/conversations/stats
- 获取对话统计
响应:
{
"total_conversations": 42,
"active_conversations": 15,
"messages_per_day": 8.5,
"most_used_model": "deepseek-coder"
}
4. 安全与权限控制
-
访问控制:
- 用户只能访问自己的对话
- 管理员可访问所有对话(需特殊权限)
-
操作日志:
CREATE TABLE conversation_audit_logs ( id VARCHAR(36) PRIMARY KEY, user_id VARCHAR(36) NOT NULL, conversation_id VARCHAR(36) NOT NULL, action VARCHAR(20) NOT NULL, -- 'create', 'update', 'delete' changed_fields JSON, ip_address VARCHAR(45), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-
敏感词过滤:
- 写入前自动检测并标记敏感内容
5. 客户端实现建议
-
本地缓存:
- 最近10条对话缓存在localStorage
- 使用IndexedDB存储更多历史记录
-
同步策略:
// 伪代码 async function syncConversations() { const lastSync = localStorage.getItem('lastSync'); const response = await fetch(`/api/conversations?since=${lastSync}`); // 合并本地和服务器数据 // 更新lastSync时间戳 }
-
离线模式:
- 允许离线查看历史对话
- 网络恢复后自动同步更改
6. 性能优化
- 分页加载:消息列表分段加载
- 延迟加载:对话详情按需加载
- 数据压缩:消息内容Gzip压缩存储
- 定期清理:自动清理6个月未活动的对话
这套方案完整覆盖了DeepSeek官网风格的历史对话管理需求,既保证了数据安全又提供了丰富的操作接口。
更多推荐
所有评论(0)