refactor(intelligent-eval): reduce nesting complexity in supplement_decision_logs
Extract helper functions _supplement_executing and _supplement_completed to flatten the nested conditional logic. This improves readability and makes the code easier to test and maintain. Addresses code review finding: supplement_decision_logs nested complexity
This commit is contained in:
parent
da7dd434dd
commit
09ff2ed123
@ -130,6 +130,92 @@ def list_decision_logs(eval_id: str, session: Session) -> list[dict]:
|
||||
return [_log_to_dict(log) for log in logs]
|
||||
|
||||
|
||||
def _supplement_executing(
|
||||
ev: IntelligentEvalDB,
|
||||
sessions: list,
|
||||
completed: int,
|
||||
estimated: int,
|
||||
types: set[str],
|
||||
session: Session,
|
||||
) -> int:
|
||||
"""Supplement decision logs for EXECUTING evals."""
|
||||
added = 0
|
||||
if "execute_session" not in types and completed < estimated:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
"平台兜底:时段欠账需执行会话",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
elif "start_analysis" not in types and sessions and completed >= estimated:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"start_analysis",
|
||||
"平台兜底:所有会话已完成开始分析",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
return added
|
||||
|
||||
|
||||
def _supplement_completed(
|
||||
ev: IntelligentEvalDB,
|
||||
sessions: list,
|
||||
completed: int,
|
||||
estimated: int,
|
||||
plan: dict,
|
||||
types: set[str],
|
||||
session: Session,
|
||||
) -> int:
|
||||
"""Supplement decision logs for COMPLETED evals (historical backfill)."""
|
||||
added = 0
|
||||
if "execute_session" not in types:
|
||||
slots = plan.get("time_distribution") or []
|
||||
if slots:
|
||||
for slot in slots:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
f"平台兜底:时段{slot.get('time_slot', '')}执行会话(历史回填)",
|
||||
"platform",
|
||||
{
|
||||
"platform_supplemented": True,
|
||||
"time_slot": slot.get("time_slot"),
|
||||
"sessions": slot.get("sessions"),
|
||||
"completed": completed,
|
||||
"estimated": estimated,
|
||||
},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
else:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
"平台兜底:执行会话(历史回填)",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
if "start_analysis" not in types and sessions:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"start_analysis",
|
||||
"平台兜底:所有会话已完成开始分析(历史回填)",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
return added
|
||||
|
||||
|
||||
def supplement_decision_logs(session: Session) -> int:
|
||||
"""Platform audit backfill for decision logs.
|
||||
|
||||
@ -162,7 +248,9 @@ def supplement_decision_logs(session: Session) -> int:
|
||||
for ev in evals:
|
||||
plan = ev.get_plan() if ev.plan else {}
|
||||
estimated = plan.get("estimated_sessions", 0)
|
||||
sessions = session.exec(select(IntelligentEvalSessionDB).where(IntelligentEvalSessionDB.eval_id == ev.id)).all()
|
||||
sessions = session.exec(
|
||||
select(IntelligentEvalSessionDB).where(IntelligentEvalSessionDB.eval_id == ev.id)
|
||||
).all()
|
||||
completed = sum(1 for s in sessions if s.status == "completed")
|
||||
types = {
|
||||
x.decision_type
|
||||
@ -170,66 +258,10 @@ def supplement_decision_logs(session: Session) -> int:
|
||||
select(IntelligentEvalDecisionLogDB).where(IntelligentEvalDecisionLogDB.eval_id == ev.id)
|
||||
).all()
|
||||
}
|
||||
|
||||
if ev.status == IntelligentEvalStatus.EXECUTING.value:
|
||||
if "execute_session" not in types and completed < estimated:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
"平台兜底:时段欠账需执行会话",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
elif "start_analysis" not in types and sessions and completed >= estimated:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"start_analysis",
|
||||
"平台兜底:所有会话已完成开始分析",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
added += _supplement_executing(ev, sessions, completed, estimated, types, session)
|
||||
elif ev.status == IntelligentEvalStatus.COMPLETED.value:
|
||||
# 历史回填:completed 评估决策日志全缺失时,按时段补 execute_session
|
||||
if "execute_session" not in types:
|
||||
slots = plan.get("time_distribution") or []
|
||||
if slots:
|
||||
for slot in slots:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
f"平台兜底:时段{slot.get('time_slot', '')}执行会话(历史回填)",
|
||||
"platform",
|
||||
{
|
||||
"platform_supplemented": True,
|
||||
"time_slot": slot.get("time_slot"),
|
||||
"sessions": slot.get("sessions"),
|
||||
"completed": completed,
|
||||
"estimated": estimated,
|
||||
},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
else:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"execute_session",
|
||||
"平台兜底:执行会话(历史回填)",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
if "start_analysis" not in types and sessions:
|
||||
_append_row(
|
||||
ev.id,
|
||||
"start_analysis",
|
||||
"平台兜底:所有会话已完成开始分析(历史回填)",
|
||||
"platform",
|
||||
{"platform_supplemented": True, "completed": completed, "estimated": estimated},
|
||||
session,
|
||||
)
|
||||
added += 1
|
||||
added += _supplement_completed(ev, sessions, completed, estimated, plan, types, session)
|
||||
|
||||
return added
|
||||
|
||||
Loading…
Reference in New Issue
Block a user