feat(extraction): חילוץ-מטא של פסיקה דרך Gemini Flash + drainer מתוזמן #138

Merged
chaim merged 1 commits from worktree-gemini-metadata into main 2026-06-08 05:14:30 +00:00
Owner

למה

תור חילוץ-המטא ב-/precedents היה תקוע — 24 רשומות מבקשות חילוץ, שום דבר לא מנקז אותן — וה-claude CLI ה-agentic פגע ב-error_max_turns על מה שהוא משימה תחומה של טקסט→JSON (איטי ושביר). זה הכלי הלא-נכון למשימה.

מה השתנה

  • gemini_session.pyquery_json drop-in (gemini-2.5-flash, JSON mode, httpx, בלי SDK חדש). קורא GEMINI_API_KEY (~/.env; SoT Infisical nautilus:/external-apis/gemini). צד-מארח בלבד — אין LLM מהקונטיינר.
  • precedent_metadata_extractorclaude_session.query_jsongemini_session. אומת חי: שדות עשירים ומדויקים (case_name/summary/appeal_subtype/7 tags).
  • process_pending_extractions — cooldown מודע-סוג: מטא 2ש' (Gemini מהיר), הלכות נשאר 30ש' (Claude rate-limits).
  • drain_metadata_queue.py + legal-metadata-drain.config.cjs (pm2 cron */15) — שהתור לא ייתקע שוב.
  • X8 INV-FP5 עודכן: בחירת-מנוע לפי אופי-משימה (Gemini=מטא תחום, claude_session=הלכות agentic), שניהם צד-מארח, תור קנוני יחיד (G2).

ה-tradeoff

חורג מ-claude_session_local_only למשימה אחת — אבל אותו עיקרון הוא לחיסכון-עלות, וכאן העלות זניחה (~$0.10/1M ≈ $0.08 לכל ה-backlog) בעוד הרווח (אמינות+מהירות) גדול. עבודה agentic/רגישת-קול (כתיבה, ניתוח, הלכות) נשארת על claude_session (מנוי דפנה).

אימות

  • חילוץ חי על רשומה אמיתית → completed, שדות מלאים ומדויקים.
  • compile + imports; cooldown מטא=2ש'.

🤖 Generated with Claude Code

## למה תור חילוץ-המטא ב-`/precedents` היה **תקוע** — 24 רשומות מבקשות חילוץ, שום דבר לא מנקז אותן — וה-claude CLI ה-**agentic** פגע ב-`error_max_turns` על מה שהוא משימה **תחומה** של טקסט→JSON (איטי ושביר). זה הכלי הלא-נכון למשימה. ## מה השתנה - **`gemini_session.py`** — `query_json` drop-in (gemini-2.5-flash, JSON mode, httpx, בלי SDK חדש). קורא `GEMINI_API_KEY` (`~/.env`; SoT Infisical `nautilus:/external-apis/gemini`). **צד-מארח בלבד** — אין LLM מהקונטיינר. - **`precedent_metadata_extractor`** — `claude_session.query_json` → `gemini_session`. **אומת חי:** שדות עשירים ומדויקים (case_name/summary/appeal_subtype/7 tags). - **`process_pending_extractions`** — cooldown מודע-סוג: מטא 2ש' (Gemini מהיר), הלכות נשאר 30ש' (Claude rate-limits). - **`drain_metadata_queue.py` + `legal-metadata-drain.config.cjs`** (pm2 cron `*/15`) — שהתור לא ייתקע שוב. - **X8 INV-FP5** עודכן: בחירת-מנוע לפי אופי-משימה (Gemini=מטא תחום, claude_session=הלכות agentic), שניהם צד-מארח, תור קנוני יחיד (G2). ## ה-tradeoff חורג מ-`claude_session_local_only` למשימה אחת — אבל אותו עיקרון הוא ל**חיסכון-עלות**, וכאן העלות זניחה (~$0.10/1M ≈ $0.08 לכל ה-backlog) בעוד הרווח (אמינות+מהירות) גדול. עבודה agentic/רגישת-קול (כתיבה, ניתוח, הלכות) **נשארת** על `claude_session` (מנוי דפנה). ## אימות - ✅ חילוץ חי על רשומה אמיתית → completed, שדות מלאים ומדויקים. - ✅ compile + imports; cooldown מטא=2ש'. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chaim added 1 commit 2026-06-08 05:14:22 +00:00
The /precedents metadata queue was stuck — 24 rows requested, nothing draining
them — and the agentic claude CLI hit error_max_turns on what is a single
structured text→JSON task (slow + flaky). Metadata extraction is bounded
extraction, the wrong fit for an agentic loop.

- gemini_session.py: query_json drop-in (gemini-2.5-flash, JSON mode, httpx —
  no new SDK dep). Reads GEMINI_API_KEY (~/.env; SoT Infisical
  nautilus:/external-apis/gemini). Host-side only — no LLM from the container.
- precedent_metadata_extractor: claude_session.query_json → gemini_session.
  Validated live: rich, accurate fields (case_name/summary/appeal_subtype/tags).
- process_pending_extractions: kind-aware cooldown — metadata 2s (Gemini, fast),
  halacha keeps 30s (Claude rate limits).
- drain_metadata_queue.py + legal-metadata-drain.config.cjs (pm2 cron */15) so
  the queue never clogs again. SCRIPTS.md.
- X8 INV-FP5 updated: per-task engine choice (Gemini=bounded metadata,
  claude_session=agentic halacha), both host-side, single canonical queue (G2).

Agentic/voice-sensitive work (writing, analysis, halacha) stays on claude_session
(Daphna's subscription). Gemini cost ≈ $0.10/1M tokens — negligible.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chaim merged commit c3735d019a into main 2026-06-08 05:14:30 +00:00
chaim deleted branch worktree-gemini-metadata 2026-06-08 05:14:30 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ezer-mishpati/legal-ai#138