去掉任务中相关模型和提示词绑定,新增资源图片bbox处理

This commit is contained in:
wh
2026-05-05 18:40:44 +08:00
parent 74674990d8
commit fbbd73c916
25 changed files with 796 additions and 721 deletions

View File

@@ -67,31 +67,13 @@ ON CONFLICT DO NOTHING;
INSERT INTO annotation_task (
id, company_id, creator_id, creator_role, task_name, industry_type, task_type,
extract_model_config_id,
extract_model_name, extract_model_url, extract_model_api_key,
verify_model_config_id,
verify_model_name, verify_model_url, verify_model_api_key,
extract_prompt_config_id, extract_prompt,
verify_prompt_config_id, verify_prompt,
task_status, is_deleted, started_at, finished_at, error_message
) VALUES
(701, 2, 4, 'EMPLOYEE', '多资源问答抽取任务', 'electricity', 'EXTRACT_QA',
401,
'qwen-max', 'https://api.example.com/extract', 'extract-api-key-demo',
402,
'glm-4.5', 'https://api.example.com/verify', 'verify-api-key-demo',
403, '请根据输入文本提取结构化问答对。',
404, '请核验生成答案是否与原始内容一致。',
'PENDING', FALSE, NULL, NULL, NULL),
(702, 2, 4, 'EMPLOYEE', '图片问答抽取任务', 'transport', 'EXTRACT_QA',
406,
'qwen-vl-max', 'https://api.example.com/extract-vl', 'extract-vl-api-key-demo',
407,
'glm-4.5v', 'https://api.example.com/verify-vl', 'verify-vl-api-key-demo',
408, '请根据输入图片内容提取结构化问答对。',
409, '请核验图片问答结果是否准确。',
'COMPLETED', FALSE, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL)
ON CONFLICT DO NOTHING;
(701, 2, 4, 'EMPLOYEE', '多资源问答抽取任务', 'electricity', 'EXTRACT_QA',
'PENDING', FALSE, NULL, NULL, NULL),
(702, 2, 4, 'EMPLOYEE', '图片问答抽取任务', 'transport', 'EXTRACT_QA',
'COMPLETED', FALSE, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL)
ON CONFLICT DO NOTHING;
INSERT INTO annotation_task_resource (
id, company_id, task_id, resource_id
@@ -129,6 +111,14 @@ INSERT INTO annotation_result_history (
'审核通过后归档', 5, CURRENT_TIMESTAMP)
ON CONFLICT DO NOTHING;
INSERT INTO image_bbox_annotation (
id, company_id, resource_id, bbox_json, remark, creator_id, creator_role
) VALUES
(1301, 2, 602,
'[{"id":"bbox_001","x":50,"y":30,"width":120,"height":80,"label":"指示灯"},{"id":"bbox_002","x":180,"y":40,"width":100,"height":90,"label":"开关按钮"}]',
'控制柜图片BBOX标注示例', 3, 'EMPLOYEE')
ON CONFLICT DO NOTHING;
INSERT INTO training_dataset (
id, company_id, creator_id, creator_role, result_history_id, sample_type, glm_format_json, dataset_status
) VALUES
@@ -147,4 +137,4 @@ INSERT INTO export_batch_item (id, batch_id, dataset_id) VALUES
(1201, 1101, 1001)
ON CONFLICT DO NOTHING;
COMMIT;
COMMIT;

View File

@@ -1,4 +1,5 @@
-- Active: 1775801470429@@39.107.112.174@5432@lablesystem
-- Active: 1775801470429@@39.107.112.174@5432@lablesystem_test
begin;
-- Drop Tables (按依赖关系倒序删除)
@@ -15,14 +16,14 @@ DROP TABLE IF EXISTS sys_menu CASCADE;
DROP TABLE IF EXISTS sys_user CASCADE;
DROP TABLE IF EXISTS sys_company CASCADE;
CREATE TABLE IF NOT EXISTS sys_company (
id BIGINT PRIMARY KEY,
company_code VARCHAR(64) NOT NULL UNIQUE,
CREATE TABLE IF NOT EXISTS sys_company
(
id BIGINT PRIMARY KEY,
company_code VARCHAR(64) NOT NULL UNIQUE,
company_name VARCHAR(128) NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
COMMENT ON TABLE sys_company IS '公司表。';
@@ -33,22 +34,23 @@ COMMENT ON COLUMN sys_company.status IS '公司状态,默认 ENABLED可按
COMMENT ON COLUMN sys_company.created_at IS '创建时间。';
COMMENT ON COLUMN sys_company.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS sys_user (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
phone VARCHAR(32) NOT NULL,
username VARCHAR(64),
role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
position VARCHAR(32) NOT NULL DEFAULT 'ANNOTATOR',
real_name VARCHAR(64) NOT NULL,
password_hash VARCHAR(255) NOT NULL,
must_change_password BOOLEAN NOT NULL DEFAULT TRUE,
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
session_version INTEGER NOT NULL DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CREATE TABLE IF NOT EXISTS sys_user
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
phone VARCHAR(32) NOT NULL,
username VARCHAR(64),
role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
position VARCHAR(32) NOT NULL DEFAULT 'ANNOTATOR',
real_name VARCHAR(64) NOT NULL,
password_hash VARCHAR(255) NOT NULL,
must_change_password BOOLEAN NOT NULL DEFAULT TRUE,
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
session_version INTEGER NOT NULL DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT uq_sys_user_company_phone UNIQUE (company_id, phone),
CONSTRAINT fk_sys_user_company FOREIGN KEY (company_id) REFERENCES sys_company(id)
CONSTRAINT fk_sys_user_company FOREIGN KEY (company_id) REFERENCES sys_company (id)
);
COMMENT ON TABLE sys_user IS '用户表。role 表示数据权限角色position 表示岗位。';
@@ -66,17 +68,18 @@ COMMENT ON COLUMN sys_user.session_version IS '会话版本号,用于强制旧
COMMENT ON COLUMN sys_user.created_at IS '创建时间。';
COMMENT ON COLUMN sys_user.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS sys_menu (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
menu_code VARCHAR(64) NOT NULL,
menu_name VARCHAR(128) NOT NULL,
path VARCHAR(255) NOT NULL,
CREATE TABLE IF NOT EXISTS sys_menu
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
menu_code VARCHAR(64) NOT NULL,
menu_name VARCHAR(128) NOT NULL,
path VARCHAR(255) NOT NULL,
visible_positions VARCHAR(255) NOT NULL DEFAULT 'ADMIN',
sort_order INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_sys_menu_company FOREIGN KEY (company_id) REFERENCES sys_company(id)
sort_order INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_sys_menu_company FOREIGN KEY (company_id) REFERENCES sys_company (id)
);
COMMENT ON TABLE sys_menu IS '菜单表。';
@@ -90,20 +93,21 @@ COMMENT ON COLUMN sys_menu.sort_order IS '菜单排序号,默认 0。';
COMMENT ON COLUMN sys_menu.created_at IS '创建时间。';
COMMENT ON COLUMN sys_menu.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS sys_config (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
config_type VARCHAR(32) NOT NULL DEFAULT 'SYSTEM',
config_name VARCHAR(128) NOT NULL,
config_value TEXT NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
creator_id BIGINT NOT NULL,
creator_role VARCHAR(50) NOT NULL DEFAULT 'EMPLOYEE',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CREATE TABLE IF NOT EXISTS sys_config
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
config_type VARCHAR(32) NOT NULL DEFAULT 'SYSTEM',
config_name VARCHAR(128) NOT NULL,
config_value TEXT NOT NULL,
status VARCHAR(32) NOT NULL DEFAULT 'ENABLED',
creator_id BIGINT NOT NULL,
creator_role VARCHAR(50) NOT NULL DEFAULT 'EMPLOYEE',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT uq_sys_config_company_name UNIQUE (company_id, config_name),
CONSTRAINT fk_sys_config_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_sys_config_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id)
CONSTRAINT fk_sys_config_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_sys_config_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE sys_config IS '系统配置表保存模型配置、Prompt 配置和系统参数配置。';
@@ -118,23 +122,24 @@ COMMENT ON COLUMN sys_config.creator_role IS '创建人角色.默认 EMPLOYEE。
COMMENT ON COLUMN sys_config.created_at IS '创建时间。';
COMMENT ON COLUMN sys_config.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS source_resource (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
resource_name VARCHAR(255) NOT NULL,
resource_type VARCHAR(32) NOT NULL DEFAULT 'TEXT',
bucket_name VARCHAR(128) NOT NULL,
file_path VARCHAR(512) NOT NULL,
file_size BIGINT NOT NULL DEFAULT 0,
source_status VARCHAR(32) NOT NULL DEFAULT 'UPLOADED',
storage_provider VARCHAR(64) NOT NULL DEFAULT 'rustfs',
remark VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_source_resource_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_source_resource_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id)
CREATE TABLE IF NOT EXISTS source_resource
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
resource_name VARCHAR(255) NOT NULL,
resource_type VARCHAR(32) NOT NULL DEFAULT 'TEXT',
bucket_name VARCHAR(128) NOT NULL,
file_path VARCHAR(512) NOT NULL,
file_size BIGINT NOT NULL DEFAULT 0,
source_status VARCHAR(32) NOT NULL DEFAULT 'UPLOADED',
storage_provider VARCHAR(64) NOT NULL DEFAULT 'rustfs',
remark VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_source_resource_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_source_resource_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE source_resource IS '资源表,保存文本、图片、视频资源元数据。';
@@ -153,61 +158,62 @@ COMMENT ON COLUMN source_resource.remark IS '备注说明。';
COMMENT ON COLUMN source_resource.created_at IS '创建时间。';
COMMENT ON COLUMN source_resource.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS annotation_task (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
task_name VARCHAR(255) NOT NULL,
industry_type VARCHAR(32) NOT NULL DEFAULT 'transport',
task_type VARCHAR(32) NOT NULL DEFAULT 'EXTRACT_QA',
extract_model_config_id BIGINT,
extract_model_name VARCHAR(128),
extract_model_url VARCHAR(255),
extract_model_api_key VARCHAR(255),
verify_model_config_id BIGINT,
verify_model_name VARCHAR(128),
verify_model_url VARCHAR(255),
verify_model_api_key VARCHAR(255),
extract_prompt_config_id BIGINT,
extract_prompt TEXT,
verify_prompt_config_id BIGINT,
verify_prompt TEXT,
task_status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
started_at TIMESTAMP,
finished_at TIMESTAMP,
error_message TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_task_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_annotation_task_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id),
CONSTRAINT fk_annotation_task_extract_model_config FOREIGN KEY (extract_model_config_id) REFERENCES sys_config(id),
CONSTRAINT fk_annotation_task_verify_model_config FOREIGN KEY (verify_model_config_id) REFERENCES sys_config(id),
CONSTRAINT fk_annotation_task_extract_prompt_config FOREIGN KEY (extract_prompt_config_id) REFERENCES sys_config(id),
CONSTRAINT fk_annotation_task_verify_prompt_config FOREIGN KEY (verify_prompt_config_id) REFERENCES sys_config(id)
CREATE TABLE IF NOT EXISTS image_bbox_annotation
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
bbox_json TEXT,
remark VARCHAR(500),
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_image_bbox_annotation_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_image_bbox_annotation_resource FOREIGN KEY (resource_id) REFERENCES source_resource (id),
CONSTRAINT fk_image_bbox_annotation_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE annotation_task IS '任务表,保存任务、配置引用与执行快照';
COMMENT ON TABLE image_bbox_annotation IS '图片BBOX标注表';
COMMENT ON COLUMN image_bbox_annotation.id IS '主键ID。';
COMMENT ON COLUMN image_bbox_annotation.company_id IS '所属公司ID。';
COMMENT ON COLUMN image_bbox_annotation.resource_id IS '关联的图片资源ID。';
COMMENT ON COLUMN image_bbox_annotation.bbox_json IS 'bbox坐标信息JSON数组。';
COMMENT ON COLUMN image_bbox_annotation.remark IS '备注说明。';
COMMENT ON COLUMN image_bbox_annotation.creator_id IS '创建人用户ID。';
COMMENT ON COLUMN image_bbox_annotation.creator_role IS '创建人数据权限角色,默认 EMPLOYEE。';
COMMENT ON COLUMN image_bbox_annotation.created_at IS '创建时间。';
COMMENT ON COLUMN image_bbox_annotation.updated_at IS '更新时间。';
-- 修改 annotation_task 表,删除模型和提示词相关字段
CREATE TABLE IF NOT EXISTS annotation_task
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
task_name VARCHAR(255) NOT NULL,
industry_type VARCHAR(32) NOT NULL DEFAULT 'transport',
task_type VARCHAR(32) NOT NULL DEFAULT 'EXTRACT_QA',
task_status VARCHAR(32) NOT NULL DEFAULT 'PENDING',
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
started_at TIMESTAMP,
finished_at TIMESTAMP,
error_message TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_task_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_annotation_task_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE annotation_task IS '任务表,保存任务配置与执行快照。';
COMMENT ON COLUMN annotation_task.id IS '任务主键ID。';
COMMENT ON COLUMN annotation_task.company_id IS '所属公司ID。';
COMMENT ON COLUMN annotation_task.creator_id IS '任务创建人用户ID。';
COMMENT ON COLUMN annotation_task.creator_role IS '任务创建人数据权限角色,默认 EMPLOYEE。';
COMMENT ON COLUMN annotation_task.task_name IS '任务名称。';
COMMENT ON COLUMN annotation_task.industry_type IS '行业类型简写,默认 transport可选值按业务扩展,例如 electricity';
COMMENT ON COLUMN annotation_task.industry_type IS '行业类型简写,默认 transport可选值按业务扩展。';
COMMENT ON COLUMN annotation_task.task_type IS '任务类型,默认 EXTRACT_QA。';
COMMENT ON COLUMN annotation_task.extract_model_config_id IS '抽取模型配置ID关联 sys_config.id。';
COMMENT ON COLUMN annotation_task.extract_model_name IS '抽取模型名称。';
COMMENT ON COLUMN annotation_task.extract_model_url IS '抽取模型调用地址。';
COMMENT ON COLUMN annotation_task.extract_model_api_key IS '抽取模型调用密钥。';
COMMENT ON COLUMN annotation_task.verify_model_config_id IS '校验模型配置ID关联 sys_config.id。';
COMMENT ON COLUMN annotation_task.verify_model_name IS '校验模型名称。';
COMMENT ON COLUMN annotation_task.verify_model_url IS '校验模型调用地址。';
COMMENT ON COLUMN annotation_task.verify_model_api_key IS '校验模型调用密钥。';
COMMENT ON COLUMN annotation_task.extract_prompt_config_id IS '抽取Prompt配置ID关联 sys_config.id。';
COMMENT ON COLUMN annotation_task.extract_prompt IS '抽取 Prompt 文本。';
COMMENT ON COLUMN annotation_task.verify_prompt_config_id IS '校验Prompt配置ID关联 sys_config.id。';
COMMENT ON COLUMN annotation_task.verify_prompt IS '校验 Prompt 文本。';
COMMENT ON COLUMN annotation_task.task_status IS '任务状态,默认 PENDING可选 RUNNING、COMPLETED、FAILED。';
COMMENT ON COLUMN annotation_task.is_deleted IS '任务软删除标记,默认 FALSE。';
COMMENT ON COLUMN annotation_task.started_at IS '任务开始时间。';
@@ -216,16 +222,17 @@ COMMENT ON COLUMN annotation_task.error_message IS '任务失败错误信息。'
COMMENT ON COLUMN annotation_task.created_at IS '创建时间。';
COMMENT ON COLUMN annotation_task.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS annotation_task_resource (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
task_id BIGINT NOT NULL,
CREATE TABLE IF NOT EXISTS annotation_task_resource
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
task_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT uq_annotation_task_resource UNIQUE (task_id, resource_id),
CONSTRAINT fk_annotation_task_resource_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_annotation_task_resource_task FOREIGN KEY (task_id) REFERENCES annotation_task(id),
CONSTRAINT fk_annotation_task_resource_resource FOREIGN KEY (resource_id) REFERENCES source_resource(id)
CONSTRAINT fk_annotation_task_resource_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_annotation_task_resource_task FOREIGN KEY (task_id) REFERENCES annotation_task (id),
CONSTRAINT fk_annotation_task_resource_resource FOREIGN KEY (resource_id) REFERENCES source_resource (id)
);
COMMENT ON TABLE annotation_task_resource IS '任务与资源关联表,一个任务可绑定多个资源。';
@@ -235,29 +242,30 @@ COMMENT ON COLUMN annotation_task_resource.task_id IS '任务ID。';
COMMENT ON COLUMN annotation_task_resource.resource_id IS '资源ID。';
COMMENT ON COLUMN annotation_task_resource.created_at IS '创建时间。';
CREATE TABLE IF NOT EXISTS annotation_result (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
task_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
qa_content_json TEXT NOT NULL DEFAULT '{}',
CREATE TABLE IF NOT EXISTS annotation_result
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
task_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
qa_content_json TEXT NOT NULL DEFAULT '{}',
qa_content_storage_mode VARCHAR(32) NOT NULL DEFAULT 'INLINE',
qa_content_file_path VARCHAR(512),
diff_summary TEXT NOT NULL DEFAULT '{}',
requires_manual_review BOOLEAN NOT NULL DEFAULT FALSE,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
reviewer_id BIGINT,
review_comment TEXT,
reviewed_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_result_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_annotation_result_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id),
CONSTRAINT fk_annotation_result_task FOREIGN KEY (task_id) REFERENCES annotation_task(id),
CONSTRAINT fk_annotation_result_resource FOREIGN KEY (resource_id) REFERENCES source_resource(id),
CONSTRAINT fk_annotation_result_reviewer FOREIGN KEY (reviewer_id) REFERENCES sys_user(id)
qa_content_file_path VARCHAR(512),
diff_summary TEXT NOT NULL DEFAULT '{}',
requires_manual_review BOOLEAN NOT NULL DEFAULT FALSE,
is_deleted BOOLEAN NOT NULL DEFAULT FALSE,
reviewer_id BIGINT,
review_comment TEXT,
reviewed_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_result_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_annotation_result_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id),
CONSTRAINT fk_annotation_result_task FOREIGN KEY (task_id) REFERENCES annotation_task (id),
CONSTRAINT fk_annotation_result_resource FOREIGN KEY (resource_id) REFERENCES source_resource (id),
CONSTRAINT fk_annotation_result_reviewer FOREIGN KEY (reviewer_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE annotation_result IS '当前标注结果表。';
@@ -279,27 +287,28 @@ COMMENT ON COLUMN annotation_result.reviewed_at IS '审核时间。';
COMMENT ON COLUMN annotation_result.created_at IS '创建时间。';
COMMENT ON COLUMN annotation_result.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS annotation_result_history (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
source_result_id BIGINT,
task_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
qa_content_json TEXT NOT NULL DEFAULT '{}',
CREATE TABLE IF NOT EXISTS annotation_result_history
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
source_result_id BIGINT,
task_id BIGINT NOT NULL,
resource_id BIGINT NOT NULL,
qa_content_json TEXT NOT NULL DEFAULT '{}',
qa_content_storage_mode VARCHAR(32) NOT NULL DEFAULT 'INLINE',
qa_content_file_path VARCHAR(512),
archive_reason VARCHAR(255),
archived_by BIGINT,
archived_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_result_history_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_annotation_result_history_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id),
CONSTRAINT fk_annotation_result_history_result FOREIGN KEY (source_result_id) REFERENCES annotation_result(id),
CONSTRAINT fk_annotation_result_history_task FOREIGN KEY (task_id) REFERENCES annotation_task(id),
CONSTRAINT fk_annotation_result_history_resource FOREIGN KEY (resource_id) REFERENCES source_resource(id),
CONSTRAINT fk_annotation_result_history_archived_by FOREIGN KEY (archived_by) REFERENCES sys_user(id)
qa_content_file_path VARCHAR(512),
archive_reason VARCHAR(255),
archived_by BIGINT,
archived_at TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_annotation_result_history_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_annotation_result_history_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id),
CONSTRAINT fk_annotation_result_history_result FOREIGN KEY (source_result_id) REFERENCES annotation_result (id),
CONSTRAINT fk_annotation_result_history_task FOREIGN KEY (task_id) REFERENCES annotation_task (id),
CONSTRAINT fk_annotation_result_history_resource FOREIGN KEY (resource_id) REFERENCES source_resource (id),
CONSTRAINT fk_annotation_result_history_archived_by FOREIGN KEY (archived_by) REFERENCES sys_user (id)
);
COMMENT ON TABLE annotation_result_history IS '历史归档结果表。';
@@ -318,20 +327,21 @@ COMMENT ON COLUMN annotation_result_history.archived_by IS '归档操作人用
COMMENT ON COLUMN annotation_result_history.archived_at IS '归档时间。';
COMMENT ON COLUMN annotation_result_history.created_at IS '创建时间。';
CREATE TABLE IF NOT EXISTS training_dataset (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
result_history_id BIGINT NOT NULL,
sample_type VARCHAR(32) NOT NULL DEFAULT 'TEXT',
glm_format_json TEXT NOT NULL,
dataset_status VARCHAR(32) NOT NULL DEFAULT 'DRAFT',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_training_dataset_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_training_dataset_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id),
CONSTRAINT fk_training_dataset_result_history FOREIGN KEY (result_history_id) REFERENCES annotation_result_history(id)
CREATE TABLE IF NOT EXISTS training_dataset
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
result_history_id BIGINT NOT NULL,
sample_type VARCHAR(32) NOT NULL DEFAULT 'TEXT',
glm_format_json TEXT NOT NULL,
dataset_status VARCHAR(32) NOT NULL DEFAULT 'DRAFT',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_training_dataset_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_training_dataset_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id),
CONSTRAINT fk_training_dataset_result_history FOREIGN KEY (result_history_id) REFERENCES annotation_result_history (id)
);
COMMENT ON TABLE training_dataset IS '训练样本表。';
@@ -346,20 +356,21 @@ COMMENT ON COLUMN training_dataset.dataset_status IS '样本状态,默认 DRAF
COMMENT ON COLUMN training_dataset.created_at IS '创建时间。';
COMMENT ON COLUMN training_dataset.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS export_batch (
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
batch_no VARCHAR(64) NOT NULL UNIQUE,
CREATE TABLE IF NOT EXISTS export_batch
(
id BIGINT PRIMARY KEY,
company_id BIGINT NOT NULL,
creator_id BIGINT NOT NULL,
creator_role VARCHAR(32) NOT NULL DEFAULT 'EMPLOYEE',
batch_no VARCHAR(64) NOT NULL UNIQUE,
dataset_file_path VARCHAR(512),
sample_count INTEGER NOT NULL DEFAULT 0,
finetune_job_id VARCHAR(128),
finetune_status VARCHAR(32) NOT NULL DEFAULT 'NOT_STARTED',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_export_batch_company FOREIGN KEY (company_id) REFERENCES sys_company(id),
CONSTRAINT fk_export_batch_creator FOREIGN KEY (creator_id) REFERENCES sys_user(id)
sample_count INTEGER NOT NULL DEFAULT 0,
finetune_job_id VARCHAR(128),
finetune_status VARCHAR(32) NOT NULL DEFAULT 'NOT_STARTED',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_export_batch_company FOREIGN KEY (company_id) REFERENCES sys_company (id),
CONSTRAINT fk_export_batch_creator FOREIGN KEY (creator_id) REFERENCES sys_user (id)
);
COMMENT ON TABLE export_batch IS '导出批次表。';
@@ -375,13 +386,14 @@ COMMENT ON COLUMN export_batch.finetune_status IS '微调状态,默认 NOT_STA
COMMENT ON COLUMN export_batch.created_at IS '创建时间。';
COMMENT ON COLUMN export_batch.updated_at IS '更新时间。';
CREATE TABLE IF NOT EXISTS export_batch_item (
id BIGINT PRIMARY KEY,
batch_id BIGINT NOT NULL,
CREATE TABLE IF NOT EXISTS export_batch_item
(
id BIGINT PRIMARY KEY,
batch_id BIGINT NOT NULL,
dataset_id BIGINT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT fk_export_batch_item_batch FOREIGN KEY (batch_id) REFERENCES export_batch(id),
CONSTRAINT fk_export_batch_item_dataset FOREIGN KEY (dataset_id) REFERENCES training_dataset(id),
CONSTRAINT fk_export_batch_item_batch FOREIGN KEY (batch_id) REFERENCES export_batch (id),
CONSTRAINT fk_export_batch_item_dataset FOREIGN KEY (dataset_id) REFERENCES training_dataset (id),
CONSTRAINT uq_export_batch_item UNIQUE (batch_id, dataset_id)
);
@@ -391,26 +403,28 @@ COMMENT ON COLUMN export_batch_item.batch_id IS '关联导出批次ID。';
COMMENT ON COLUMN export_batch_item.dataset_id IS '关联训练样本ID。';
COMMENT ON COLUMN export_batch_item.created_at IS '创建时间。';
CREATE INDEX IF NOT EXISTS idx_sys_user_company ON sys_user(company_id);
CREATE INDEX IF NOT EXISTS idx_sys_user_role ON sys_user(company_id, role);
CREATE INDEX IF NOT EXISTS idx_sys_user_position ON sys_user(company_id, position);
CREATE INDEX IF NOT EXISTS idx_sys_menu_company_sort ON sys_menu(company_id, sort_order);
CREATE INDEX IF NOT EXISTS idx_sys_config_company_type ON sys_config(company_id, config_type);
CREATE INDEX IF NOT EXISTS idx_source_resource_company_type ON source_resource(company_id, resource_type);
CREATE INDEX IF NOT EXISTS idx_source_resource_company_status ON source_resource(company_id, source_status);
CREATE INDEX IF NOT EXISTS idx_source_resource_creator ON source_resource(company_id, creator_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_status ON annotation_task(company_id, task_status);
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_deleted ON annotation_task(company_id, is_deleted);
CREATE INDEX IF NOT EXISTS idx_annotation_task_creator ON annotation_task(company_id, creator_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_task ON annotation_task_resource(company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_resource ON annotation_task_resource(company_id, resource_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_deleted ON annotation_result(company_id, is_deleted);
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_manual ON annotation_result(company_id, requires_manual_review);
CREATE INDEX IF NOT EXISTS idx_annotation_result_task ON annotation_result(company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_company ON annotation_result_history(company_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_task ON annotation_result_history(company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_resource ON annotation_result_history(company_id, resource_id);
CREATE INDEX IF NOT EXISTS idx_training_dataset_company_status ON training_dataset(company_id, dataset_status);
CREATE INDEX IF NOT EXISTS idx_export_batch_company_status ON export_batch(company_id, finetune_status);
CREATE INDEX IF NOT EXISTS idx_sys_user_company ON sys_user (company_id);
CREATE INDEX IF NOT EXISTS idx_sys_user_role ON sys_user (company_id, role);
CREATE INDEX IF NOT EXISTS idx_sys_user_position ON sys_user (company_id, position);
CREATE INDEX IF NOT EXISTS idx_sys_menu_company_sort ON sys_menu (company_id, sort_order);
CREATE INDEX IF NOT EXISTS idx_sys_config_company_type ON sys_config (company_id, config_type);
CREATE INDEX IF NOT EXISTS idx_source_resource_company_type ON source_resource (company_id, resource_type);
CREATE INDEX IF NOT EXISTS idx_source_resource_company_status ON source_resource (company_id, source_status);
CREATE INDEX IF NOT EXISTS idx_source_resource_creator ON source_resource (company_id, creator_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_status ON annotation_task (company_id, task_status);
CREATE INDEX IF NOT EXISTS idx_annotation_task_company_deleted ON annotation_task (company_id, is_deleted);
CREATE INDEX IF NOT EXISTS idx_annotation_task_creator ON annotation_task (company_id, creator_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_task ON annotation_task_resource (company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_task_resource_company_resource ON annotation_task_resource (company_id, resource_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_deleted ON annotation_result (company_id, is_deleted);
CREATE INDEX IF NOT EXISTS idx_annotation_result_company_manual ON annotation_result (company_id, requires_manual_review);
CREATE INDEX IF NOT EXISTS idx_annotation_result_task ON annotation_result (company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_company ON annotation_result_history (company_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_task ON annotation_result_history (company_id, task_id);
CREATE INDEX IF NOT EXISTS idx_annotation_result_history_resource ON annotation_result_history (company_id, resource_id);
CREATE INDEX IF NOT EXISTS idx_training_dataset_company_status ON training_dataset (company_id, dataset_status);
CREATE INDEX IF NOT EXISTS idx_export_batch_company_status ON export_batch (company_id, finetune_status);
CREATE INDEX IF NOT EXISTS idx_image_bbox_annotation_company ON image_bbox_annotation (company_id);
CREATE INDEX IF NOT EXISTS idx_image_bbox_annotation_resource ON image_bbox_annotation (company_id, resource_id);
COMMIT;
COMMIT;