Objectif: pouvoir debugger la fiabilité des données depuis l'admin. Parser - fix split "and": _CITY_SPLIT ne coupe plus sur " and "/"&" (cassait "Tyne and Wear", "Bosnia and Herzegovina", "Newcastle upon Tyne"). Garde uniquement "/" et "\" (séparateurs canoniques Metal Archives). Traçabilité LLM - migration 011: llm_cache reçoit ma_id + location_raw + country (+ index) pour relier chaque appel Groq au groupe déclencheur - groq_worker: renseigne ces colonnes à l'insertion Admin — lecture par groupe - GET /admin/api/bands/:ma_id renvoie désormais aussi les band_locations (steps, statut, provider, confiance, coords, essais, erreur, query) et les appels LLM (modèle, extraction, tokens, coût, prompt/réponse) - modal band: section "Provenance & géocodage" (crawl MA / géocodage / LLM + champs verrouillés manuels) Admin — stats & debug LLM - GET /admin/api/geocoding: breakdown par provider (avg confiance) + par modèle LLM (dont city=null); nouvelle carte "LLM null" - nouveau GET /admin/api/llm + onglet "LLM": liste filtrable des appels Groq, prompt/réponse dépliables, lien vers le groupe Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 lines
681 B
SQL
13 lines
681 B
SQL
-- 011_llm_cache_linkage.sql
|
|
-- llm_cache était keyé uniquement par input_hash (sha256 de model|country|raw),
|
|
-- sans lien vers le groupe qui a déclenché l'appel. Impossible donc de retrouver
|
|
-- les appels LLM d'un groupe depuis l'admin. On ajoute la provenance pour le
|
|
-- debug (ma_id = premier groupe déclencheur ; location_raw + country lisibles).
|
|
|
|
ALTER TABLE llm_cache
|
|
ADD COLUMN IF NOT EXISTS ma_id BIGINT,
|
|
ADD COLUMN IF NOT EXISTS location_raw TEXT,
|
|
ADD COLUMN IF NOT EXISTS country TEXT;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_llm_cache_ma_id ON llm_cache (ma_id);
|
|
CREATE INDEX IF NOT EXISTS idx_llm_cache_loc ON llm_cache (lower(location_raw), country);
|