-
Notifications
You must be signed in to change notification settings - Fork 442
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
#️⃣ 您的功能请求是否与某个问题相关?请描述。
目前的消息主要保存在本地,存在的问题就是不同的设备登录之后无法共享消息信息。之前是因为没有账号管理机制,现在应该可以实现基于账户的消息管理机制。
#️⃣ 描述您期望的解决方案
考虑将用户的对话消息按照以 dialog id: info 的形式保存在数据库中。可以通过 dialog id 获取对话信。
需要注意的是:这里的 refs 信息随着用户的增多会大量占用存储空间。初步的设计中,可以先不考虑此部分内容,后续的改进可以考虑几个方向:
-
服务端的 refs,如 chunk_id 等采用映射的方式,在服务端仅保存 chunk_id(需要保证 chunk_id 是用 uuid 创建的),但是这个对于 web info 和 graph info 的映射存在问题。
-
每个 dialog 仅保存最后一次对话的refs信息。这样可以更大程度的优化整体的占用,也和现在的前端操作逻辑配合。
-
仅保留最近7天的refs信息,数据库在每次 update的时候,都 clean 一下过期的 refs。
表结构示例(关系型):
- users: id, username, email, ...
- conversations: id, user_id, created_at, updated_at, title, metadata(json)
- messages: id, conversation_id, sender(user/ai)、content, timestamp, metadata(json)
meta信息建议存储为:JSONB(PostgreSQL)字段或Mongo的嵌套字段,用于灵活扩展。
#️⃣ 附加背景信息
xerrors
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request