feat(ebook): enhance phrase judgment logging with failure tracking

This commit is contained in:
2026-07-24 11:38:50 -04:00
parent 70bf8627a2
commit 4c71508e73
2 changed files with 14 additions and 5 deletions
+4 -1
View File
@@ -121,9 +121,11 @@ def judge_ngrams(request: Request, config: AppConfig, session: DbSession) -> HTM
return templates.TemplateResponse(request, "partials/error.html", {"message": str(error)}, status_code=500)
logger.info(
"ebook_admin_judge_ngrams_complete books_seen=%s books_judged=%s candidates_judged=%s protected=%s mentions=%s",
"ebook_admin_judge_ngrams_complete books_seen=%s books_judged=%s books_failed=%s candidates_judged=%s "
"protected=%s mentions=%s",
result.books_seen,
result.books_judged,
result.books_failed,
result.candidates_judged,
result.protected_phrases,
result.phrase_mentions,
@@ -136,6 +138,7 @@ def judge_ngrams(request: Request, config: AppConfig, session: DbSession) -> HTM
f"Judged {result.candidates_judged} candidates across {result.books_judged} of "
f"{result.books_seen} books; {result.protected_phrases} protected phrases, "
f"{result.phrase_mentions} mentions"
+ (f"; {result.books_failed} books failed" if result.books_failed else "")
)
},
)
+10 -4
View File
@@ -207,6 +207,7 @@ class PhraseJudgmentBackfillResult:
books_seen: int
books_judged: int
books_failed: int
candidates_judged: int
protected_phrases: int
phrase_mentions: int
@@ -1208,6 +1209,7 @@ def judge_candidate_phrases_for_books(
sources = list(session.scalars(select(EbookSource).order_by(EbookSource.id)))
books_seen = len(sources)
books_judged = 0
books_failed = 0
candidates_judged = 0
protected_count = 0
mention_count = 0
@@ -1282,13 +1284,15 @@ def judge_candidate_phrases_for_books(
session.commit()
except Exception:
session.rollback()
books_failed += 1
logger.exception(
"ebook_candidate_phrase_judgment_book_failed source_id=%s book_number=%s books_seen=%s",
"ebook_candidate_phrase_judgment_book_failed source_id=%s book_number=%s books_seen=%s books_failed=%s",
source.id,
book_number,
books_seen,
books_failed,
)
raise
continue
books_judged += 1
candidates_judged += judged
protected_count += len(protected)
@@ -1307,10 +1311,11 @@ def judge_candidate_phrases_for_books(
)
logger.info(
"ebook_candidate_phrase_judgment_complete books_seen=%s books_judged=%s candidates_judged=%s "
"protected=%s mentions=%s",
"ebook_candidate_phrase_judgment_complete books_seen=%s books_judged=%s books_failed=%s "
"candidates_judged=%s protected=%s mentions=%s",
books_seen,
books_judged,
books_failed,
candidates_judged,
protected_count,
mention_count,
@@ -1318,6 +1323,7 @@ def judge_candidate_phrases_for_books(
return PhraseJudgmentBackfillResult(
books_seen=books_seen,
books_judged=books_judged,
books_failed=books_failed,
candidates_judged=candidates_judged,
protected_phrases=protected_count,
phrase_mentions=mention_count,