# 📘 Stratégie de configuration optimale Ragflow + Ollama avec LLM Vision

## 🧭 Objectif
Réorganiser les Knowledge Bases (KB) et configurer Ragflow pour tirer parti des modèles LLM disponibles (notamment `llama3.2-vision`) pour un traitement précis de documents techniques (normes, essais, schémas, formules...).

---

## ✅ 1. Réorganisation des KB par typologie hybride

| Nouvelle KB                         | Contenu attendu                                               | RAGFlow template | LLM assigné                      |
|------------------------------------|----------------------------------------------------------------|------------------|----------------------------------|
| `Normes_Textuelles`                | Normes purement textuelles (AFNOR, EN...)                     | `law`, `manual`  | `deepseek-r1` ou `llama3.3`     |
| `Rapports_Essais_Tabulaires`       | Tableaux d’essais, valeurs, graphiques avec OCR               | `table`          | `mistral` + reranker `bge`      |
| `Formules_Mathématiques`           | Notes de calcul, formules encodées, LaTeX                     | `manual`, `paper`| `llama3.3` ou `cline_qwen_128k` |
| `Schémas_et_Figures_Annotées`      | Images + légendes ou croquis structurés                       | `custom`         | ✅ `llama3.2-vision`             |
| `Hybrides_Schéma+Formule` (option) | Cas combinés dans le même doc                                 | `manual`         | `llama3.2-vision`               |
| `Documentation Logicielle (BRG)`   | Interfaces, menus, usage logiciel                              | `qa`, `manual`   | `mistral`                        |

---

## 🔍 2. Prompt système spécifique par KB (à utiliser dans Ragflow)

### 🧠 Schémas / figures techniques
```txt
You are an expert in reading technical diagrams. If the chunk includes an image, extract its description and explain what it shows. Answer in English clearly. If no image is included, rely on the text content only.
```

### 📐 Formules mathématiques
```txt
You are a mathematical assistant. If the document includes equations or LaTeX expressions, explain their purpose. If an image contains a formula, try to describe it in natural language. Answer in English with clarity.
```

### 📚 Normes AFNOR
```txt
Tu es un expert des normes de construction françaises. Réponds uniquement si une référence précise est trouvée. Cite toujours la norme et l'article. Réponds en français.
```

### 🧪 Rapports d’essais
```txt
Tu es un assistant laboratoire. Extrais les données chiffrées avec unité. Compare les valeurs si plusieurs essais sont mentionnés. Réponds en français.
```

---

## ✂️ 3. Chunking optimal et enrichissement OCR/Vision

| Type de contenu     | Chunk size     | Overlap | Spécificités                                                     |
|---------------------|----------------|---------|-------------------------------------------------------------------|
| Texte (normes)      | 300–400 tokens | 30–50   | Découpe par titres + métadonnées section                         |
| Tableaux            | 1 ligne/table  | 0       | Inclure colonnes + en-têtes                                      |
| Formules            | 200–300        | 30      | Ajouter LaTeX / OCR si image                                     |
| Schémas             | 1 schéma       | 0       | Générer description manuelle/LLM vision                          |
| Mixte               | 500            | 50      | Ajouter `metadata:type=schema+math`                              |

---

## 🔄 4. Pipeline d’enrichissement (recommandé)

1. OCR automatique (vérifié)
2. Ajout manuel ou automatique d’une description d’image
3. Inclusion de formule en clair dans chunk
4. Taggage des chunks avec types (`schema`, `formule`, `table`, etc.)

---

## 🧠 5. LLM à utiliser depuis Ollama

| Modèle Ollama             | Utilisation principale               | Prompt en anglais ? | Vision activé ? |
|---------------------------|--------------------------------------|----------------------|------------------|
| `llama3.2-vision`         | Schémas, figures, formules complexes| ✅ Obligatoire        | ✅ Oui            |
| `llava:34b-v1.6-fp16`     | Vision alternative / fallback        | ✅ Obligatoire        | ✅ Oui            |
| `deepseek-r1:70b`         | Texte technique structuré            | ❌                   | ❌                |
| `mistral:latest`          | Texte rapide, généraliste            | ❌                   | ❌                |
| `cline_qwen_128k_Q8`      | Long contexte, formules              | ❌ ou mixte          | ❌                |
| `EraX reranker`           | Re-ranking, précision recherche      | ❌                   | ❌                |

---

## 🛠️ 6. Exemple configuration dans Ragflow (vision)

- **Model type**: `chat`
- **Model name**: `llama3.2-vision`
- **Base url**: `http://<adresse_ollama>:11434`
- **Max Tokens**: `4096`
- **Vision support**: ✅ activé
- **Prompt**: *(voir plus haut selon KB)*

---

## 🚀 7. Évolutions possibles

- Agent Python pour router selon type de document
- Assistant global interrogeant plusieurs KB
- Enrichissement automatique des chunks via LLM vision
- Traduction automatique si prompt anglais (→ français)

---

**Auteur :** ChatGPT x [Ton Prénom]  
**Date :** {{2025-03-26}}

