|
|
@@ -163,6 +163,20 @@ def get_run_detail(run_id: str) -> dict[str, Any] | None:
|
|
|
"evidence": evidence_by_candidate.get(int(row.id), []),
|
|
|
"create_time": _time(row.create_time), "update_time": _time(row.update_time),
|
|
|
} for row in candidates]
|
|
|
+ candidates_by_aweme = {item["aweme_id"]: item for item in candidate_items}
|
|
|
+ for search in search_items:
|
|
|
+ raw_results = search["raw_response"].get("search_results", [])
|
|
|
+ result_ids = [
|
|
|
+ str(item.get("aweme_id") or "")
|
|
|
+ for item in raw_results
|
|
|
+ if isinstance(item, dict) and item.get("aweme_id")
|
|
|
+ ]
|
|
|
+ search["result_aweme_ids"] = result_ids
|
|
|
+ search["matched_candidates"] = [
|
|
|
+ candidates_by_aweme[aweme_id]
|
|
|
+ for aweme_id in result_ids
|
|
|
+ if aweme_id in candidates_by_aweme
|
|
|
+ ]
|
|
|
timeline = []
|
|
|
for row in round_items:
|
|
|
timeline.append({"type": "round", "time": row["create_time"], "data": row})
|