Reduce run-llm to a pure batch executor

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 22:38:26 +08:00
co-authored by Claude Fable 5
parent 7a58f37d9f
commit 93a4f808bf
6 changed files with 263 additions and 439 deletions
+19
View File
@@ -304,3 +304,22 @@
`<定義檔名>/`——同理不編日期:只存一份,重跑即取代,
被取代的執行在 git 歷史,時間戳在 meta.json。四次收斂執行(merge ×2、cap ×2
各存合併記錄 JSON 隨該次執行入 runs/。
- **`run-llm` 降階為純執行器**:原內建的 2+1 編排(文字級
一致性判定、固定模板仲裁)拆除;run-llm 只負責「一份
定義檔+一份輸入 JSONL,跑 N 次(預設 2、仲裁場合 1),
歸檔 `runs/<定義檔名>/`(重跑即取代)」。理由:一致性
判定須逐步驟、結構性(分組比對、標籤集合比對),屬
確定性腳本的工作;仲裁輸入由比對腳本建構,本身成為
runs/ 可稽核工件;執行器變小易測。比對/進池/裁決
套用子命令另行實作。
- **`run-llm` 一次呼叫即一次執行**`--runs``--run` 皆不存
在,完整命令形狀為 `run-llm <定義檔> <輸入檔> <歸檔目錄>`——三個
必要運算元皆為位置引數(沿 2026-08-02「必要運算元為位置引數」慣
例),歸檔目錄如 `runs/01-01-tag/run1`,工具內部零 run 概念,
meta 不記 run 編號;「獨立執行兩次」=重現命令清單上的兩行命令,
run 身分只活在命令清單與目錄佈局約定,不在工具內。理由:兩次執行
互相獨立是方法學宣稱,其證據應由執行結構與重現命令清單自明,不應
要求讀者讀工具原始碼;歸檔目的地為顯式引數,亦是「資料路徑全面顯
式化、消滅隱性推導」原則的貫徹。比對子命令驗證兩 run 的定義檔與
輸入 SHA 一致、缺 run 即失敗。目標目錄已存在即拒絕執行,重跑須明
`--replace`
+11 -11
View File
@@ -45,23 +45,23 @@ pop-fem-audit/
│ │ │ │ # Wikidata into the snapshot CSV
│ │ │ ├── fetch_lyrics.py # fetch missing lyrics from the
│ │ │ │ # public APIs into the lyrics dir
│ │ │ └── run_llm.py # API runner2+1 協定、Batch API、
│ │ │ # 寫入引數指定的 runs 目錄;執行
│ │ │ # 方式 pop-fem-audit-tools run-llm
│ │ │ └── run_llm.py # API 執行器:一份定義檔+一份輸入
│ │ │ # →歸檔至指定目錄(Batch API);
│ │ │ # 比對與仲裁編排由獨立子命令承擔
│ │ ├── config.py # pydantic-settings 設定(.env
│ │ ├── database.py # SQLAlchemy engine / session / Base
│ │ ├── models.py # SQLAlchemy ORM 資料模型
│ │ └── utils.py # 共用工具(format_duration
│ └── tests/ # 單元測試(unittest
├── runs/ # 現行執行的完整稽核紀錄(進 git;
│ │ # 重跑即取代,舊執行在 git 歷史
│ └── <定義檔名>/
── prompt.md # 當次定義檔快照(自我完備
├── run1.jsonl # 第一次執行原始輸出
├── run2.jsonl # 第二次執行原始輸出
├── arbitration.jsonl # 仲裁輸出
└── meta.json # model ID、temperature、時間戳、
│ # batch ID、一致率
│ │ # 重跑同一 run 須明示 --replace
│ └── <定義檔名>/ # 仲裁步驟居自己的 <task>-arb/
── run<N>/ # 每個 run 一份自我完備歸檔
├── prompt.md # 當次定義檔快照(自我完備)
├── output.jsonl # 該次執行原始輸出
└── meta.json # model ID、temperature、時間戳、
# batch ID、token 用量
│ # (一致率由比對子命令記錄)
├── results/ # 論文引用的報表 CSV(export 產出;
│ # 「可再生仍 commit」的唯一例外)
├── docs/