- Multi-modèles : 4 rôles LLM (coding=gemma3:27b-cloud, cpam=gemma3:27b-cloud, validation=deepseek-v3.2:cloud, qc=gemma3:12b) avec get_model(role) - Prompts externalisés : 7 templates dans src/prompts/templates.py - Cache Ollama : modèle stocké par entrée (migration auto ancien format) - call_ollama() : paramètre role= (priorité: model > role > global) - Quality engine : veto_engine + decision_engine + rules_router (YAML) - Benchmark qualité : scripts/benchmark_quality.py (A/B, métriques CIM-10) - Fix biologie : valeurs qualitatives (troponine négative) non filtrées - Fix CPAM : gemma3:27b-cloud au lieu de deepseek (JSON tronqué par thinking) - CPAM max_tokens 4000→6000, viewer admin multi-modèles - Benchmark 10 dossiers : 100% DAS valides, 10/10 CPAM, 243s/dossier Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Prompts LLM — Pipeline T2A v2
7 prompts externalisés dans src/prompts/templates.py, importables via from src.prompts import ....
| # | Template | Rôle LLM | Modèle par défaut | Temp. | max_tokens | Variables | Appelant |
|---|---|---|---|---|---|---|---|
| 1 | CODING_CIM10 |
coding | gemma3:27b-cloud | 0.1 | 2500 | texte, type_diag, ctx_str, sources_text | rag_search._build_prompt() |
| 2 | CODING_CCAM |
coding | gemma3:27b-cloud | 0.1 | 2500 | texte, ctx_str, sources_text | rag_search._build_prompt_ccam() |
| 3 | DAS_EXTRACTION |
coding | gemma3:27b-cloud | 0.1 | 2000 | dp_texte, existing_str, ctx_str, text_medical | rag_search._build_prompt_das_extraction() |
| 4 | QC_VALIDATION |
qc | gemma3:12b | 0.1 | 2500 | ctx_str, codes_section | cim10_extractor._validate_justifications() |
| 5 | CPAM_EXTRACTION |
cpam | deepseek-v3.2:cloud | 0.0 | 1500 | dp_str, das_str, tagged_text, titre, arg_ucr, decision_ucr, dp_ucr_line, da_ucr_line | cpam_response._extraction_pass() |
| 6 | CPAM_ARGUMENTATION |
cpam | deepseek-v3.2:cloud | 0.1 | 4000 | dossier_str, asymetrie_str, tagged_str, titre, arg_ucr, decision_ucr, codes_str, definitions_str, sources_text, extraction_str | cpam_response._build_cpam_prompt() |
| 7 | CPAM_ADVERSARIAL |
validation | deepseek-v3.2:cloud | 0.0 | 800 | response_json, factual_section, normes_section, dp_ucr_line, da_ucr_line | cpam_response._validate_adversarial() |
Rôles LLM (config.py)
OLLAMA_MODELS = {
"coding": "gemma3:27b-cloud", # Codage CIM-10/CCAM, extraction DAS
"cpam": "deepseek-v3.2:cloud", # Passe 1 extraction + passe 2 argumentation CPAM
"validation": "deepseek-v3.2:cloud", # Validation adversariale (DOIT différer du cpam en prod)
"qc": "gemma3:12b", # Validation batch justifications, rapide
}
Surchargeable par env : T2A_MODEL_CODING, T2A_MODEL_CPAM, T2A_MODEL_VALIDATION, T2A_MODEL_QC.
Priorité de résolution du modèle
call_ollama(model=, role=) :
modelexplicite (prioritaire)get_model(role)si role fourniOLLAMA_MODELglobal (fallback)