llm_lab/docs/guide_utilisation.md
2025-03-26 15:40:31 +01:00

250 lines
7.0 KiB
Markdown

# Guide d'utilisation des agents et classes LLM
Ce guide fournit des instructions détaillées sur l'utilisation des différents agents et classes LLM disponibles dans le projet LLM Lab.
## Table des matières
1. [Utilisation des modèles LLM](#utilisation-des-modèles-llm)
- [LlamaVision90B](#llamavision90b)
- [MistralAPI](#mistralapi)
2. [Utilisation des agents](#utilisation-des-agents)
- [Agent d'analyse d'images](#agent-danalyse-dimages)
- [Agent d'analyse JSON](#agent-danalyse-json)
- [Agent de questions-réponses](#agent-de-questions-réponses)
3. [Exemples de workflows complets](#exemples-de-workflows-complets)
## Utilisation des modèles LLM
Les modèles LLM sont accessibles via la factory `LLMFactory` pour garantir une instanciation cohérente et configurable.
### LlamaVision90B
Ce modèle est spécialisé dans l'analyse d'images avec des capacités multimodales (texte + image).
#### Configuration de base
```python
from core.factory import LLMFactory
# Création d'une instance via la factory
vision_llm = LLMFactory().create("llamavision")
# Configuration des paramètres
vision_llm.parametres_generation["temperature"] = 0.2
vision_llm.parametres_generation["max_tokens"] = 1000
vision_llm.parametres_avances["top_p"] = 0.9
```
#### Analyse d'une image
```python
# Définir le chemin de l'image
vision_llm.definir_image("chemin/vers/image.jpg")
# Générer une description de l'image
prompt = "Décris en détail ce que tu vois dans cette image."
description = vision_llm.generate(prompt)
print(description)
```
#### Analyse avec des données JSON complémentaires
```python
# Définir des données JSON complémentaires
donnees_complementaires = {
"metadata": {
"source": "caméra de surveillance",
"timestamp": "2023-03-15T14:30:00",
"location": "entrée principale"
}
}
vision_llm.definir_donnees_json(donnees_complementaires)
# Générer une analyse avec contexte
prompt = "Analyse cette image en tenant compte des métadonnées fournies."
resultat = vision_llm.generate(prompt)
```
### MistralAPI
Cette classe permet d'accéder aux modèles de langage de Mistral AI via leur API.
#### Configuration de base
```python
from core.factory import LLMFactory
import os
# Définir la clé API (ou via variable d'environnement)
os.environ["MISTRAL_API_KEY"] = "votre_clé_api"
# Création d'une instance via la factory
mistral = LLMFactory().create("mistralapi")
# Configuration des paramètres
mistral.parametres_generation["temperature"] = 0.7
mistral.parametres_generation["max_tokens"] = 500
```
#### Génération de texte
```python
# Génération simple
prompt = "Explique le concept de l'intelligence artificielle en 3 paragraphes."
reponse = mistral.generate(prompt)
print(reponse)
```
#### Obtention de la liste des modèles disponibles
```python
modeles = mistral.obtenir_liste_modeles()
print("Modèles disponibles:")
for modele in modeles:
print(f"- {modele}")
```
## Utilisation des agents
Les agents sont des composants de plus haut niveau qui encapsulent les modèles LLM avec des fonctionnalités spécifiques.
### Agent d'analyse d'images
Cet agent facilite l'analyse d'images en utilisant LlamaVision.
```python
from agents.analyse_image import AgentAnalyseImage
# Création de l'agent
agent = AgentAnalyseImage("AgentVision")
# Analyse simple d'une image
resultats = agent.executer(
"chemin/vers/image.jpg",
question="Que vois-tu dans cette image? Y a-t-il du texte visible?"
)
# Affichage des résultats
print(resultats["analyses"][0]["reponse"])
# Sauvegarde des résultats
agent.sauvegarder_resultats("resultats_analyse.json", resultats)
```
### Agent d'analyse JSON
Cet agent permet d'analyser et de manipuler des données JSON.
```python
from agents.analyse_json import AgentAnalyseJSON
# Création de l'agent
agent = AgentAnalyseJSON("AgentJSON")
# Données JSON à analyser
donnees = {
"utilisateurs": [
{"id": 1, "nom": "Dupont", "age": 32},
{"id": 2, "nom": "Martin", "age": 45},
{"id": 3, "nom": "Durand", "age": 28}
],
"statistiques": {
"moyenne_age": 35,
"total_utilisateurs": 3
}
}
# Analyse des données
resultats = agent.executer(
donnees,
question="Quelles informations importantes peux-tu extraire de ces données?"
)
print(resultats["analyse"])
# Extraction de la structure
structure = agent.extraire_structure(donnees)
print("Structure des données:", structure)
```
### Agent de questions-réponses
Cet agent utilise MistralAPI pour des interactions de type questions-réponses.
```python
from agents.agent_question_reponse import AgentQuestionReponse
# Création de l'agent avec le modèle souhaité
agent = AgentQuestionReponse("AgentQR", modele="mistral-large-latest")
# Poser une question simple
resultat = agent.executer("Comment fonctionne l'apprentissage par renforcement?")
print(resultat["reponse"])
# Poser une question avec contexte
contexte = {
"sujet": "Intelligence artificielle",
"domaine": "Apprentissage automatique",
"concepts_cles": ["réseaux de neurones", "deep learning", "données d'entraînement"]
}
resultat_avec_contexte = agent.executer(
"Quelles sont les différences entre l'apprentissage supervisé et non supervisé?",
contexte=contexte
)
print(resultat_avec_contexte["reponse"])
# Générer des questions à partir d'un contexte
questions = agent.generer_questions(contexte, nombre=5)
for i, question in enumerate(questions, 1):
print(f"{i}. {question}")
# Évaluer une réponse
evaluation = agent.evaluer_reponse(
question="Qu'est-ce que le deep learning?",
reponse="Le deep learning est une technique d'IA qui utilise des réseaux de neurones profonds."
)
print(evaluation["evaluation_detaillee"])
print("Scores:", evaluation["scores"])
```
## Exemples de workflows complets
### Workflow d'analyse d'image avec post-traitement
```python
from agents.analyse_image import AgentAnalyseImage
from agents.analyse_json import AgentAnalyseJSON
from agents.agent_question_reponse import AgentQuestionReponse
import json
# 1. Analyse de l'image
agent_image = AgentAnalyseImage("AgentVision")
resultats_image = agent_image.executer("chemin/vers/image.jpg")
# 2. Analyse des résultats JSON
agent_json = AgentAnalyseJSON("AgentJSON")
resultats_analyse = agent_json.executer(
resultats_image,
question="Extrais les éléments clés détectés dans l'image."
)
# 3. Génération de questions sur le contenu
agent_qr = AgentQuestionReponse("AgentQR")
questions = agent_qr.generer_questions(resultats_analyse, nombre=3)
# 4. Sauvegarde des résultats complets
workflow_results = {
"analyse_image": resultats_image,
"analyse_structure": resultats_analyse,
"questions_potentielles": questions
}
with open("resultats_workflow.json", "w", encoding="utf-8") as f:
json.dump(workflow_results, f, ensure_ascii=False, indent=2)
```
Ce workflow illustre comment combiner plusieurs agents pour créer une chaîne de traitement complète, de l'analyse d'image initiale jusqu'à la génération de questions pertinentes sur le contenu identifié.