muse-agent-example/db/ddl/91-example实验私货.sql
zizi c3f9688ccb 框架: B4-S3 出卡权上移窗级——章级候选线索+窗级聚类母卡+间隔机械计算+嵌入判重
- parse_llm 拆 chapters/cards 两命令:章级一遍正文产细纲+实体+范式候选线索;窗级按大纲窗行聚类归并出母卡+多实例章号
- parse_ingest 新增 cards 窗级入库:实例域校验/间隔章号差机械追加(伪精确灭绝)/嵌入判重0.85归并终判/越合同字段裁剪降级/占位符机械检测
- parse_outline 幂等键改 from_order(流水号重跑漂移)+书末残窗必成窗+--to 限域
- 出卡环加拒卡带因重试+0卡可疑重试(M3 输出方差实测)
- review_cards CRITERIA 补实测间隔可信例外+溯源豁免区说明(防审核假阳)
- 章级判重名录随窗级聚类废除(重跑自噬两补丁退役)
2026-07-13 21:22:11 +08:00

99 lines
7.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 实验私货表(口径③:主仓表原样不改列,实验扩展全进 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();