cli.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from __future__ import annotations
  2. import argparse
  3. import json
  4. from content_agent.run_service import RunService
  5. from content_agent.schemas import RunStartRequest
  6. def build_parser() -> argparse.ArgumentParser:
  7. parser = argparse.ArgumentParser(description="Run the Content Agent V1 mock chain.")
  8. parser.add_argument("--source", default=None)
  9. parser.add_argument("--demand-content-id", type=int, default=None)
  10. parser.add_argument("--run-label", default=None)
  11. parser.add_argument("--platform", default="douyin")
  12. parser.add_argument("--platform-mode", choices=["mock", "real"], default="mock")
  13. parser.add_argument("--strategy-version", default=None)
  14. return parser
  15. def request_from_args(args: argparse.Namespace) -> RunStartRequest:
  16. return RunStartRequest(
  17. source=args.source,
  18. demand_content_id=args.demand_content_id,
  19. run_label=args.run_label,
  20. platform=args.platform,
  21. platform_mode=args.platform_mode,
  22. **({"strategy_version": args.strategy_version} if args.strategy_version else {}),
  23. )
  24. def main() -> None:
  25. parser = build_parser()
  26. args = parser.parse_args()
  27. service = RunService.from_env()
  28. state = service.start_run(request_from_args(args))
  29. print(json.dumps(service.get_summary(state["run_id"]), ensure_ascii=False, indent=2))
  30. if __name__ == "__main__":
  31. main()