verify_find_agent_flow.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. """Smoke-check find_agent demand flow without calling the LLM."""
  2. from __future__ import annotations
  3. import json
  4. import sys
  5. from agents.find_agent.demand_run import (
  6. build_find_agent_user_input,
  7. build_run_input_payload,
  8. filter_pending_contexts,
  9. list_find_demand_contexts,
  10. pick_find_demand_context,
  11. prepare_video_discovery_run,
  12. )
  13. from agents.find_agent.async_runner import _run_coroutine
  14. def main() -> int:
  15. biz_dt, contexts = list_find_demand_contexts()
  16. pending, stats = filter_pending_contexts(contexts, biz_dt)
  17. ctx = pick_find_demand_context(biz_dt, index=0)
  18. if ctx is None:
  19. print(json.dumps({"ok": False, "error": "no context"}, ensure_ascii=False))
  20. return 1
  21. run_id, skip_reason = prepare_video_discovery_run(ctx, force=True)
  22. if skip_reason or not run_id:
  23. print(json.dumps({"ok": False, "skip_reason": skip_reason}, ensure_ascii=False))
  24. return 1
  25. prompt = build_find_agent_user_input(ctx, run_id)
  26. payload = build_run_input_payload(ctx)
  27. async def _noop():
  28. return None
  29. # 验证主线程 asyncio 运行器可用
  30. _run_coroutine(_noop())
  31. print(
  32. json.dumps(
  33. {
  34. "ok": True,
  35. "biz_dt": biz_dt,
  36. "total": len(contexts),
  37. "pending": len(pending),
  38. "stats": stats,
  39. "run_id": run_id,
  40. "prompt_lines": len(prompt.splitlines()),
  41. "payload_keys": list(payload.keys()),
  42. },
  43. ensure_ascii=False,
  44. )
  45. )
  46. return 0
  47. if __name__ == "__main__":
  48. sys.exit(main())