55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
||
"""抽取智能体派发入口(阶段 F 第二部分)。
|
||
|
||
真实模型调用必须显式授权并显式给出 provider/model:
|
||
.venv/bin/python .agent/skills/extract-chapter-knowledge/scripts/extract_via_dispatch.py 12 3 \
|
||
--provider catproxy-anthropic --model claude-opus-5 --thinking medium
|
||
"""
|
||
from __future__ import annotations
|
||
|
||
import argparse
|
||
import json
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
SCRIPT_DIR = Path(__file__).resolve().parent
|
||
if str(SCRIPT_DIR) not in sys.path:
|
||
sys.path.insert(0, str(SCRIPT_DIR))
|
||
|
||
from dispatch_extraction_bridge import run_extraction_via_dispatch # noqa: E402
|
||
|
||
REPO_ROOT = SCRIPT_DIR.parents[3]
|
||
|
||
|
||
def main(argv: list[str] | None = None) -> int:
|
||
parser = argparse.ArgumentParser(description="派发抽取智能体做章后知识抽取(知识链)")
|
||
parser.add_argument("work_id", type=int)
|
||
parser.add_argument("chapter_order", type=int)
|
||
parser.add_argument("--provider", required=True)
|
||
parser.add_argument("--model", required=True)
|
||
parser.add_argument("--thinking", default=None)
|
||
parser.add_argument("--run-id", default=None)
|
||
args = parser.parse_args(argv)
|
||
|
||
summary = run_extraction_via_dispatch(
|
||
args.work_id,
|
||
args.chapter_order,
|
||
repo_root=REPO_ROOT,
|
||
provider=args.provider,
|
||
model=args.model,
|
||
thinking=args.thinking,
|
||
run_id=args.run_id,
|
||
spec_dir=REPO_ROOT / "docs" / "write-chapter" / "artifacts",
|
||
)
|
||
print(json.dumps(
|
||
{k: v for k, v in summary.items() if k != "lesson"},
|
||
ensure_ascii=False, default=str,
|
||
))
|
||
print(f"RUN_ID={summary['run_id']}")
|
||
print("知识草稿已落库(草稿态);经经验确认通道 :8766 人审后才转正。")
|
||
return 0
|
||
|
||
|
||
if __name__ == "__main__":
|
||
raise SystemExit(main())
|