| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/usr/bin/env python3
- """Run demand_grade_agent on one batch of demand names.
- 批次选择(哪些词、多少个)由调用方(通常是调度任务)负责,本入口只处理
- 传入的这一批,不做分页/自行遍历需求池。
- """
- from __future__ import annotations
- import json
- from typing import Any
- from agents.demand_grade_agent import create_demand_grade_agent
- def main(
- demand_names: list[str],
- biz_dt: str | None = None,
- tree_context: dict[str, Any] | None = None,
- ) -> None:
- agent = create_demand_grade_agent()
- print(f"demand_grade_agent ready | model={agent.model}")
- print(f"tools: {agent.tools.list_tools()}")
- print()
- names_str = "\n".join(f"- {name}" for name in demand_names)
- biz_dt_note = f"biz_dt={biz_dt}" if biz_dt else "未指定 biz_dt,请先调用 query_latest_biz_dt() 确定"
- handoff = (
- json.dumps(tree_context, ensure_ascii=False)
- if tree_context is not None
- else "未提供;请通过 build_grade_plan_context 查询。"
- )
- user_input = f"""
- 请对以下 {len(demand_names)} 个需求词逐一评级(S/A/B/C/D),{biz_dt_note}。
- 只处理这一批,不要尝试查找或列举更多需求词。判级完成后调用 batch_save_demand_grades 落库。
- 需求词列表:
- {names_str}
- 以下是统筹规划提供的节点组上下文(含批次热度等级、需求自身来源归一分、
- `local_heat` 局部热度与整树名次快照)。批次等级不等于需求最终等级。
- 必须结合整树位置、父节点、全部兄弟节点和需求自身分做校正;需要更细信息时可调用
- `query_category_local_heat`。不同来源原始 weight 不得直接相加:
- {handoff}
- """
- result = agent.run(user_input)
- print(result.content)
- print(f"\n[iterations={result.iterations}, tool_calls={result.tool_calls_made}]")
- if __name__ == "__main__":
- main(["因果报应", "降半旗"], biz_dt="20260714")
|