# 🧠 RAGFLOW - Traitement des Normes Techniques avec Schémas (v1.0)

## 🎯 Objectif
Définir une stratégie de traitement des documents normatifs techniques (comme les normes AFNOR) contenant :

- Du texte technique en **français**
- Des **schémas annotés** et figures
- Des **formules mathématiques** ou physiques
- Des références croisées complexes

Dans le cadre de l’indexation dans **Ragflow** avec accès aux LLMs puissants (via Ollama + H100), et en exploitant un modèle multimodal tel que `llama3.2-vision:90b`.

---

## 🧩 Problèmes identifiés

1. **Langue** : les modèles vision fonctionnent mieux avec des prompts en anglais.
2. **Contenu PDF** : difficulté à extraire proprement les images/schémas.
3. **Mise en contexte** : les légendes et commentaires doivent être reliés au texte environnant.
4. **Traduction** : risque de perte d’information dans le va-et-vient FR ↔ EN.

---

## 🔁 Pipelines suggérés

| Étape                         | Description                                                                 | LLM recommandé                     | Langue            |
|------------------------------|-----------------------------------------------------------------------------|------------------------------------|-------------------|
| 1. Extraction du contenu     | Extraction OCR + structure (texte, images, sections)                       | -                                  | -                 |
| 2. Traduction technique      | Traduire le texte + légendes en anglais si nécessaire                      | `mistral`, `qwen2.5:72b-instruct`  | FR → EN           |
| 3. Annotation schéma         | Screenshot manuel, lien au texte, ajout de légende traduite                | -                                  | FR ou EN          |
| 4. Interprétation schéma     | Analyse via `llama3.2-vision:90b` ou `llava:34b`                           | `llama3.2-vision`, `llava`         | EN (préférable)   |
| 5. Reconstitution document   | Recombine : [texte original + interprétation + schéma]                     | -                                  | FR recomposé      |
| 6. Chunking avancé           | Chunker selon sens/structure : sections normatives, schéma + explication   | Ragflow chunker                    | FR (ou bilingue)  |
| 7. Indexation Ragflow        | Intégrer chaque chunk + métadonnées (type, schéma, source)                | Ragflow (via interface ou API)     | -                 |

---

## 🧪 Exemple de stratégie pour un schéma de norme

1. Faire un **screenshot** de la figure.
2. Traduire le contexte textuel en anglais.
3. Poser un prompt du type :
   ```
   Analyze this civil engineering diagram and explain the classification shown.
   Provide key terms, units, and any thresholds.
   ```
4. Traduire la réponse (si besoin) en français.
5. Associer cette réponse avec le texte original en chunk unique ou adjacent.

---

## 🧱 Chunking dans Ragflow (conseils)

- **Chunk "intelligent"** : un chunk = une unité sémantique cohérente.
- **Ajouter des métadonnées** : 
  - `type`: "norme", "figure", "formule"
  - `langue`: "fr", "en", "mixte"
  - `schéma_interprété`: true/false
- **Regrouper dans des bases thématiques** : 
  - `NORME_PRODUIT`, `ESSAI_LABO`, `FORMULATION_BETON`

---

## 🧠 Conseils LLM

- Traduire les *légendes* avant vision.
- Utiliser `llama3.2-vision:90b` pour interpréter finement.
- Utiliser `mistral` ou `deepseek` pour structurer ou corriger les textes français.
- Préférer l'anglais pour les **prompts visuels** (LLM vision).

---

## ⏭️ Étapes suivantes

- [ ] Isoler un premier schéma significatif
- [ ] Créer son prompt d’analyse en anglais
- [ ] Chunker la réponse avec son contexte
- [ ] Indexer manuellement dans Ragflow
- [ ] Tester l’interrogation par LLM

---

Ce document sera enrichi au fur et à mesure de tes tests. N’hésite pas à créer des sous-sections pour chaque norme, figure, ou stratégie alternative.

