init
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
CREATE DATABASE IF NOT EXISTS doc_forge CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE doc_forge;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS templates (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL COMMENT '模板名称',
|
||||
description TEXT DEFAULT '' COMMENT '描述',
|
||||
file_path VARCHAR(500) NOT NULL COMMENT 'MinIO 对象路径',
|
||||
paragraph_count INT DEFAULT 0 COMMENT '段落数',
|
||||
status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/ready',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ai_models (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL COMMENT '模型名称',
|
||||
provider VARCHAR(100) DEFAULT '' COMMENT '供应厂商',
|
||||
api_format VARCHAR(20) DEFAULT 'openai' COMMENT 'anthropic/openai',
|
||||
api_endpoint VARCHAR(500) DEFAULT '' COMMENT 'API 地址',
|
||||
api_key_encrypted TEXT DEFAULT '' COMMENT '加密后的 API Key',
|
||||
status VARCHAR(20) DEFAULT 'enabled' COMMENT 'enabled/disabled',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS paragraphs (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
template_id INT NOT NULL,
|
||||
sort_index INT DEFAULT 0 COMMENT '排序',
|
||||
title VARCHAR(500) DEFAULT '' COMMENT '段落标题',
|
||||
content TEXT DEFAULT '' COMMENT '正文内容',
|
||||
style_json TEXT DEFAULT '{}' COMMENT '样式 JSON',
|
||||
is_table TINYINT(1) DEFAULT 0 COMMENT '是否为表格',
|
||||
table_json TEXT DEFAULT '{}' COMMENT '表格结构 JSON',
|
||||
edit_mode VARCHAR(20) DEFAULT 'ai' COMMENT 'manual/ai',
|
||||
model_id INT DEFAULT NULL COMMENT '指定模型',
|
||||
need_prompt TINYINT(1) DEFAULT 1 COMMENT '是否需要提示词',
|
||||
prompt_text TEXT DEFAULT '' COMMENT '预设提示词',
|
||||
need_file TINYINT(1) DEFAULT 0 COMMENT '是否需要参考文件',
|
||||
file_note TEXT DEFAULT '' COMMENT '备注说明',
|
||||
output_format VARCHAR(20) DEFAULT 'text' COMMENT 'text/table/mixed/chart',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (template_id) REFERENCES templates(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (model_id) REFERENCES ai_models(id) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS documents (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
template_id INT NOT NULL,
|
||||
name VARCHAR(255) DEFAULT '' COMMENT '文档名称',
|
||||
para_count_done INT DEFAULT 0 COMMENT '已完成段落数',
|
||||
para_count_total INT DEFAULT 0 COMMENT '总段落数',
|
||||
status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/generating/completed/failed/cancelled',
|
||||
file_path VARCHAR(500) DEFAULT '' COMMENT 'MinIO 对象路径',
|
||||
error TEXT DEFAULT '' COMMENT '错误信息',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (template_id) REFERENCES templates(id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS generation_logs (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
document_id INT NOT NULL,
|
||||
paragraph_id INT NOT NULL,
|
||||
model_id INT DEFAULT NULL,
|
||||
status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/generating/success/failed',
|
||||
content TEXT DEFAULT '' COMMENT '生成的内容',
|
||||
duration FLOAT DEFAULT 0 COMMENT '耗时秒数',
|
||||
error_msg TEXT DEFAULT '' COMMENT '错误信息',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (document_id) REFERENCES documents(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (paragraph_id) REFERENCES paragraphs(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (model_id) REFERENCES ai_models(id) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
Reference in New Issue
Block a user