目錄
數據庫設計:
功能設計:
用戶界面:
數據庫設計:
--對話表 (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等格式)以及語音問答。