- parse_llm 拆 chapters/cards 两命令:章级一遍正文产细纲+实体+范式候选线索;窗级按大纲窗行聚类归并出母卡+多实例章号 - parse_ingest 新增 cards 窗级入库:实例域校验/间隔章号差机械追加(伪精确灭绝)/嵌入判重0.85归并终判/越合同字段裁剪降级/占位符机械检测 - parse_outline 幂等键改 from_order(流水号重跑漂移)+书末残窗必成窗+--to 限域 - 出卡环加拒卡带因重试+0卡可疑重试(M3 输出方差实测) - review_cards CRITERIA 补实测间隔可信例外+溯源豁免区说明(防审核假阳) - 章级判重名录随窗级聚类废除(重跑自噬两补丁退役)
99 lines
7.2 KiB
SQL
99 lines
7.2 KiB
SQL
-- 实验私货表(口径③:主仓表原样不改列,实验扩展全进 example_* 前缀)
|
||
-- 公共列/触发器沿用主仓惯例(creator/create_time/updater/update_time/deleted/tenant_id + updated_at 触发器);
|
||
-- tenant_id/creator 按拍板默认系统主账号=1(写入层给值,列默认仍照主仓惯例)。
|
||
-- 软引用无外键(同主仓约定:引用完整性由应用/skill 层保证)。
|
||
|
||
-- ══ example_reference_work:参考书档案(23 型之 reference_work 的库内实例载体)══
|
||
-- 一本参考书 = muse_content_work 一行(原文私有库) + 本表一行(档案与拆书进度)。
|
||
CREATE TABLE example_reference_work (
|
||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||
work_id BIGINT NOT NULL, -- → muse_content_work.id(软引用)
|
||
author VARCHAR(100), -- 作者
|
||
source_file VARCHAR(500), -- 原始 txt 文件名
|
||
declared_chapter_count INT, -- 原文件头部声明章数(无则 NULL)
|
||
imported_chapter_count INT NOT NULL DEFAULT 0, -- 实际导入章数
|
||
char_count BIGINT NOT NULL DEFAULT 0, -- 全文字符数
|
||
parse_scope JSONB, -- 首轮拆书范围,如 {"from":1,"to":50}
|
||
parse_status VARCHAR(20) NOT NULL DEFAULT 'pending', -- pending/parsing/parsed
|
||
notes TEXT, -- 清洗记录/章题格式特点等备注
|
||
creator VARCHAR(64) NOT NULL DEFAULT '',
|
||
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL DEFAULT '',
|
||
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
CONSTRAINT uk_example_reference_work UNIQUE (tenant_id, work_id)
|
||
);
|
||
CREATE TRIGGER trg_example_reference_work_updated_at BEFORE UPDATE ON example_reference_work FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
||
-- ══ example_parse_task:拆书任务状态机(workflow 断点续跑与幂等,状态全在库)══
|
||
-- 一章一行;两阶段各自状态:scaffold=细纲逆推+实体脚手架,pattern=范式拆解。
|
||
CREATE TABLE example_parse_task (
|
||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||
work_id BIGINT NOT NULL, -- → muse_content_work.id
|
||
chapter_id BIGINT NOT NULL, -- → muse_content_chapter.id
|
||
scaffold_status VARCHAR(20) NOT NULL DEFAULT 'pending', -- pending/running/done/failed
|
||
pattern_status VARCHAR(20) NOT NULL DEFAULT 'pending', -- pending/running/done/failed
|
||
attempt_count INT NOT NULL DEFAULT 0, -- 累计尝试次数(含重试)
|
||
agent_model VARCHAR(50), -- 执行模型标记(审计用)
|
||
error_message TEXT, -- 最近一次失败原因
|
||
creator VARCHAR(64) NOT NULL DEFAULT '',
|
||
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL DEFAULT '',
|
||
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
CONSTRAINT uk_example_parse_task UNIQUE (tenant_id, work_id, chapter_id),
|
||
CONSTRAINT chk_example_parse_task_scaffold CHECK (scaffold_status IN ('pending','running','done','failed')),
|
||
CONSTRAINT chk_example_parse_task_pattern CHECK (pattern_status IN ('pending','running','done','failed'))
|
||
);
|
||
CREATE INDEX idx_example_parse_task_work ON example_parse_task(tenant_id, work_id, scaffold_status, pattern_status);
|
||
CREATE TRIGGER trg_example_parse_task_updated_at BEFORE UPDATE ON example_parse_task FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
||
-- ══ example_parse_scaffold:逐章脚手架(parse-book 2b 第一步产物)══
|
||
-- 细纲字数比例按 outline schema 拍板值(章细纲=原文 3–5%);实体清单供判重与二轮双层型决策。
|
||
CREATE TABLE example_parse_scaffold (
|
||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||
work_id BIGINT NOT NULL, -- → muse_content_work.id
|
||
chapter_id BIGINT NOT NULL, -- → muse_content_chapter.id
|
||
outline_text TEXT, -- 逆推细纲(对原文 3–5% 字数)
|
||
entities JSONB, -- 实体清单 [{type,name,brief}]
|
||
-- B4-S3(2026-07-13):出卡权上移窗级——章级只产「范式候选线索」,窗级聚类归并出卡
|
||
pattern_hints JSONB NOT NULL DEFAULT '[]', -- 候选线索 [{type,name,clue,evidence}]
|
||
creator VARCHAR(64) NOT NULL DEFAULT '',
|
||
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL DEFAULT '',
|
||
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
CONSTRAINT uk_example_parse_scaffold UNIQUE (tenant_id, chapter_id)
|
||
);
|
||
CREATE INDEX idx_example_parse_scaffold_work ON example_parse_scaffold(tenant_id, work_id);
|
||
CREATE TRIGGER trg_example_parse_scaffold_updated_at BEFORE UPDATE ON example_parse_scaffold FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|
||
|
||
-- ══ example_knowledge_embedding:知识行嵌入边表(vector(1024),Qwen3-Embedding-8B)══
|
||
-- 挂 draft(草稿期)或 entity(确认后),至少其一非空;content_hash 幂等判重(同文同模型不重嵌)。
|
||
CREATE TABLE example_knowledge_embedding (
|
||
id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
||
draft_id BIGINT, -- → muse_knowledge_draft.id(软引用)
|
||
entity_id BIGINT, -- → muse_knowledge_entity.id(软引用)
|
||
content_hash CHAR(64) NOT NULL, -- 嵌入文本 sha256(幂等键)
|
||
embed_text TEXT NOT NULL, -- 被嵌入文本(名称+摘要+正文拼接)
|
||
model VARCHAR(100) NOT NULL DEFAULT 'Qwen/Qwen3-Embedding-8B',
|
||
dimensions INT NOT NULL DEFAULT 1024,
|
||
embedding vector(1024) NOT NULL,
|
||
creator VARCHAR(64) NOT NULL DEFAULT '',
|
||
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
updater VARCHAR(64) NOT NULL DEFAULT '',
|
||
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
deleted BOOLEAN NOT NULL DEFAULT FALSE,
|
||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||
CONSTRAINT uk_example_knowledge_embedding UNIQUE (tenant_id, content_hash, model),
|
||
CONSTRAINT chk_example_knowledge_embedding_ref CHECK (draft_id IS NOT NULL OR entity_id IS NOT NULL)
|
||
);
|
||
CREATE INDEX idx_example_knowledge_embedding_draft ON example_knowledge_embedding(tenant_id, draft_id) WHERE draft_id IS NOT NULL;
|
||
CREATE INDEX idx_example_knowledge_embedding_entity ON example_knowledge_embedding(tenant_id, entity_id) WHERE entity_id IS NOT NULL;
|
||
-- 余弦相似度检索索引(B3 search skill 用 <=> 召回;数据量小,HNSW 默认参数即可)
|
||
CREATE INDEX idx_example_knowledge_embedding_hnsw ON example_knowledge_embedding USING hnsw (embedding vector_cosine_ops);
|
||
CREATE TRIGGER trg_example_knowledge_embedding_updated_at BEFORE UPDATE ON example_knowledge_embedding FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
|