chore(points): worker settle 打印预估/实际 tokens diff 便于公式校准 #2155

Merged
auto-approve-bot merged 3 commits from fix/2154b-settle-tokens-log into develop 2026-10-03 02:03:15 +08:00
+18 -1
View File
@@ -1615,13 +1615,30 @@ def _settle_viral_video(job: ViralVideoJob, usage: dict | None) -> None:
getattr(job, "video_resolution", "720p") or "720p",
getattr(job, "video_ratio", "9:16") or "9:16",
)
fps = 24
duration = int(getattr(job, "duration", 15) or 15)
est_tokens = duration * w * h * fps // 1024
actual_tokens = None
if isinstance(usage, dict):
at = usage.get("completion_tokens")
if isinstance(at, (int, float)) and at > 0:
actual_tokens = int(at)
diff_pct = None
if actual_tokens and est_tokens > 0:
diff_pct = (actual_tokens - est_tokens) * 100.0 / est_tokens
logger.info(
"[爆款视频] tokens估算vs实际 job_id=%s duration=%s %sx%s model=%s est=%s actual=%s diff=%.1f%%",
job.id,
duration,
w,
h,
getattr(job, "video_model", "seedance-2.5"),
est_tokens,
actual_tokens,
diff_pct if diff_pct is not None else 0.0,
)
actual_credits = calculate_viral_video_credits(
int(getattr(job, "duration", 15) or 15),
duration,
w,
h,
getattr(job, "video_model", "") or "seedance-2.5",