# 📘 Suivi & Optimisation RAGFlow - Documents Normes + Schémas Annotés

## 🧾 Objectif
Documenter et optimiser le traitement des **documents de normes (AFNOR, EN, etc.)** incluant à la fois du **texte réglementaire** et des **schémas annotés**, dans un pipeline RAG avec Ragflow et LLM vision.

---

## 🧠 Problématique 1 : Documents en français + LLM Vision (anglais)

### ❓ Peut-on utiliser des LLM vision sur des documents en français ?
- **Oui**, mais avec limitations :
  - Les LLM vision (comme `llama3.2-vision`) sont **pré-entraînés sur des descriptions anglaises**.
  - Si le **texte environnant et les légendes des schémas sont en français**, le modèle peut :
    - Ne **pas comprendre les légendes**
    - Générer une description incomplète ou fausse
  - ⚠️ Cela affecte la **capacité de mise en contexte du schéma** avec la partie textuelle.

### ✅ Solutions proposées :
1. **Pré-traduction automatique** :
   - Traduire (via LLM ou outil) les **légendes et titres de schéma** avant ingestion.
   - Ajout dans les `metadata` du chunk :
     - `original_legende: "Écart-type mesuré à 28j"`
     - `translated_legend: "Standard deviation measured at 28d"`

2. **Ajout d’un chunk de résumé visuel** :
   - Utiliser un LLM vision (manuellement ou via agent) pour **générer une description anglaise du schéma**.
   - Exemple :
     ```text
     This diagram shows the compressive strength evolution of concrete over 28 days.
     ```
   - Ajouter ce résumé au chunk contenant le schéma.

---

## ⚙️ Problématique 2 : Création d’un profil KB efficace dans Ragflow (H100 disponible)

### 🧬 Configuration recommandée

| Élément                     | Valeur recommandée                                       |
|----------------------------|-----------------------------------------------------------|
| **KB Name**                | `Normes_FR_Schemas`                                      |
| **Template de chunking**   | `law` ou `manual`                                        |
| **Chunk size**             | 300–400 tokens                                           |
| **Overlap**                | 50 tokens                                                |
| **Vision activée ?**       | ✅ OUI pour assistant associé                            |
| **LLM principal (chat)**   | `llama3.2-vision:90b-instruct-q8_0` via Ollama           |
| **Re-ranking**             | `EraX-multilingual-Rerank-3B-V2.0` pour précision FR     |
| **Langue du prompt système** | Anglais (voir section suivante)                         |

---

## 🧾 Prompt système recommandé pour cette KB (en anglais pour llama-vision)

```text
You are an assistant specialized in French construction standards. If the chunk contains a diagram with annotations, explain it clearly and link it with the surrounding text. Translate the annotations from French if necessary. Focus on article structure and norms logic. Cite the section if relevant.
```

---

## 📦 Métadonnées à inclure dans chaque chunk

- `type`: `norme` / `schéma` / `texte` / `mixte`
- `original_legende` : texte brut en français
- `translated_legend` : (optionnel) version traduite si disponible
- `image_context` : texte descriptif ou résumé visuel du schéma
- `article_ref` : référence au chapitre ou article

---

## 🧪 Étapes futures à documenter ici

- [ ] Test de parsing sur 5 normes avec schémas
- [ ] Évaluation des descriptions générées avec et sans pré-traduction
- [ ] Qualité des réponses de `llama3.2-vision` sur différents prompts
- [ ] Implémentation d’un pipeline semi-automatisé d’annotation
- [ ] Comparaison avec un LLM texte seul (`deepseek-r1`, `mistral`)

---

## ✍️ Observations / Journal (à compléter)

| Date       | Étape / test                          | Résultat / problème | Commentaire |
|------------|----------------------------------------|----------------------|-------------|
|            |                                        |                      |             |

---

**Fichier mis à jour le :** {{2025-03-26}}  
**Auteur :** ChatGPT x [Ton Nom / Équipe]

