DeepSeek 对话框管理接口设计文档
1. 概述
本文档详细描述了 DeepSeek 聊天应用中对话框的删除和重命名接口的设计方案。这些接口允许用户管理他们的聊天对话历史。
2. 系统架构
对话框管理功能属于用户数据管理模块的一部分,与以下系统组件交互:
- 前端界面 (Web/移动端)
- 后端API服务
- 数据库 (对话数据存储)
- 用户认证服务
3. 接口详细设计
3.1 删除对话框接口
3.1.1 接口定义
DELETE /api/v1/conversations/{conversation_id}
3.1.2 请求参数
参数 | 位置 | 类型 | 必填 | 描述 |
---|---|---|---|---|
Authorization | Header | String | 是 | Bearer token 用户认证 |
conversation_id | Path | String | 是 | 要删除的对话ID |
3.1.3 请求示例
DELETE /api/v1/conversations/conv_1234567890abcdef
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
3.1.4 处理流程
- 认证验证:检查用户token有效性
- 权限检查:验证对话属于请求用户
- 软删除标记:在数据库中将对话标记为已删除
- 更新
is_deleted
字段为true - 设置
deleted_at
时间为当前时间
- 更新
- 异步清理:将对话加入后台清理队列
- 实际数据将在X天后从数据库永久删除
- 返回响应
3.1.5 响应
成功响应 (200 OK):
{
"status": "success",
"data": {
"conversation_id": "conv_1234567890abcdef",
"deleted_at": "2023-11-01T12:34:56Z"
}
}
错误响应示例 (404 Not Found):
{
"status": "error",
"code": "CONVERSATION_NOT_FOUND",
"message": "The requested conversation does not exist or you don't have permission to access it."
}
3.2 重命名对话框接口
3.2.1 接口定义
PATCH /api/v1/conversations/{conversation_id}/title
3.2.2 请求参数
参数 | 位置 | 类型 | 必填 | 描述 |
---|---|---|---|---|
Authorization | Header | String | 是 | Bearer token 用户认证 |
conversation_id | Path | String | 是 | 要重命名的对话ID |
title | Body | String | 是 | 新的对话标题 (1-100字符) |
3.2.3 请求示例
PATCH /api/v1/conversations/conv_1234567890abcdef/title
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json
{
"title": "新的对话标题"
}
3.2.4 处理流程
- 认证验证:检查用户token有效性
- 权限检查:验证对话属于请求用户
- 输入验证:
- 标题长度(1-100字符)
- 标题内容(过滤不合法字符)
- 更新数据库:
- 更新
title
字段 - 更新
updated_at
时间戳
- 更新
- 返回响应
3.2.5 响应
成功响应 (200 OK):
{
"status": "success",
"data": {
"conversation_id": "conv_1234567890abcdef",
"title": "新的对话标题",
"updated_at": "2023-11-01T12:34:56Z"
}
}
错误响应示例 (400 Bad Request):
{
"status": "error",
"code": "INVALID_TITLE",
"message": "Title must be between 1 and 100 characters long."
}
4. 数据库设计
4.1 对话表 (conversations)
字段 | 类型 | 描述 |
---|---|---|
id | String (PK) | 对话唯一ID (前缀conv_) |
user_id | String (FK) | 所属用户ID |
title | String | 对话标题 |
created_at | DateTime | 创建时间 |
updated_at | DateTime | 最后更新时间 |
is_deleted | Boolean | 是否已删除 |
deleted_at | DateTime | 删除时间 (可为空) |
5. 安全设计
- 认证:所有接口需要有效的用户token
- 授权:确保用户只能操作自己的对话
- 输入验证:
- 对话ID格式验证
- 标题内容过滤(XSS防护)
- 速率限制:防止滥用接口
6. 错误处理
通用错误代码:
代码 | HTTP状态 | 描述 |
---|---|---|
UNAUTHORIZED | 401 | 认证失败 |
FORBIDDEN | 403 | 无操作权限 |
NOT_FOUND | 404 | 对话不存在 |
INVALID_INPUT | 400 | 输入参数无效 |
RATE_LIMITED | 429 | 请求过于频繁 |
7. 性能考虑
- 数据库索引:
- 主键: id
- 查询索引: user_id + is_deleted
- 缓存:频繁访问的对话信息可以缓存
- 批量操作:考虑未来支持批量删除/重命名
8. 未来扩展
- 回收站功能(恢复已删除对话)
- 对话分组/标签管理
- 对话导入/导出功能
附录A: 接口变更历史
版本 | 日期 | 描述 |
---|---|---|
v1.0 | 2023-11-01 | 初始版本 |