目录
数据库设计:
功能设计:
用户界面:
数据库设计:
--对话表 (1个对话包含多条消息)
CREATE TABLE conversations (
conv_id VARCHAR(36) PRIMARY KEY, -- 对话ID
user_id VARCHAR(36) NOT NULL, -- 所属用户
title VARCHAR(100), -- 对话标题
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 消息表 (1条消息可关联多个附件)
CREATE TABLE messages (
msg_id VARCHAR(36) PRIMARY KEY, -- 消息ID
conv_id VARCHAR(36) NOT NULL, -- 所属对话
role ENUM('user','assistant'), -- 发送者身份
content TEXT, -- 文本内容(可空)
content_type ENUM('text','file'), -- 内容类型
lang ENUM('zh','en'), -- 语言
parent_msg_id VARCHAR(36), -- 父消息ID(用于修改记录)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (conv_id) REFERENCES conversations(conv_id)
);
-- 附件表 (存储图片、语音等文件元数据)
CREATE TABLE attachments (
attachment_id VARCHAR(36) PRIMARY KEY, -- 附件ID
msg_id VARCHAR(36) NOT NULL, -- 关联消息
file_type ENUM('image','audio','video','file'), -- 文件类型
file_url VARCHAR(512) NOT NULL, -- 文件存储路径(OSS/S3 URL)
file_size INT, -- 文件大小(字节)
thumbnail_url VARCHAR(512), -- 缩略图URL(可选)
duration INT, -- 语音/视频时长(秒)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (msg_id) REFERENCES messages(msg_id)
);
RAG:
-- 向量知识库表(RAG)
CREATE TABLE knowledge_embeddings (
doc_id VARCHAR(36) PRIMARY KEY, -- 文档唯一ID
content TEXT, -- 原始文本
embedding VECTOR(768), -- 向量数据(如768维)
metadata JSON -- 来源、时间等元数据
);
功能设计:
用户界面:
仿照网上普遍的AI对话界面,侧边栏可选择对话、新增对话等,主界面进行问答,支持文字,文件(doc,pdf,png,jpg等格式)以及语音问答。