# 合同链测量台 问的是:**一份合同被一连串补充协议改写之后,按时点问它的条款,答不答得对。** 召回测量台(`recall.mjs`)量的是事实进没进图;这里量的是进了图之后,时间线排得对不对。 Blackbaud 总部租约的「二期行权截止日」在 2020 年上半年被补充协议连续改了五次,第十份 补充协议又改成「触发日后 45 天」;同一年物业从 HPBB1 卖给 Blackbaud 的关联方 BBHQ1, 第十一份补充协议起房东换了人;买卖价格因为验房下调了 49,435.72 美元。18 道题问的就是 这些值在某一天是多少。 ## 跑一轮 ``` SEC_USER_AGENT="你的名字 you@example.com" py -3 fetch.py py -3 lease_bench.py setup --label <名字> # 等这个库的 documents.graph_status 全部 done(13 份补充协议约 10 分钟) py -3 lease_bench.py score ``` `lease_bench.py` 头部写着环境变量与打分规则。**每轮一个新库,单轮波动约 3 题**,一个 版本至少跑两轮。服务要连一个配好对话与嵌入模型的工作区。 ## 目录 | 路径 | 内容 | |---|---| | `edgar-manifest.json` | 7 条合同链、62 份 EDGAR 文件:CIK、accession、提交日期、角色、标题 | | `fetch.py` | 按清单抓原件到 `edgar/`,每份一个 HTML、一个纯文本 | | `lease_bench.py` | `setup` 建库、声明本体、导入总部租约链;`score` 答 18 道按时点的题 | | `edgar/`、`lease-kb-*.json` | 抓下来的文件与每轮的库 id,不进仓库(见 `.gitignore`) | 文件是各公司提交给 SEC 的,版权不属于我们,所以只有脚本与清单进仓库,与英伟达语料的 `fetch-sec-filings.mjs` 同一个处理。清单里除了总部租约链,还有 Blackbaud 的三净租约 (修订、终止,终止费 14,759,500 美元)、Arrowhead 的四份租约,和金额大量涂黑的 CSG 与 Comcast 服务协议(默认不抓)。 标题括号里的日期是逐份读开头定的。提交日期不是签署日期:一份 10-Q 常一次附上几份早先 签的补充协议。从正文自动读签署日期不可靠——会读到它引用的原合同日期——所以清单里没有。 ## 真值 读原文定的,写在 `lease_bench.py` 的 `QUESTIONS` 里: | 补充协议(生效日) | 二期行权截止日 | 二期预算交付截止日 | |---|---|---| | 第五份(2020-02-18) | 2020-03-17 | 2020-05-07 | | 第六份(2020-03-17) | 2020-04-14 | 2020-06-04 | | 第七份(2020-04-14) | 2020-05-26 | 2020-07-16 | | 第八份(2020-05-26) | 2020-06-09 | 2020-07-30 | | 第九份(2020-06-08) | 2020-06-23 | 2020-08-13 | | 第十份(2020-06-26) | 触发日后 45 天 | 触发日后 96 天 | 房东 2020-08-13(第十一份)起是 BBHQ1,之前是 HPBB1;租户 Blackbaud;场地 12.98 英亩; 买价 76,272,484.66 美元,买方 BBHQ1,最晚交割日 2020-12-14。 ## 记录(2026-09-13,DeepSeek-V3.2 + bge-m3) | 版本 | 18 题答对 | 带房东或租户的租约实体 | |---|---|---| | dev | 5 | 8 | | dev + 每块带文件开头 | 5、8 | 9、8 | | dev + #670 + 文件开头 | 8、8 | 9、3 | | 再加日期格式与本体里的补充协议类 | 10、5 | 3、4 | | 再加时态引擎乱序修复(#679 第一版) | 8、11 | 2、2 | | 同上,人工合并一次两个租约实体之后 | 9、12 | 1、1 | 剩下的错主要是:模型偶尔不给改写后的值起点(#681 §1)、正确的合并被 10% 人工抽样挡着 (0026,照设计)、二期的截止日偶尔挂到二期租约上(#681 §3)。