coffreobsidian/inbox/Prompt_Cursor_Complet_Agents_LLM_Pretraitement.md
2025-03-27 16:48:21 +01:00

3.8 KiB
Raw Permalink Blame History

Version 1

Développe un programme Python avec interface graphique (Tkinter ou PyQt6) permettant de :

  1. Charger un document PDF
  2. Naviguer entre les pages
  3. Sélectionner une ou plusieurs zones rectangulaires (ex : schéma, tableau, formule)
  4. Associer un contexte textuel (automatique via OCR ou manuel)
  5. Traduire, interpréter ou résumer le contenu sélectionné en utilisant différents agents LLM configurables
  6. 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 linterface

  • Navigation page par page dans le PDF
  • Zoom/dézoom + recentrage
  • Sélection dune zone avec la souris
  • Attribution dun 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 :

  • Sappeler 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 dagents, 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

  1. Charger un PDF
  2. Sélectionner une zone
  3. Associer un rôle + agent
  4. Lancer lanalyse (vision, résumé, etc.)
  5. Vérifier la sortie
  6. Exporter le fichier Markdown