chore(points): worker settle 打印预估/实际 tokens diff 便于公式校准 #2155
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user