dom
8c75941e40
feat: 3 quick wins — source DAS, fallback code parent, filtre anatomique
...
1. Champ source sur Diagnostic : trackare/edsnlp/regex/llm_das
- Renseigné dans les 8 constructeurs de cim10_extractor.py
- Permet l'audit de provenance des DAS dans le JSON de sortie
2. Fallback code parent pour les codes LLM halluccinés :
- fallback_parent_code() dans cim10_dict.py (D71.9→D71, R69.8→R69)
- Intégré dans _apply_llm_result_diagnostic() de rag_search.py
- Récupère les codes rejetés dont le parent 3-char est valide
3. Règle 12 filtre DAS : en-têtes anatomiques + catégories vagues
- Rejette "Musculaire", "Digestif", "Hépatique" (mots isolés)
- Rejette "Musculaire - masse musculaire" (catégorie + description)
- 13 nouveaux tests unitaires au total
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-15 11:34:32 +01:00
dom
a58398f5d4
feat: cache Ollama + parallélisation ThreadPool + filtrage DAS renforcé + modules GHM/CPAM/export RUM
...
- Cache persistant JSON thread-safe pour les résultats Ollama (invalidation par modèle)
- Parallélisation des appels Ollama (ThreadPoolExecutor, 2 workers)
- 6 nouvelles règles de filtrage DAS parasites (doublons, ponctuation, OCR, labo, fragments)
- Client Ollama centralisé (mode JSON natif + retry)
- Module GHM (estimation CMD/sévérité)
- Module contrôle CPAM (parser + contre-argumentation RAG)
- Export RUM (format RSS)
- Viewer enrichi (détail dossier)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 13:44:34 +01:00
dom
86d7ec5ea4
feat: mode JSON natif Ollama + modèle gemma3:12b + retry
...
- Ajout format:"json" dans l'appel API Ollama (force sortie JSON valide)
- Prompt restructuré : raisonnement en champs JSON structurés
(analyse_clinique, codes_candidats, discrimination, regle_pmsi)
- Parser simplifié : json.loads direct + reconstitution du raisonnement
- Suppression du marqueur ###RESULT### (obsolète avec mode JSON)
- Retry automatique (1 tentative) si parsing échoue
- Stripping des blocs markdown ```json pour compatibilité multi-modèles
- num_predict 1200→2500, modèle gemma3:12b (tient en 12Go VRAM)
- Résultat : 0% échec parsing (était 11% avant)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 02:19:09 +01:00
dom
7e69f994b0
feat: dictionnaire CCAM complet (8 257 codes) + index FAISS enrichi + validation actes
...
Phase 2 (CCAM) :
- Nouveau src/medical/ccam_dict.py : build depuis CCAM_V81.xls via xlrd, lookup 3 niveaux, validation codes
- Intégration dans l'extracteur : fallback ccam_lookup + _validate_ccam() avec alertes
- CLI : --build-ccam-dict, --rebuild-index
Phase 3 (FAISS) :
- Chunks CCAM depuis le dictionnaire JSON (priorité sur le PDF)
- Chunks CIM-10 index alphabétique (terme → code)
- Priorisation cim10_alpha dans la recherche RAG
Viewer : endpoint reprocess + bloc scripts
Tests : 8 tests CCAM + tests raisonnement RAG (161 passed)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 11:41:39 +01:00
dom
4d6fbef2b9
feat: ajout RAG CIM-10 avec FAISS + Ollama
...
Implémente un système RAG (Retrieval Augmented Generation) qui indexe
les documents de référence ATIH (CIM-10 FR 2026, Guide Métho MCO,
CCAM PMSI) et utilise Ollama (mistral-small3.2:24b) pour justifier
et valider le codage CIM-10 des diagnostics.
- Nouveaux modèles Pydantic : RAGSource, Diagnostic étendu (confidence,
justification, sources_rag) — rétrocompatible
- Module rag_index.py : chunking des 3 PDFs, embedding sentence-camembert-large,
index FAISS IndexFlatIP (3630 vecteurs)
- Module rag_search.py : recherche FAISS + appel Ollama avec fallback double
- Flag CLI --no-rag pour désactiver l'enrichissement RAG
- 18 nouveaux tests (88/88 passent)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 17:47:08 +01:00