TTS backlog: arreglar el gate de cuota y anadir el reporte diario (#188)
Gate: `int(v or 100)` trataba `five_h_pct = 0.0` como ausencia de dato y devolvia 100, o sea que la tanda abortaba justo cuando la ventana de 5h estaba entera libre. Cazado en la primera ventana real. Ahora se distingue 0.0 de None. Reporte diario (F2): scripts/fea_tts_backlog_report.py, solo lectura. Cuenta los audios de las ultimas 24h por autor (atribuidos por fea_audio_voice), lo que queda por autor, la cuota de MiniMax y las ventanas ejecutadas/saltadas. Avisa aparte si en 24h no hubo NI ventana ejecutada NI saltada, que es el sintoma de que el cron no llego a correr (fue lo que paso el 2-ago con el bit +x). Vive en el repo y ~/.hermes/scripts/ lo ve por symlink: sin copia duplicada que se desincronice. Job: `hermes cron feadulta-tts-backlog-daily`, 07:30, no-agent, deliver origin. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -52,10 +52,14 @@ echo "[$(ts)] === cron TTS backlog start (autor=$AUTOR $DESDE-$HASTA batch=$BATC
|
||||
# 1) Gate de cuota MiniMax (ventana de 5 h y semanal)
|
||||
read -r PCT5 PCTW <<< "$(python3 "$QUOTA" --json --no-local 2>/dev/null | python3 -c '
|
||||
import json, sys
|
||||
def pct(v):
|
||||
# OJO: 0.0 es un valor legítimo (ventana entera libre) y es falsy en Python.
|
||||
# Un `v or 100` aquí aborta la tanda justo cuando hay toda la cuota disponible.
|
||||
return int(v) if v is not None else 100
|
||||
try:
|
||||
d = json.load(sys.stdin)
|
||||
m = next(p for p in d["providers"] if p["provider"] == "minimax" and p.get("ok"))
|
||||
print(int(m.get("five_h_pct") or 100), int(m.get("week_pct") or 100))
|
||||
print(pct(m.get("five_h_pct")), pct(m.get("week_pct")))
|
||||
except Exception:
|
||||
print(100, 100) # sin lectura fiable de cuota, no se gasta
|
||||
' 2>/dev/null || echo "100 100")"
|
||||
|
||||
Reference in New Issue
Block a user