Commit Graph

931 Commits

Author SHA1 Message Date
ThearchyHelios 7f66985dba 口径草稿:从业务文档抽定义,再从一次真实运行接上取数路径
新增 caliber_drafts 表与 /api/ledger/drafts 一组接口:抽取在后台跑,文档缺失整单拒绝,
有未决问题时停在 questions_open,问题清完才到 path_pending。

接上运行沿用从运行固化的建图逻辑,定义按同名或同义词并入指标卡,expression 与 id 不动;
文档引用记进 origin.documents,复核能落回具体段落。接入只产出可试跑的草稿,不发布、不发起运行。
2026-11-03 22:50:14 +08:00
ThearchyHelios 51daa7b96c 把从运行固化的建图部分抽成 build_graph,供文档草稿接上数据路径时复用
行为逐字不变:节点 id、顺序、报告配置、出口契约都与原来一致,test_ledger_certify
的断言一条未改。
2026-11-03 22:42:32 +08:00
ThearchyHelios 4f0aa62dcc 业务文档起草口径草稿:只产出定义与逐字引用,不产出取数
文档里写的是业务说法,不是库里的表和 SQL。模型回复里出现 SQL、表名、列名的一律丢弃;
每条定义必须能在原文里按归一化空白逐字定位,定位不到就不进草稿。草稿在 path_pending
状态下不是合法图,因此不写进 workflows.graph。
2026-11-03 22:42:28 +08:00
ThearchyHelios 753c35918d 复盘修正:试运行不计入统计、评估标签遮罩、规则/评估卡可组合 2026-11-03 21:23:08 +08:00
ThearchyHelios 4bf9e56979 支持评估型指标:rubric 加权评分、等级与 assessed 标签 2026-11-03 20:52:29 +08:00
ThearchyHelios e1d63e7389 规则 DSL 编译成只读 SQL,并用 fixture 验证 2026-11-03 20:50:06 +08:00
ThearchyHelios 6e7f2a5ce8 支持规则型指标:单元格条件确定性求值与 derived 标签 2026-11-03 20:36:04 +08:00
ThearchyHelios 37657e24c3 支持外部常量指标:来源、生效日期、过期降档与 external 标签 2026-11-03 20:32:55 +08:00
ThearchyHelios 214a3367ff 指标定义卡与参数进入校验、descriptor 和目录页 2026-11-03 19:45:41 +08:00
ThearchyHelios 68af29a180 增加口径目录页与试跑:入口表单、依赖说明和只读试跑 2026-11-03 19:43:39 +08:00
ThearchyHelios aeaca4ce69 记录口径调用审计:compose 与正式出具各记一条参数指纹 2026-11-03 19:38:00 +08:00
ThearchyHelios 5eb1c8ff00 增加口径可调用 descriptor:入口 Schema、依赖与出具策略 2026-11-03 19:34:28 +08:00
ThearchyHelios 97710463fe 补子图查询进入父图账本比对的回归测试 2026-11-03 19:14:23 +08:00
ThearchyHelios 89817a6ef4 修正旧图金样对新增口径内容指纹的断言 2026-11-03 19:12:41 +08:00
ThearchyHelios 539119cf5c 分析结论记录说法模板版本:复算时版本不同不误报文字差异 2026-11-03 19:12:27 +08:00
ThearchyHelios 174375c6c7 新设遮罩列时清理目录里的码值、含义与备注 2026-11-03 18:53:39 +08:00
ThearchyHelios 90597d5540 口径增加内容指纹:指标集与账本候选记录定义哈希 2026-11-03 18:47:32 +08:00
ThearchyHelios ce2f68a373 口径取数 SQL 增加书写 lint:取整、补 0 在画布提示并在受管发布时拦截 2026-11-03 18:36:26 +08:00
ThearchyHelios cf30f999f6 验收复核查出的三处:有量纲比率的效应值(结构效应、自身效应、合计影响、变化)照原值显示,不再乘一百说成百分点(客单价影响 -11.12 元 / 单以前显示 -1,112.1 个百分点);只读一张表、目录还没维护时分析范围照实说目录没维护,不说成对不上目录里的列;写作规则补一条不写重复判定语开头的引言 2026-10-21 18:08:59 +00:00
ThearchyHelios 9219df8190 真实模型验收查出的五条修正:①比率拆解里比率本身是有量纲的比率(客单价,元 / 单)时不套百分数,以前 160.76 显示成 16,076.0%,各段分子都不超过分母(退款率这类占比)照旧按百分数;②写作规则补两条——判定语一句只引用一份结论、不把几份判定语用逗号拼成一句,「核对不了」是系统的核对说明不是结论;③说法核对的来源判断看整个分句(主来源写在判断词后面的「主要由订单量放大带来」也能认),点名的段按去掉结尾量词的词根兜底(订单量 认 订单数);④数据目录还没维护时候选维度照实说目录没维护、提示怎么补,不说成认不出事实表;⑤评测估不出每题花费时金额照 0 记但记成未计价,账本上看得出;金额上限照旧按累计金额判 2026-10-21 17:33:49 +00:00
ThearchyHelios 30423a0686 可验证报告那条新测试按列名找结果表的格:S8 起出处面板写结果表记的列名(占变化的比重),不把列 id(share)当叫法 2026-10-21 16:27:43 +00:00
ThearchyHelios 7b47ce1724 合入第 2 波复核修复 S1:分析结论的占比、变化率、比率之差按百分数 / 百分点显示——结果表带每列的显示格式、具名的数带格式,证据渲染、整表、写作目录、证据面板、导出、可验证报告都按它;显示规则 4 版,老文档按记下的版本复核;空格写「—」
# Conflicts:
#	backend/tests/test_analysis_pages.py
2026-10-21 16:23:39 +00:00
ThearchyHelios 709a50208a 合入第 2 波复核修复 S2、S5、S6:关分析工具那一臂挡分析卡与用了分析的子工作流、节点手册里不再出现分析;问题意图词表与自查那句进评测的提示词指纹;问题意图不把问构成当来源、不把问数据质量当异常 2026-10-21 16:22:21 +00:00
ThearchyHelios eade5aab5d 关分析工具那一臂挡分析卡:图里有分析卡、嵌套的子工作流里有分析卡或分析工具都挡回去改;关掉时节点手册里不再出现分析卡、分析工具和分析相关的配置(改写与整段去掉);问题意图词表版本与自查交回的那句进评测的提示词指纹;问题意图不把「哪个贡献最多」当来源、不把「数据是否正常」当异常;评测「关」那一臂的替身改成照样试着加分析卡、靠真代码挡 2026-10-21 16:19:49 +00:00
ThearchyHelios 316863b2e0 零售样例题集的试算:退款金额两边都按两位小数比(SQLite 的 ROUND(SUM(amount), 2) 出来是浮点,6448.19 存成 6448.1900000000005,逐字比会随数据变而失败;main 上同样失败) 2026-10-21 16:19:28 +00:00
ThearchyHelios e225fcdd2c 合入第 2 波复核修复 S3、S7、S8、S10、P1:分析卡上写在验证什么的那句照实说是模板作者写的、分析步骤的编号写明是哪一层、证据面板的格写列名与总数按服务端渲染、注释归位、窄屏收起工具栏的改名图标 2026-10-21 16:17:20 +00:00
ThearchyHelios 28e7b0e12b 测试:占比、变化率、权重按百分数显示(第 2 波 S1)——每种实测情况一条断言:正文引用 [[a:A1.top_share]]、[[v:A1.r0.share]]、[[v:A1.r0.pct]] 没写换算时取结论记的格式(61.9%、-14.6%),写了换算的照写作者的;整表按格式展开;写作目录的具名的数与结果表按格式写;证据面板接口的具名的数、结果表的格、整体比率那一格(空格写「—」);导出页与可验证报告照引用渲染;老文档(3 版)照原样、复核不判对不上,按新规则重渲染才判对不上。另钉住各算子填了哪些列、pct 与 pp 的写法、同输入两次 run 逐字节相同、复算逐字段相同 2026-10-21 15:55:51 +00:00
ThearchyHelios 31ed7a96f3 证据面板的计算一步照服务端写好的字显示:具名的数按结论记的格式(占比 61.9%,不再写 0.618556701031)、结果表的格同样(变化率 -14.6%),空格写「—」不写 null;列类型照结果表的 column_types。比率拆解的整体比率那一格和对照的那一格也按格式写(3.5%,不是 0.035)。前端照原样显示(只补一句说明) 2026-10-21 15:55:20 +00:00
ThearchyHelios 55376fd332 引用分析结论时没写换算的按结论记的格式渲染(显示规则 4 版):[[v:A1.r0.share]]、[[a:A1.top_share]] 取这一列 / 这个数的格式(占比、变化率按百分数,比率的变化按百分点),写作者自己写了换算的照他的;实际用的换算记在引用上,展开整表时每一格也照写。写作目录的具名的数、结果表的行按同一格式写。3 版及以前组装的文档照当年原样显示,复核按记下的版本,不判对不上。pct、pp 两种换算的写法(不是 0 的不写成 0.0);可验证报告按引用上的换算、4 版起按结论记的格式渲染,不认识的显示规则版本(5 版)判无法核对 2026-10-21 15:55:11 +00:00
ThearchyHelios 3ecc6223df 分析算子给结论里以比率存的列和数记换算:契约加 ResultTable.formats、AnalysisResult.value_formats(换算同 [[m:]] 的后缀,另加 pp 表示百分点),各算子逐个填全——可加、乘积拆解的 pct、share;比率拆解的 w_*、r_* 记 pct,mix、rate、total 是比率之差记 pp;波动基线按变化率比较时的 change,趋势的相对斜率;差异检验比率模式的 a_value、b_value 记 pct,diff、ci_lo、ci_hi 记 pp;values 里的 pct_total、top_share、top_k_share、mix_share、rate_share 等。都为空时整项不写,结论和以前一字不差;run 与 recompute 逐字段相同、同输入两次 run 逐字节相同照旧成立(tests/test_analysis_run 的形状检查认这两项可选) 2026-10-21 15:54:46 +00:00
ThearchyHelios c54196326f 证据面板的分析结论:结果表的格写列名,总数那一格的值按服务端的写法显示。①「这一处引用的是 结果表第 1 行『share』」原来写的是列 id,现在服务端在 cited 上另给 column_label(结果表记的 labels,如「占变化的比重」),目录条目也带上 labels,证据面板、读屏的出处、导出页、可验证报告都照列名写;② 输入里「总数那一格 … = 159175.18」和同一节的闭合核对「159,175.18」两个写法并排,现在服务端另给 value_rendered(render_cell,千分位、NULL 写「—」,和闭合核对同一个写法),三处界面照原样显示。结果表数的换算(比率、空格)不在这次改动里 2026-10-21 15:53:27 +00:00
ThearchyHelios b919890b7b 问数据时间线的分析一步、协作成员的分析:编号照实说是哪一层。Agent 工具那一步标题写「变化拆解(可加) · 本节点 A1」——编号是这份 Agent 自己的分析容器里的(交回模型的「【分析 A1】」),报告目录里的 A1 按整次运行的台账编,图里还有分析卡时就不是同一个,不再冒充报告里的编号;分析卡的一项照旧写这一项的标识。协作成员的分析不带编号(成员的结论还进不了台账,照它写「· A1」会和报告里点名的结论对不上),event_view 交回 alias=None。check-decode、check-stream、协作成员那条测试照新写法改 2026-10-21 15:52:58 +00:00
ThearchyHelios 9461c03a63 分析结论的「在验证什么」照实说谁写的:分析卡上那一条是模板作者写的,标「分析卡上写的『在验证什么』」;Agent 现场做的照旧「Agent 写的假设」(台账条目带 item 的是分析卡、带 call_id 的是 Agent)。服务端按 origin 给 hypothesis_label、hypothesis_note 两句,证据面板、导出页、可验证报告都照原样显示,不自己拼。测试:证据接口两种都测,分析卡的链、导出页、核对页各加一条断言 2026-10-21 15:52:19 +00:00
ThearchyHelios b0b8d3ef04 评测页分析期望的参数格和分析卡用同一份:CaseEditor 原来自抄的 PARAM_FIELDS 去掉,改用 canvas/analysisItems.paramSpecs(差异检验的比率、均值、逐行三模式也带上期次三格了,和服务器参数模型一致);参数叫法只剩 lib/termsAnalysis 一份(EVAL_TEXT.analysis.param/basis/grain 引用 ANALYSIS_TEXT.node),格子的取值转换也用 paramText/paramValue,期次格保留 {{ }} 时间变量
- 参数格:basis、grain 两份下拉带上空着的缺省项(和分析卡同两行),逐行的值列、只比这几对等叫法跟分析卡一致
- test_frontend_eval_unions.py 新增一条:paramSpecs(含 PERIODS)的参数名和服务端各参数模型的交集/并集逐个对得上、评测页引用的是 paramSpecs、三张叫法表引用 ANALYSIS_TEXT.node
2026-10-21 14:57:12 +00:00
ThearchyHelios 454e82e211 分析测试的「今天」按题集的时区取,不看本机时区:题集里的期次(上周、本周)按 suite.timezone 算,生成虚构库、判今天是不是周一也照它,本机在别的时区(或跨午夜那几个钟头)时两边不是同一天
- test_eval_analysis_runs.py:TZ 从题集读,新增 now()(datetime.now(ZoneInfo(TZ))),生成库用 now().date(),原来写死的 Asia/Shanghai 去掉
- test_eval_analysis_suite.py:从题集内容取时区算今天,判周一也按它
- test_evals_api.py:零售样例题集的「今天」同样从题集取时区
2026-10-21 14:57:06 +00:00
ThearchyHelios d211d2fac8 评测页的分析方法、模式叫法改为引用 lib/termsAnalysis 那一份(原来 termsEval 另抄了一份 OP_LABELS / MODE_LABELS):EVAL_TEXT.analysis.op / mode 直接用 ANALYSIS_OP_LABEL、ANALYSIS_MODE_LABEL,字一样、界面不变。tests/test_frontend_eval_unions.py 改成读 termsAnalysis.ts 的两张表和契约逐项对,并守住评测页引用的是这一份 2026-10-21 20:03:54 +08:00
ThearchyHelios 28c538a72f 趋势判断工具的说明开头改成契约的叫法「趋势判断:」(原来写「趋势:」,另外四个工具都以 OP_LABELS 的叫法开头);测试补一条:五个分析工具的说明都以契约里这种分析的叫法加「:」开头,助手的工具清单、证据面板、评测写的是同一种说法 2026-10-21 20:02:41 +08:00
ThearchyHelios 03cedbaf1d 合入 W2-c 前端:分析卡节点与分析项编辑器、报告节点两个新字段、设置「分析」一节、问数据时间线的分析步骤与出具横幅三项、运行对比的分析卡一区、证据面板与正文接上分析结论(六步出处链、闭合核对、两期可比性、说法违规标注、分析范围)、可验证报告核对页与分析样本页、口径账本摘要防 NaN;服务端补分析工具事件里的判定与分析结论的单独出处接口
# Conflicts:
#	backend/tests/test_eval_schedule.py
2026-10-21 19:34:24 +08:00
ThearchyHelios de1bfaee9e 定时评测的测试不依赖同进程里的数据源个数(同 843be9a5 给 test_eval_runner 的做法):这里的题没有限定数据源,评测按进程里全部的数据源拍目录快照,别的测试留下的数据源超过 app/eval/snapshots.MAX_SOURCES 时整次评测按设计失败(「这次评测用到的数据源超过 20 个」),断言的 partial 就成了 failed;后端全量并行时分到同一个进程就复现。这里不测这个上限,测试里把上限放大 2026-10-21 19:32:40 +08:00
ThearchyHelios cc2c7a00fb 可比性期望认正文里「两期不能直接比」的说法:说法表(engine/analysis_claims)照旧不加可比 / 不可比一类,说法核对不打回「本周数据不完整,不能直接比」这种谨慎的提醒;评分在 eval/judgements 另用一张只给自己用的小词表(_INCOMPARABLE:不能直接比、不可比、不具可比性、本期数据不完整、还没过完、只有几天、差几天、不满一周、天数不同、口径不同……;「无法比拟」「比不上」、不带「直接」的「没法比」不算)。期望是不可比、正文明确这么说了的,按「对但没引用」算;同一分句里前面有否定的、句子里前面有假设或疑问的、问句都不算;期望是可比的只能靠引用。读答案时有这类说法的句子也留下(sentences_of_doc、sentences_of_text)。测试:几种说法算对但没引用、找到的那一处照实写;假设、疑问、否定、差得远、无关的「不完整」算错;期望可比的正文怎么写都不算;说法表照旧不认这类说法。test_doing_nothing_and_saying_nothing_is_wrong 里原先「本周还没过完,两周不能直接比」算错的那条断言按新规则移到新测试里,改成算对但没引用 2026-10-21 19:32:38 +08:00
ThearchyHelios bf89269c11 评测前端:变体里能选「分析工具」开 / 关,发起评测多一种「分析工具贡献对照」。typesEval 加 EvalAnalysisTools、EvalPreset,EvalVariant 多 analysis;termsEval 加分析工具的叫法、提示和这种对照的说明,对比「都没变」那句带上分析工具。StartDialog:ArmFields 多一格分析工具(题集的默认变体同一张表单),预设对照里由预设定的那一项不摆(目录贡献不摆目录、分析工具贡献不摆分析工具);分析工具贡献对照交 {preset: analysis_tools, variant},变体里不带分析工具和名字,缺省每题 3 次。结果页、对比页、A/B 照服务端的变体那一句和指纹差异显示。check-evals:发起时评一次选「关」、两种预设的请求体和估算的两臂,对比写「分析工具:开 → 关」,分析工具贡献对照的两臂和详情页头;test_frontend_eval_unions 对上分析工具的取值、叫法和预设对照 2026-10-21 19:32:38 +08:00
ThearchyHelios 8a6ad0e7a2 评测变体加「分析工具」开 / 关(缺省开)和「分析工具贡献」预设对照:eval/variants 的变体多一项 analysis {tools: on | off},只认这两个值、缺省开,不合规的照实拒(eval_variant_invalid,落到 variant.analysis);analysis_tools(变体) 读开关,加这一项之前存下的变体按开。eval/answer.TurnContext 加 analysis_tools,Driver 透传给 chat/drive.TurnDriver(再到 api/copilot.answer_ops):关的那一臂建图时工具清单不列分析工具、节点手册不讲分析卡;工作流题不建图,不受影响。同一变体(variant_key)认分析工具:开着时不写进去,和加这一项之前算出来的一样,以前的评测照样当基准、趋势线不断;关着时不同。指纹记 analysis_tools,对比的指纹差异写「分析工具:开 → 关」(老指纹里没有这一项的按开);变体那一句写「分析工具开 / 关」,结果页、A/B、估算照它显示。api/evals 的预设对照加 analysis_tools(variants.analysis_tools_preset:开、关两臂,名字「分析工具开」「分析工具关」,别的项照 variant 或题集的缺省)。测试:变体规范化、拒收、同一变体指纹、变体那一句、预设两臂和 Driver 拿到的开关、估算与 A/B 拒收(test_eval_runner);指纹差异的开、关和老指纹(test_eval_compare);真运行的「分析工具贡献」对照(test_eval_analysis_runs:关的那一臂助手看到的 system 里没有分析工具和分析卡、作答运行里没有分析结论、算错,开的那一臂对且可追溯,两臂共用期望、指纹和同一变体都不同) 2026-10-21 19:32:38 +08:00
ThearchyHelios 017cbee5aa 可验证报告样本页加异动周报(analysis,分析能力一轮):Agent 在虚构零售库 shop 上查两周的总数和按地区两周的销售额,做按地区的变化拆解(带总数核对)、波动基线(两周历史不够,算不了)、两期可比性检查,结论按快照真算(app.analysis.run,目录事实按虚构的数据目录给),Agent 节点的 tool.end 照分析工具真实的写法带结论工件和判定那一段;报告引用拆解的判定语、具名的数、结果表的格和整张结果表,正文后面是 engine/analysis_scope 按虚构的数据目录算出的分析范围(没拆的是渠道)。check-bundle:样本页 19 份;异动周报原样导出全部通过——③ 三份结论和两份输入快照随文件附带,④ 输入快照按「已核对的分析结论的输入」认,⑤ 分开数判定语,点开判定语看得到判定标准、方法与版本、附带说明、Agent 写的假设、输入和导出时的复算,具名的数、结果表的格写对出处,分析范围的编号点得开(正文没引用的 A2 也随文件附带)、范围里的编号不核正文显示,390 宽不溢出;只改判定语、具名的数的显示并重算全部哈希各自变红并点名。另:「查询快照以外的工件标成遮罩」的原因照第 1 波改过的说法(只有查询快照、口径卡、分析结论和报告文档……),原来的断言没跟着改。test_bundle_build 的样本页清单加上它、核对它的形状 2026-10-21 19:09:21 +08:00
ThearchyHelios 019676670b 可验证报告的核对页:正文里的判定语被改过时,原因写「正文显示「…」,分析结论里的判定语是「…」」。判定语的引用不带值(判定语就是结论里的那句话),原来照数字的写法拼成「引用的值是空值(NULL)」,读起来像引用本身是空的;具名的数、结果表的格照旧写引用的值和按显示规则应显示的字 2026-10-21 19:09:20 +08:00
ThearchyHelios 887d086261 合入 W2-a 想 + 文档:问题意图词表、分析方法定稿(analysis.method@2)、助手建图认分析卡与分析工具(分析类问题的形状、自查只挡一轮、关分析工具的开关)、复核信号并成一条只写说明、内置模板 ⑪「异动分析(可追溯)」、中英文档(新增 analysis 一篇、七对文档与升级说明、README) 2026-10-21 18:54:50 +08:00
ThearchyHelios 5a02d17bf2 助手建图加「关掉分析工具」的开关,给评测的「分析工具开、关」对照用:api/copilot.answer_ops 加关键字参数 analysis_tools(缺省真,和以前一字不差)。为假时给助手的工具清单不列五个分析工具(_tool_catalog),节点手册去掉只讲分析能力的三段(agent 段里分析类问题绑分析工具那一条、分析卡一整条、搭图规则第 7 条;报告段的引用写法和分析说法核对照留,node_reference),问数据的包装不给分析类问题那一条形状(ANALYSIS_SHAPE_PROMPT 抽成常量),问题意图那条自查不提;图里照样绑了分析工具的(Agent、协作成员、调用工具节点)按「绑定的工具不存在」挡(analysis_tools_off,交回模型去掉,改不好就不运行)。chat/drive.TurnDriver 加同名参数和属性 analysis_tools(缺省真),_generate 透传给 answer_ops;问数据页不暴露,eval/answer.Driver 之后按变体设。测试:关着时工具清单、手册、包装都没有分析,绑了被挡、改掉就运行;开着时绑了照常运行;没碰分析工具的一轮开、关交出的操作逐条一样;TurnDriver 透传 2026-10-21 18:47:10 +08:00
ThearchyHelios f9be394a99 撤回上一条(定时评测测试放大数据源上限):评测包 an2/b 的 5d53ed73 做了同一处修改,留着合并时会撞同一个夹具;这里撤回,合并后照 an2/b 那一份 2026-10-21 18:40:30 +08:00
ThearchyHelios f293904cdd 定时评测的测试不依赖同进程里的数据源个数(同 843be9a5 对评测执行测试的做法):别的测试留下的数据源超过评测拍目录快照的上限时,评测在作答前就按设计失败,「连续 3 题止损、部分完成」那两条就判不出;加了几个测试文件、测试分进程的方式变了以后,全量时这两条稳定复现(把上限压到 0 也能复现)。这里的评测不测这个上限,夹具里把上限放大 2026-10-21 18:33:17 +08:00
ThearchyHelios 5d53ed7332 题集定时的测试不依赖同进程里的数据源个数(同 843be9a5 对评测执行测试的做法):题目是不限数据源的问数据题,评测按全部启用的数据源拍目录快照,别的测试留下的数据源超过上限时整次评测按设计失败,状态成了 failed 而不是 partial(全量并行时分到同一个进程复现);这里不测这个上限,把上限放大 2026-10-21 18:30:08 +08:00
ThearchyHelios 94a6eb9c64 分析期望的两处小修:期望 SQL 只返回两期时补上的基期、本期写成文字交给分析工具的参数(期次是数的也认,算子按写出来的样子比);参数和结果对不上的原因前面写「第 n 个期望(贡献)算不出期望」,不再叠两个「的」。测试补逐题 E1 顺着下钻找到两层的查询 2026-10-21 18:30:08 +08:00