mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 13:27:47 +01:00
7.2 KiB
7.2 KiB
⚙️ Architecture enrichie – Prétraitement PDF + Agents LLM personnalisables pour Ragflow
🎯 Objectif
Structurer un programme complet de prétraitement de documents PDF techniques (type normes), intégrant :
- Affichage interactif du PDF
- Sélection visuelle de zones à analyser
- Choix dynamique des LLMs à chaque étape
- Personnalisation des paramètres de génération
- Export structuré en Markdown pour Ragflow
🧠 LLMs disponibles via Ollama (http://217.182.105.173:11434)
| Rôle | Nom du modèle | Taille | Notes |
|---|---|---|---|
| Texte rapide | mistral:latest |
4.1 GB | Idéal pour traduction courte ou génération FR |
| Traduction fine | cline_deepseek, qwen2.5, mistral |
64–77 GB | Meilleur raisonnement logique |
| Résumé avancé | deepseek-r1:70b-llama-distill-q8_0 |
74 GB | Long documents, résumés normés |
| Vision complète | llama3.2-vision:90b-instruct-q8_0 |
95 GB | Le plus puissant pour schémas annotés |
| Vision rapide | llava:34b-v1.6-fp16 |
69 GB | Prototypage ou analyse légère |
| Embedding | nomic-embed-text:137m-v1.5-fp16 |
274 MB | Pour vectorisation RAG |
| Reranker | bge-reranker-v2-m3 |
1.2 GB | Classement de pertinence |
🧩 Profils de configuration LLM
🔁 Modes prédéfinis
| Mode | Vision | Traduction | Résumé |
|---|---|---|---|
| Test rapide | llava |
mistral |
mistral |
| Standard | llava |
qwen2.5 |
deepseek |
| Avancé | llama3.2-vision |
deepseek |
deepseek |
🧠 Architecture des agents LLM
📦 Base : LLMBaseAgent
class LLMBaseAgent:
def __init__(self, model_name, endpoint, **generation_config):
self.model_name = model_name
self.endpoint = endpoint
self.config = generation_config
def generate(self, prompt, images=None):
# Requête HTTP vers Ollama API
pass
🧱 Spécialisations :
VisionAgent: Interprétation de schémasTranslationAgent: Traduction FR ↔ ENSummaryAgent: Résumé / Réécriture
⚙️ Paramètres de génération à exposer
| Paramètre | Description | Exemple par défaut |
|---|---|---|
temperature |
Contrôle de la créativité | 0.2 (factuel) |
top_p |
Nucleus sampling (proportion cumulée) | 0.9 |
top_k |
Nombre de tokens candidats | 40 |
num_predict |
Nombre max de tokens générés | 512 ou 1024 |
repeat_penalty |
Réduction des répétitions | 1.1 |
stop |
Liste de tokens d'arrêt | ["\n\n"] |
🧩 UI – Interface utilisateur LLM
Dans l’interface graphique :
- 🔘 Menus déroulants pour choisir le modèle par tâche
- 🧪 Champs sliders ou numériques pour :
- temperature
- top_k
- top_p
- max_tokens
- 💾 Bouton « Sauvegarder profil personnalisé »
- 📂 Fichier
llm_config.jsonutilisé à l’exécution
✅ Exemple de bloc .md généré
## Figure 4 – Répartition granulométrique
**Contexte** : Ce schéma illustre la classification...
**Analyse par modèle Vision** (llama3.2-vision):
- The diagram shows a distribution curve...
- Key terms: grain size, density...
**Paramètres utilisés** : temperature=0.3, top_p=0.95, modèle=llama3.2-vision
📦 Fichiers suggérés
config/llm_profiles.json: profils prédéfinisconfig/llm_custom.json: dernier profil personnalisé utiliséagents/vision.py,agents/translation.py, etc. : agents spécifiquesutils/api_ollama.py: centralise les appels aux modèles
🧠 Conclusion
Cette structuration permet une flexibilité complète :
- pour le développement rapide
- pour les expérimentations
- pour la production normée de chunks optimisés pour Ragflow
🧑💻 Rôles d’agents spécialisés avec langues et prompts adaptés
🎭 Objectif
Chaque agent doit :
- Avoir un rôle explicite (vision, résumé, reformulation, etc.)
- Être lié à un modèle spécifique (optimisé pour la tâche)
- Suggérer ou imposer une langue de prompt adaptée
- Fournir des préréglages de génération par défaut
🔁 Exemples d’agents spécialisés
| Rôle | Classe agent | Modèle recommandé | Langue du prompt | Température | Notes |
|---|---|---|---|---|---|
| 🔍 Interprétation | VisionAgent |
llama3.2-vision |
🇬🇧 Anglais | 0.2 | Précision, analyse d’image |
| ✍️ Résumé normatif | SummaryAgent |
deepseek-r1 |
🇫🇷 Français | 0.3 | Résumé technique long |
| 🔄 Traduction | TranslationAgent |
mistral, qwen2.5 |
🇫🇷↔🇬🇧 Auto | 0.1 | Traduction fidèle |
| 🧱 Reformulation | RewriterAgent |
mistral ou deepseek |
🇫🇷 Français | 0.3 | Clarification technique |
| 🧩 Markdown Formatter | MarkdownAgent |
cline_qwen_fp16, mistral |
🇫🇷 | 0.25 | Structuration finale |
⚙️ Intégration dans le système de profils
Chaque profil (test, standard, avancé) peut :
- Charger automatiquement les agents recommandés
- Définir pour chaque rôle :
modèlelangueparams: temperature, top_p, top_k, etc.- prompt_template (optionnel)
🗂️ Exemple de configuration dans llm_profiles.json
{
"standard": {
"translation": {
"model": "mistral",
"language": "fr",
"temperature": 0.1
},
"vision": {
"model": "llava",
"language": "en",
"temperature": 0.2,
"top_p": 0.95
},
"summary": {
"model": "deepseek-r1",
"language": "fr",
"temperature": 0.3
}
}
}
💬 Exemple d’utilisation (interface ou ligne de commande)
- Sélectionner un rôle : "interpréter un schéma"
- L’outil :
- Affiche le modèle recommandé (
llama3.2-vision) - Définit la langue du prompt : 🇬🇧
- Pré-remplit température / top_p
- Permet l’édition ou l’override
- Affiche le modèle recommandé (
Cette stratégie permet d’adapter finement les prompts, la langue et les paramètres à chaque rôle métier dans ton flux RAG/Ragflow.