""" 查询热度相关表的最新共有业务日,供未指定 biz_dt 时先探测可用日期。 """ from __future__ import annotations import logging from agents.generate_demand_agent.tools.dim_constants import get_latest_common_biz_dt from supply_agent.tools import tool from supply_infra.db.session import get_session logger = logging.getLogger(__name__) @tool def query_latest_biz_dt() -> str: """ 查询两表均有数据的最新业务日(biz_dt)。 当用户未指定 biz_dt、或不确定该用哪一天时,**应先调用本工具**, 再将其返回的 biz_dt 传给后续查询与落库工具。 共有业务日 = category_tree_weight 与 demand_popularity_stats 都存在的最新日期。 Returns: 一个确切的 biz_dt,例如: biz_dt=20260715 若无共有日期则返回错误说明。 """ try: with get_session() as session: biz_dt = get_latest_common_biz_dt(session) if not biz_dt: message = "暂无两表共有业务日(category_tree_weight 与 demand_popularity_stats 无重叠日期)" logger.info("query_latest_biz_dt completed: %s", message) return message message = f"biz_dt={biz_dt}" logger.info("query_latest_biz_dt completed: %s", message) return message except Exception as e: logger.error("query_latest_biz_dt failed: %s", e, exc_info=True) return f"查询最新业务日失败: {e}" def main() -> None: """本地手动验证。""" print(query_latest_biz_dt()) if __name__ == "__main__": main()