Files
Neo-ZQYY/scripts/ops/_patch_missing_descriptions.py

56 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""一次性脚本:为所有缺少 description 的主对话 entry 打上占位标记。
这样 batch_generate_summaries.py 不会每次从头重新处理。
用户之后可以手动在终端跑 batch_generate_summaries.py 覆盖这些占位值。
用法:
python -B scripts/ops/_patch_missing_descriptions.py # 执行
python -B scripts/ops/_patch_missing_descriptions.py --dry-run # 预览
"""
import json
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__)))
from extract_kiro_session import load_index, save_index, load_full_index, save_full_index
PLACEHOLDER = "[待生成摘要]"
def main():
dry_run = "--dry-run" in sys.argv
index = load_index()
full_index = load_full_index()
patched = 0
idx_entries = index.get("entries", {})
full_entries = full_index.get("entries", {})
for eid, ent in idx_entries.items():
if ent.get("is_sub"):
continue
if not ent.get("description"):
if not dry_run:
ent["description"] = PLACEHOLDER
if eid in full_entries:
full_entries[eid]["description"] = PLACEHOLDER
patched += 1
if dry_run:
print(f"预览:将为 {patched} 条 entry 打上占位标记 '{PLACEHOLDER}'")
return
if patched > 0:
save_index(index)
save_full_index(full_index)
print(f"完成:已为 {patched} 条 entry 打上占位标记 '{PLACEHOLDER}'")
print("后续可在终端手动运行 batch_generate_summaries.py 覆盖生成真实摘要")
if __name__ == "__main__":
main()