ThearchyHelios
|
7bc7fc685f
|
起草按复核修正:读回复出错也记进用量;补问时列出了、字段留空不算没写出来;留空的列看目录里已有的;一项都没写出来的宽表逐段写范围;提醒照约定的说法
- 读回复时出了意料之外的错:这次调用照样记进用量(算一次出错),再交给 _guarded 记这一块没写出来;以前 _take 抛异常
时这次调用不进 calls、token、failed_calls,也不进提醒的窗口。校验(catalog._from_model)里该是文字的地方写成了
数组、对象的(列名、表类型、业务日期的列、度量类型,columns 不是数组的)直接丢掉、不抛异常:实测列名写成数组时
抛 TypeError,整张表记「起草这张表时出错」。
- 补问时请写的列都列出来了、字段留空:表上算拿不准(记留空),用量和提醒里也不再算一次「只给空壳」没写出来;以前
提醒会因此劝人换模型,真正该做的是补充起草要求。
- 留空的列不算目录里已经有中文名或含义的(不论来源:以前模型起草、按「重新起草不丢内容」留下的,库注释,人工;驳回
的不算有);写入时(write_draft)再按并入目录之后的结果筛一遍,起草进行中有人填了的同样不算。以前照界面的建议补了
起草要求再起草,模型这次没再给的老列又被说成「拿不准、留空了」,提示一直消不掉。
- 一项都没写出来的宽表同样逐段写上列的范围:「这张表 95 列,分 4 段起草,第 1 段(表级的项)、第 2 段(c001 到
c032,共 32 列)……都没写出来:原因」;只有一段的表照旧只写原因(这一段就是整张表)。
- 提醒照约定写「建议在「设置 → 偏好设置」的「起草模型」换一个模型、缩小起草范围,或者停止这次起草」。
|
2026-10-13 21:25:59 +08:00 |
|
ThearchyHelios
|
84405977b6
|
起草引擎按复核修正:每个原始段连同分开的各块一共 8 次;一直超时的模型几轮就停;止损后纯文本不再原样再问
- 封顶管到原始段:段大小减半以后,新开始的段按上限分开的各块(窄表重新拼成的各组、单表均分的各块)共用这一段的
调用次数(_Budget 在 _work 里按原始段建,_start、_guarded 接过去),不再每块各有 8 次。以前上限缩到 10 列后一直
只给空壳,4 张窄表拼成的 40 列段调用 20 次,最坏是「段列数 / 上限 × 8」。止损的计数(连续几段没写出来)同样按
原始段数。
- 超时的两半同时问:带表级项的前一半不再先写完才问后一半(一次超时就是一个时限,40 → 20 → 10 串着问要好几个时限);
额度用完、只给空壳的照旧先写前一半、后一半拿它做背景。
- 超时另有一条止损:拆到每段 10 列(MODEL_MIN_PART_COLUMNS)的调用接连超时 2 次(MODEL_GIVE_UP_AFTER),超时就和
段大小无关了,后面超时的不再拆小,超时拆出来、等名额时还没问的块也不再问(次数退回);有一次调用写出来就恢复。
只管超时:额度用完、只给空壳照旧拆小。原因后面补「拆到每段 10 列仍然超时,已停止拆小重试,建议更换起草模型」。
用假模型量:每次都超时的 40 列表从 8 次调用、约 7 轮(420 秒时约 49 分钟)降到 6 次、3 轮;首轮同时起草的 3 段从
24 次、约 8 轮降到 12 次、4 轮;40、20 列超时而 10 列写得完的照旧拆到 10 列全部写出。
- 止损以后本来能拆小的段只给空壳:已经走纯文本的不再原样再问(约定只对拆不开的段再问一次);结构化输出的照旧换
纯文本问一次。
- resolve_draft_model 的说明照实写:超时不由引擎重试,当作这一段太大、拆小再问。
- 止损的说明改成文字(_Why.halted),两种止损各说一次。
|
2026-10-13 21:25:27 +08:00 |
|
ThearchyHelios
|
975dde1146
|
起草引擎按验收修正:列分段均分、超时拆小、段大小随模型减半、每段 8 次封顶、提醒、超时与没写出来的计数、模型留空的列、不插队、原因写清哪几段哪几列
- 均分:超过 40 列的表,列分段数是列数除以 40 向上取整,各段列数平均(相差不超过 1),不再留下 2 到 8 列的尾段(实测
会思考的模型常对这种小段只给空壳);表级那段、窄表拼段、parts_total 不变。
- 拆不开的段(不到 10 列)只给空壳:再问一次,结构化输出换纯文本,已经走纯文本的原样再问,仍是空壳才记没写出来。
- 超时当作这一段太大:不再原样重试同样大小的段,按额度用完的办法拆小再问;网络错误、429、5xx 仍原样退避重试。
- 段大小随模型调整:一次起草里额度用完或超时累计 2 次,之后新开始的段列数上限减半(40 → 20 → 10,最低 10),新开始
的段超过上限就先按上限均分开(多表的段按表重新拼);任务记当前的上限 part_columns。
- 封顶:一段(连同它拆出来的、补问的、重试的)最多调用 8 次,到了次数还没写完的记没写出来、原因写清。止损照旧。
- 提醒:最近 6 次调用有 4 次以上没写出来(额度用完、超时、空壳、出错),任务的 notice 写一句提醒(次数、原因,建议在
「设置 → 偏好设置」的「起草模型」换一个模型、减少表或停止);之后最近 6 次里少于 2 次就清掉。
- 用量:进度回调 usage 换成 call_done(CallReport:用量、没写出来的原因种类、当前的提醒和列数上限),任务的用量加
timeouts、failed_calls;超时的调用 token 照实记 0。
- 留空的列:请模型写了、模型也列出了,中文名和含义却都没给(或者给的都没通过校验)的列记在 ModelOutcome.blank,逐表
记 blank_columns 和最多 5 个列名 blank_sample,任务上是合计,目录清单的 last_draft 也带列数;表的状态不因此变。已确认
的、库注释已经说清的列不算。补问时把漏的列列出来、字段却留空的,算留空,不再记成「漏了这些列」。
- 公平排队:宽表的表级那段写完,它的列分段排到已经排着的段后面(先来先服务),不再插到队首让窄表一直等。
- 原因:几段因为同一个原因没写出来时说「这几段」,同一段拆出来的几块仍是「这一段」;只有真拆小过才补「已拆小重试仍
没写出」(截断后只补剩下的不算);每段写上列的范围,例如「第 5 段(列名 到 列名,共 33 列)」,窄表写出是哪几列。
- 库:catalog_draft_jobs 加 timeouts、failed_calls、part_columns、notice,catalog_draft_tasks 加 blank_columns、
blank_sample,旧库启动时补列(存量回填 0 和空)。假模型加 hang(头几次调用一直不回,用来模拟超时)。
|
2026-10-13 20:30:02 +08:00 |
|
ThearchyHelios
|
645064fe47
|
数据目录重新起草不丢内容;库注释就是名字本身或标识符写法的不当中文名
- 合并(merge_notes)只改模型起草这一个来源的「覆盖即删」:模型这次对某一项没给值(留空,或者给的值没通过校验、在
_from_model 里就丢掉了),以前模型起草的项留着,只有给了合格的新值才替换。只有这一轮完整起草过(covered 含 llm)、
而这一项说的列已经不在表结构里(列级的项看列名,业务主键、业务日期看它们指着的列)才删;write_draft 把表结构里的
列名交给合并。注释、外键、命名推断、剖析各自的规矩不变,人工确认、驳回的不动。删除数因此只在真删时才有。
以前整库重跑一次,模型这次没给的几百项全被删掉,有的表覆盖率从八成多掉到五成,表仍记「已完成」。
- 库注释(comment_role):和表名(列注释和列名)相同(忽略大小写、下划线、连字符、空白,表名带 schema 前缀的也比
不带前缀的),或者是标识符写法(只有字母、数字、下划线、点,不带空格),不当中文名、也不当说明,不记进目录;交给
模型的表结构里照旧有这条注释。以前这种注释短、不带句读就当中文名,库注释的级别又高于模型起草,模型起草的中文名
永远进不了目录。已有目录不另做迁移:起草到那张表时,旧的那条随这一轮的注释删掉,模型起草的中文名就能进来。
|
2026-10-13 20:30:02 +08:00 |
|
ThearchyHelios
|
4857c578f6
|
起草的止损和公平:连续 2 段(MODEL_GIVE_UP_AFTER)拆到底仍一项没写出来,这次起草后面的段不再拆小重试,没写出来就直接记下,原因后面补「模型连续 2 段都没写出来,已停止拆小重试,建议更换起草模型」;有一段写出来就恢复拆小。每次起草同时只起草 3 段(MODEL_CONCURRENCY),一段连同拆小、补缺做完再取下一段,宽表的表级那段写完,它的列分段排到最前面一段一段起草;同时在等全进程名额的调用每次起草最多 3 个,几次起草(不同数据源的任务、同步起草)交替排队,后开始的不再等前一个排着的上百段全部调完。实测一直只给空壳的 294 列宽表从 168 次调用降到 81 次,20 张 120 列的宽表一直用完额度从约 900 次降到 122 次
|
2026-10-13 16:46:52 +08:00 |
|
ThearchyHelios
|
ec6838dc10
|
起草模型的 SDK 不再自己重试:ModelSpec 加 max_retries,build_chat_model 一直传到 SDK 客户端(Bearer 鉴权换上的 Anthropic 客户端也带上);数据目录起草建的大、小两个模型都是 max_retries=0,429、5xx、网络错误、超时只由起草引擎按失败原因重试(最多 2 次)。以前 openai、anthropic 的 SDK 各自先重试 2 次,叠在引擎的重试上,一段最多发 9 次请求,报错却写「已重试 2 次」,网关限流时还放大流量。不写 max_retries 的调用照 SDK 默认,配方 AI 起草不动
|
2026-10-13 16:40:07 +08:00 |
|
ThearchyHelios
|
b988a5ae18
|
起草引擎和后台任务的几处收紧:提示词要求请写的每一列都列出来(拿不准的字段留空、列不漏),免得模型留空的列再被补问;纯文本那条路的格式示例改用「表类型」「度量类型」占位,不让模型照抄示例值;从正文取 JSON 时依次试多个括号作开头,说明文字里带括号、外面多包一层都认得;用量记在单次调用的时限之外,落库慢了不会把已经回来的调用算成超时;后台任务收尾写库出错只记日志;补上从正文取 JSON、任务开始时模型已用不了(整体 failed)的测试
|
2026-10-13 15:36:24 +08:00 |
|
ThearchyHelios
|
6b1f63a9dc
|
数据目录模型起草换成分段、按失败原因处理的引擎(data/catalog_draft.py):每次最多 4 张表、40 列,窄表按顺序拼段,宽表拆成「表级一段 + 每 40 列一段」,列分段带着表注释和表级起草结果做背景,最后合并照旧逐项校验;思考和输出用完额度、只给空壳时拆成两半再问(最少 5 列、最多 3 层),拆不开的空壳换纯文本问一次,写出来了后面都走纯文本;被截断的 JSON 先捡回已完整的表和列、只补剩下的;缺了的表和列只补缺的、补一次;服务方嫌额度大时退回 8192、结构化输出不支持时改走纯文本,都管到这次起草结束;网络错误、429、5xx、超时退避重试最多 2 次;单次调用 420 秒;全进程最多 3 个调用同时进行;报错写原因和办法(第几段、共几列没写出来、可以只重试这张表);提示词加上起草要求一段(数据源说明、起草要求、本次说明,规矩在前、冲突以规矩为准)和「思考时不必逐列草拟」;同步起草改用新引擎,写入抽成每张表一结束就能调的 write_draft
|
2026-10-13 15:19:06 +08:00 |
|
ThearchyHelios
|
b940b27e24
|
起草模型设置:新增设置组 catalog_draft(接入、模型),点名的接入不存在或已停用时保存回 422;数据目录起草和按配方导入的 AI 起草共用一处取模型(起草模型 > 助手的模型 > 默认接入),取自起草模型时报错照实说起草模型那一项;数据目录起草不再关思考,额度 32768,服务方嫌大时退回 8192(之后都用小额度),单次调用时限 420 秒交给 SDK;配方 AI 起草的额度、思考设置不动
|
2026-10-13 15:00:38 +08:00 |
|
ThearchyHelios
|
3c51c40e9d
|
点名的模型接入:发布前检查给每一处配修复,提示指到界面上真能改的地方,复核发现的几处漏查、误查补齐
多数节点(模型调用、Agent、报告撰写、多 Agent 协作、条件分支、结构校验、知识检索)、协作成员和全图默认的接入在检查器里没有下拉框,以前点名的接入坏了只能去设置里建一个同名接入。现在门禁接受接入表(governance.lint_for_publish 的 providers,接口层读好传进来,同数据目录 SQL 检查器),点名接入的问题成了门禁的一部分,自动修复给每一处一条要人选的修复:改用一个启用的接入,或不指定接入;选的接入不提供这一处写着的模型时模型一并去掉。一处一条(修复 id 带字段,复核只认那个字段),协作节点自己的接入和成员的接入各修各的。校验和发布检查的提示按位置写:有下拉框的说「在节点中换一个接入」,别处说「在发布前检查中改用其他接入」;剩下的只有接入问题时交给助手的说明也改成指向这些修复。
复核发现一并修:核查节点自己的开关关着、结构校验不许重试时不再查(执行时根本不取模型,以前会挡住发布);报告没写裁判配置时查全图默认里的那一份(以前放行,正式运行却全部未裁判);接入名不是字符串时查助手模型的接口不再 500,设置接口对门控、助手两组的这类值回 422 带字段;助手、表格导入、数据目录起草用的模型点名的接入不存在或已停用时照实说是哪个接入、去哪里改(以前说「尚未配置完成」,停用接入的下一步丢了),删掉两处已走不到的分支。
测试补齐:结构校验让模型修复、知识检索让模型重排、按需裁判各路径的不存在与已停用,助手、定时正式运行、裁判的两种情况,反方审稿节点上点名的接入;修复的候选、应用、拒收和图级默认。
|
2026-10-06 15:14:26 +08:00 |
|
ThearchyHelios
|
661f6a38d7
|
A7 剖析写进目录的说明不再写日期:以前写的是 UTC 日期(at[:10]),和界面上按本地时间显示的修改时间对不上;改为「数据剖析:…」,时间以这一项的 updated_at 为准。is_profile_note 同时认升级前带日期的「数据剖析(日期):」;same_profile_note 继续兼容旧数据:只差日期、或一段带日期一段不带的同一结论都算相同,升级后重新剖析不会给每张表升版本
|
2026-10-04 02:19:26 +08:00 |
|
ThearchyHelios
|
46c3fd3093
|
A6 扇出检查只在一对多确有其事时报错误:关系人工确认过,或数据剖析在数据上核实过子表一侧的键不唯一(关系上记 cardinality_checked,子表太大没核对的不算)才给 error;只凭外键结构推出的一对多降为 warning,说法改成「可能重复计算」,下一步写确认关联表里每个键只有一行、或先汇总再关联;人工编辑提交里带的 cardinality_checked 不作数;级别说明「结果必然有误」改为不夸大的说法;2B、F1 的测试按新规则更新:外键 + verified → warning,剖析核实过 → error,人工确认 → error
|
2026-10-04 02:19:26 +08:00 |
|
ThearchyHelios
|
0df5e7d4af
|
A2 模型起草一项都没写进去时不再算成功:认出没有 tables 外壳的单个表对象;结构化输出是空壳(只有表名、没有可用字段)时改走纯文本再问一次;某张表最终没有可用内容记 model_error「模型没有给出这张表的可用内容」;起草结果每张表多一个 model_items(模型给了几项可用内容),界面据此区分「和现有目录一致」与「模型没给内容」;「没有变化」改为只说起草出的内容与现有目录一致,另加「目录没有更新」一句;假模型能模拟空壳、单个对象、某条路不可用三种实测回复
|
2026-10-04 02:19:26 +08:00 |
|
ThearchyHelios
|
c133967bf9
|
冻结的数据目录有了读取方:证据接口的查询步骤带上表结构快照 id 和这条查询用到的表当时的目录版本,证据面板写「数据目录:订单 第 3 版」;冻结时保留被驳回关系的编号和状态(不放内容),新增按冻结的那份重建 SQL 检查器的 frozen_checker,驳回过的外键关系不会被推回来
|
2026-10-04 02:00:17 +08:00 |
|
ThearchyHelios
|
d805f64195
|
数据目录 F1 一致性:日期列的判定抽成 catalog.is_date_column,数据剖析(唯一日期列提议业务日期)和 SQL 检查(按业务日期以外的时间列统计)共用,只有时刻的 TIME、整数存的时间戳两边都不算;表名匹配统一按 name_key(只把 ASCII 字母转小写),resolve_table_name 和 SQL 检查里认表名不再按 Unicode 转小写,和使用次数、影响面同一个口径;切词合并成 catalog.name_words,剖析不再另写一份;更新过时的说明(错误级检查已经上线、剖析预算的叫法跟设置界面);码值比较不分大小写保留,注释写明是照顾 MySQL 默认排序规则、宁可漏报
|
2026-10-04 01:17:29 +08:00 |
|
ThearchyHelios
|
f5e8a436f1
|
数据目录 F1-B3:计算公式在人工整份提交和模型起草两条路径上也拦下——人工提交里改动过的文字项像公式就整份不收(422,说明公式写进口径卡),模型起草出的公式项丢掉;和对话提案同一套判断。只查改动过的项、不进结构校验:库里已有的含公式的项不会挡住这张表的写入
|
2026-10-04 01:15:05 +08:00 |
|
ThearchyHelios
|
bf5bee9246
|
数据目录 F1-B2:剖析写的备注只是开头的日期变了、其余都没变时,保留旧的项、不升版本(人工确认过的关系也一样)。以前隔天重新剖析、数据没变,目录版本也加 1,发布时记下的目录版本就对不上,之后每次正式运行都误报目录有变化
|
2026-10-04 01:14:08 +08:00 |
|
ThearchyHelios
|
b078d08ffe
|
数据目录 F1-A4:码值项加「已列全」标记(complete: true),只有人工明确勾选、或剖析整表统计(没有只看前若干行)得到的码值才有;码值不在码值表中的检查只认标了它的码值表,给模型的话改为提示核对取值,不再叫它照目录里的码值改。以前经对话只补了 status=9 表示作废,之后 status = 1 就被报提醒,模型还可能把对的 SQL 改错。提案补充码值时沿用原有的标记、自己不能标;目录页的码值编辑和填写含义弹窗加「已列出全部取值」勾选,表格里标「已列全」,检查脚本跟上
|
2026-10-04 01:13:13 +08:00 |
|
ThearchyHelios
|
fd3ec43662
|
数据目录 F1-A2:在目录页去掉外键约束、命名推断、数据剖析、模型起草得出的关联关系改为驳回、保留编号,只有人工添加的才真正删除;改了两端的旧关系同样驳回。以前删掉的推断关系下次起草又加回来,关系图按表结构现推也会带回来,照样驱动 SQL 检查和助手挑表。表结构推得出的人工关系(人工改过基数的外键关系)去掉时也只驳回。编辑界面上这类关系不给「删除」只给「驳回」(保存时等同单项驳回,可撤销),检查脚本跟上
|
2026-10-04 01:07:35 +08:00 |
|
ThearchyHelios
|
0fa498ac18
|
数据目录 F1-A1:对话提案确认关联关系时不再抹掉基数和覆盖率——覆盖率是剖析测得的,一律沿用;基数没写时沿用已有的,新增的按目标表的主键或唯一约束推算,推算不了留空并在提案这一项上说明(PatchChange.note)。以前剖析测得多对一的关系经提案确认后基数变空,一对多关联后重复计算的检查静默失效
|
2026-10-04 01:03:32 +08:00 |
|
ThearchyHelios
|
cece781b5a
|
合入集成分支(阶段 2A 数据剖析、4B 剖析与 SQL 检查界面及修正)到 4A:两边功能都保留
冲突的解法:
- 后端 api/catalog.py:同时导入 catalog_impact 和 catalog_profile、SnapshotTampered;data/catalog.py:__all__ 取两边的并集重排。
- 2A 放宽了码值校验(含义可以为空,剖析写进来的是「含义待填写」):目录修改提案的码值补充改为含义为空的码不覆盖已有含义、
只在原来没有这个码时加进去,补了测试;卡片和过程里的码值把空含义写成「含义待填写」,和目录页同一个说法。
- 前端 types.ts、terms.ts:两边各在同一处追加了新段落,按顺序都留下(提案、影响面、目录版本在前,剖析、码值、SQL 检查在后),
没有重复的键;client.ts、decode.ts、CatalogPage.tsx、TableDetail.tsx 的导入取并集。
- check-catalog.mjs:影响面和剖析、保存数据源三条假路由都留下,各节和最后核对真库数量的逻辑不变。
- 4A 的测试数据源改用 tests/fixtures/sources.py 的 drop_source 删除,顺带作废连接池。
|
2026-10-03 12:35:47 +08:00 |
|
ThearchyHelios
|
25e444ca3f
|
数据目录阶段 4A 术语:服务端上界面的目录校验报错改用界面的叫法,表类型写明细表、度量类型写可累加、关联关系两端写本表字段和目标表,给模型看的说法不变
|
2026-10-03 12:14:17 +08:00 |
|
ThearchyHelios
|
913ed9d2c4
|
命名推断认业务前缀、SQL 检查认兄弟关联:表名带业务前缀、列名只写词根时推不出关系,两张表各自指向同一张父表、彼此相连也被当成连错了列——改为直接对不上时按引用表共用的前缀找唯一一张,兄弟关联只提示行数可能成倍
|
2026-10-03 11:21:03 +08:00 |
|
ThearchyHelios
|
1a760726f7
|
数据目录阶段 4A:助手协议新增目录修改提案 catalog_patch,服务端核对数据源、表、路径和取值后附版本与改前改后转出、绝不自动写入,新增提案预览与保存接口
|
2026-10-03 11:19:44 +08:00 |
|
ThearchyHelios
|
b5ec0a5a96
|
数据剖析的码值与时间列:状态类低基数列取值分布写成码值候选(含义待人填写),被遮罩的列不取;日期类列取最小值和最大值,只有一个日期列时提议为业务日期
|
2026-10-03 11:01:04 +08:00 |
|
ThearchyHelios
|
fefb708757
|
数据剖析的关系验证:抽样键值去父表核对覆盖率,父键唯一且覆盖率够的升为有确证(来源记为数据剖析),覆盖率低的保持推断并写明原因,人工确认过的只补覆盖率和基数;撤销审阅回到剖析的结论
|
2026-10-03 10:56:08 +08:00 |
|
ThearchyHelios
|
f4ee261aec
|
数据目录阶段 1A:建工具时用单独的会话读目录,查询快照的 meta 解析失败不连累快照落盘
|
2026-10-03 09:44:45 +08:00 |
|
ThearchyHelios
|
a340d968fa
|
数据目录阶段 1A:结构化输出报错时退回纯文本起草,关联关系的校验说明补上空格和修改时间的检查
|
2026-10-03 09:42:48 +08:00 |
|
ThearchyHelios
|
6f6798153e
|
数据目录阶段 1A:catalog.py 补齐合并与审阅、注释 / 外键 / 命名推断 / 模型起草、渲染、关系图、使用次数和冻结内容
|
2026-10-03 09:27:25 +08:00 |
|
ThearchyHelios
|
bb5a1b43cd
|
数据目录阶段 1A:新增 catalog_notes 表与按表的乐观锁存取,目录只认固定字段、不放公式
|
2026-10-03 09:08:44 +08:00 |
|