mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 13:27:47 +01:00
3.8 KiB
3.8 KiB
Version 1
Développe un programme Python avec interface graphique (Tkinter ou PyQt6) permettant de :
- Charger un document PDF
- Naviguer entre les pages
- Sélectionner une ou plusieurs zones rectangulaires (ex : schéma, tableau, formule)
- Associer un contexte textuel (automatique via OCR ou manuel)
- Traduire, interpréter ou résumer le contenu sélectionné en utilisant différents agents LLM configurables
- Exporter le résultat enrichi au format Markdown (.md) prêt à être utilisé dans une base Ragflow
Structure du projet recommandée
ragflow_pretraitement/
├── main.py
├── ui/
│ ├── viewer.py # Navigation et sélection dans le PDF
│ └── llm_config_panel.py # Choix des agents, paramètres
├── agents/
│ ├── base.py # Classe LLMBaseAgent
│ ├── vision.py # VisionAgent
│ ├── translation.py # TranslationAgent
│ ├── summary.py # SummaryAgent
│ └── rewriter.py # RewriterAgent
├── utils/
│ ├── ocr.py
│ ├── translate.py
│ ├── markdown_export.py
│ └── api_ollama.py
├── config/
│ └── llm_profiles.json # Profils LLM préconfigurés
├── data/
│ └── outputs/ # .md et images générées
└── docs/
└── prompts/
Fonctionnalités de l’interface
- Navigation page par page dans le PDF
- Zoom/dézoom + recentrage
- Sélection d’une zone avec la souris
- Attribution d’un type : schéma, tableau, formule, autre
- Zone de texte modifiable pour le contexte
- Menu de sélection :
- Modèle par tâche (vision, résumé, traduction…)
- Langue de prompt (FR / EN)
- Paramètres (température, top_p, top_k, num_tokens)
- Bouton : "Appliquer agent"
- Aperçu live de la sortie
- Export Markdown (
document_final.md)
Agents LLM
Classe LLMBaseAgent
Chaque agent hérite de cette base, et peut :
- S’appeler avec un prompt
- Prendre une image (pour vision)
- Gérer les paramètres dynamiquement
class LLMBaseAgent:
def __init__(self, model_name, endpoint, **config):
...
def generate(self, prompt: str, images: List[bytes] = None) -> str:
...
🎭 Rôles recommandés
| Rôle | Classe | Modèle par défaut | Langue |
|---|---|---|---|
| Vision | VisionAgent |
llama3.2-vision:90b | 🇬🇧 |
| Traduction | TranslationAgent |
mistral / qwen2.5 | 🇫🇷↔🇬🇧 |
| Résumé | SummaryAgent |
deepseek-r1 | 🇫🇷 |
| Reformulation | RewriterAgent |
mistral / deepseek | 🇫🇷 |
Profils et configuration dynamique
Fichier config/llm_profiles.json
Permet de charger automatiquement un ensemble d’agents, de modèles et de paramètres selon les besoins.
{
"avancé": {
"vision": {
"model": "llama3.2-vision:90b-instruct-q8_0",
"language": "en",
"temperature": 0.2,
"top_p": 0.95
},
"translation": {
"model": "mistral",
"language": "fr",
"temperature": 0.1
}
}
}
Format Markdown exporté
## Figure 3 – Classification des granulats
**Contexte** :
Ce schéma montre...
**Analyse IA (Vision)** :
The diagram shows...
**Paramètres utilisés** :
modèle=llama3.2-vision, temperature=0.2, langue=en
**Source** :
Page 12, Type: Schéma, Fichier: NF P11-300
Étapes de test recommandées
- Charger un PDF
- Sélectionner une zone
- Associer un rôle + agent
- Lancer l’analyse (vision, résumé, etc.)
- Vérifier la sortie
- Exporter le fichier Markdown