Initial commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
"""Deep 编译流水线的唯一命令行入口。"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from scripts.provider_router import parse_model_reference
|
||||
|
||||
from .pipeline import DeepLoop
|
||||
|
||||
|
||||
def _provider_model(value: str) -> str:
|
||||
try:
|
||||
return parse_model_reference(value).value
|
||||
except ValueError as exc:
|
||||
raise argparse.ArgumentTypeError(str(exc)) from exc
|
||||
|
||||
|
||||
def _parser() -> argparse.ArgumentParser:
|
||||
parser = argparse.ArgumentParser(prog="python -m scripts.dynamic_compile.deep")
|
||||
commands = parser.add_subparsers(dest="command", required=True)
|
||||
run = commands.add_parser("run", help="run Deep Loop from a skill and its BenchFlow traces")
|
||||
run.add_argument("--skill", type=Path, required=True)
|
||||
run.add_argument("--traces", type=Path, required=True)
|
||||
run.add_argument("--output", type=Path)
|
||||
run.add_argument(
|
||||
"--model",
|
||||
required=True,
|
||||
type=_provider_model,
|
||||
help="all external model calls use this provider/model",
|
||||
)
|
||||
resume = commands.add_parser("resume", help="resume a Deep Loop run")
|
||||
resume.add_argument("--run", type=Path, required=True)
|
||||
return parser
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
args = _parser().parse_args(argv)
|
||||
try:
|
||||
loop = (
|
||||
DeepLoop.create(args.skill, args.traces, args.output, model=args.model)
|
||||
if args.command == "run"
|
||||
else DeepLoop(args.run)
|
||||
)
|
||||
print(loop.drive())
|
||||
return 0
|
||||
except (OSError, ValueError, RuntimeError) as exc:
|
||||
print(f"error: {exc}", file=sys.stderr)
|
||||
return 2
|
||||
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user