Record cash-desk errors and timestamps in the gemini attempt journal so the order verdict rests on a complete log
This commit is contained in:
parent
8acb4e4048
commit
6a34d9b5d6
1 changed files with 20 additions and 1 deletions
|
|
@ -74,7 +74,14 @@ def text_of(uid: str) -> str:
|
|||
|
||||
|
||||
def log_attempt(rec: dict) -> None:
|
||||
"""Журнал попытки — ДОПИСЫВАЕТСЯ немедленно. Вердикт без него заказ не принимает."""
|
||||
"""Журнал попытки — ДОПИСЫВАЕТСЯ немедленно. Вердикт без него заказ не принимает.
|
||||
|
||||
⚠ ВРЕМЯ ОБЯЗАТЕЛЬНО. Первая редакция писала длительность вызова, но не МЕТКУ ВРЕМЕНИ, и
|
||||
`--status` считал окно журнала как 0.0 ч на любом числе попыток. Заказ принимает вердикт
|
||||
«модель не отдаёт» ТОЛЬКО по журналу за ≥24 ч — без метки времени доказать окно нечем,
|
||||
то есть журнал не выполнял свою единственную задачу.
|
||||
"""
|
||||
rec.setdefault("ts", time.time())
|
||||
JOURNAL.parent.mkdir(parents=True, exist_ok=True)
|
||||
with JOURNAL.open("a", encoding="utf-8") as f:
|
||||
f.write(json.dumps(rec, ensure_ascii=False) + "\n")
|
||||
|
|
@ -130,6 +137,18 @@ def cmd_run() -> None:
|
|||
log_attempt(dict(uid=uid, attempt=i + 1, ok=False, code="GUARD",
|
||||
secs=round(time.time() - t0, 1), cost_usd=0.0))
|
||||
raise SystemExit(f"⛔ ГАРД ОТКАЗАЛ на {tag(uid)} — СТОП и вопрос владельцу")
|
||||
# ⚠ ОТКАЗ, ПОЙМАННЫЙ КАССОЙ, — ТОЖЕ ПОПЫТКА. `purchase` перехватывает ошибку API
|
||||
# сама и пишет карантинную запись `finish="error"`, поэтому мой `except` не
|
||||
# срабатывает и журнал показывал «отказов 0» при двух реально ошибившихся клетках.
|
||||
# Вердикт заказа держится на журнале, значит журнал обязан видеть и этот путь.
|
||||
if rec.get("finish") == "error" or not (rec.get("content") or "").strip():
|
||||
log_attempt(dict(uid=uid, attempt=i + 1, ok=False,
|
||||
code=rec.get("finish") or "empty",
|
||||
err=str(rec.get("error"))[:200],
|
||||
secs=round(time.time() - t0, 1),
|
||||
cost_usd=rec.get("cost_usd", 0.0)))
|
||||
print(f" {uid}: попытка {i + 1} — касса вернула {rec.get('finish')}")
|
||||
continue
|
||||
cost = rec.get("cost_usd", 0.0)
|
||||
log_attempt(dict(uid=uid, attempt=i + 1, ok=True, code=200,
|
||||
finish=rec.get("finish"), secs=round(time.time() - t0, 1),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue