"""learning.experience_logs 를 company_id 별로 집계 출력 (DB 격리 확인용). 실행: cd agent && APP_ENV=local python -m tools.show_logs """ import asyncio from sqlalchemy import func, select from common.database.db_session_manager import DB_SESSION_MNG from common.database.model.models import ExperienceLog from common.enums import DBType, DBWRType async def main(): def q(s): stmt = ( select(ExperienceLog.company_id, func.count().label("n"), func.max(ExperienceLog.reward).label("max_reward")) .group_by(ExperienceLog.company_id) .order_by(ExperienceLog.company_id) ) return DB_SESSION_MNG.execute(s, stmt) err, rows = await DB_SESSION_MNG.execute_lambda(DBType.MAIN.value, DBWRType.DB_READ.value, q) print("company_id count max_reward") print("-" * 44) for company_id, n, max_reward in rows: mr = f"{max_reward:+.4f}" if max_reward is not None else " n/a " print(f"{company_id:<20} {n:>6} {mr}") if not rows: print("(비어있음 — 먼저 tools.console_demo 를 실행하세요)") await DB_SESSION_MNG.dispose_all() if __name__ == "__main__": asyncio.run(main())