This commit is contained in:
Ladebeze66 2025-05-05 17:13:35 +02:00
parent 11afea2afc
commit f451a29b47
3 changed files with 115 additions and 6 deletions

2
.obsidian/app.json vendored
View File

@ -1,5 +1,5 @@
{
"spellcheck": true,
"spellcheck": false,
"attachmentFolderPath": "./PJ",
"newFileLocation": "folder",
"newFileFolderPath": "inbox",

View File

@ -20,8 +20,23 @@
"icon": "lucide-file",
"title": "Guide Complet des Paramètres LLM"
}
},
{
"id": "e9f11643def27837",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "inbox/Notes complémentaires préambule Ragflow.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Notes complémentaires préambule Ragflow"
}
}
]
],
"currentTab": 1
}
],
"direction": "vertical"
@ -78,7 +93,8 @@
}
],
"direction": "horizontal",
"width": 234.5
"width": 234.5,
"collapsed": true
},
"right": {
"id": "ad0ed0087b43302d",
@ -372,11 +388,12 @@
"obsidian-excalidraw-plugin:New drawing": false
}
},
"active": "f53d68a91dcd39e9",
"active": "e9f11643def27837",
"lastOpenFiles": [
"inbox/Guide Complet des Paramètres LLM.md",
"inbox/Notes complémentaires préambule Ragflow.md",
"inbox/Modules OCR et Traduction.md",
"inbox/main_llama.py.md",
"inbox/Guide Complet des Paramètres LLM.md",
"inbox/Gestion des langues.md",
"command_list/Ollama commands.md",
"inbox/diagrammellamavision.drawio.crswap",
@ -401,7 +418,6 @@
"LLM/traitement_normes_ragflow.md",
"LLM/Test Cline.md",
"LLM/Résumé LLM-lab.md",
"LLM/Recherches LLama Vision 3.2 90b.md",
"inbox/diagrammellamavision.drawio",
"inbox/jsonmessages.png",
"inbox/agentanalyseimage.png",

View File

@ -0,0 +1,93 @@
### 1. Injection de données automatique (CSV->Ragflow)
#### Possibilité: Import direct via API
- Ragflow expose une API REST pour injecter des documents dans une base de connaissance.
- Tu peux parser tes CSV avec pandas puis envoyer chaque Q/R sous forme de documents.
- Format attendu: JSON avec champs content, metadata, source, etc.
##### Exemple python:
```python
import pandas as pd
import requests
df = pd.read_csv("analyse_ticket.csv")
for index, row in df.iterrows():
payload = {
"collection": "tickets_support",
"document": {
"content": f"Question : {row['question']}\nRéponse : {row['reponse']}",
"metadata" : {
"ticket_id": row['ticket_id'],
"date": row['date']
}
}
}
response = requests.port("http://localhost:7860/api/documents", json=payload)
print(response.status_code, response.text)
```
### 2. Création d'un agent Python Ragflow (sans interface web)
Tu peux coder un agent Python qui:
- Lit tes données (CSV, JSON, etc.)
- Appelle Ragflow pour les injecter ou les interroger (recherche contextuelle)
- Utilise un LLM pour compléter ou reformuler les réponses
#### Exemple tâches possibles:
- AgentIndexer -> Injecte tes Q/R dans Ragflow
- AgentSearcher -> Reçoit une question, interroge Ragflow, appelle un LLM
- AgentAuditor -> Vérifie la cohérence ou résume les réponses dans Ragflow
### 3. Choix de LLM: Mistral API vs Ollama local
#### Mistral API (externe):
- Précis, performant, fiable
- Idéal pour tâches complexes: résumé, diagnostic, reformulation
- Nécessite une bonne gestion du débit API et coût
#### Ollama local (modèles custom):
- Rapide, local, sans coût
- Tu peux créer des agents spécifiques pour chaque tâche (indexation; QA, résumé)
- Intégration possible via Ragflow, soit par l'interface, soit par ta couche Pyhton (ex: appel REST à Ollama)
### 4. Combinaisons possibles dans ton projet
|Objectif|LLM utilisé|Accès Ragflow|Interface|
|---|---|---|---|
|Injection CSV automatique|Aucun ou Mistral/Ollama pour enrichissement|API REST|Python|
|Recherche depuis tickets|Mistral API (précision) ou Ollama local (rapide)|API ou Web UI|Python ou Web|
|Génération réponse automatique|Mistral (formel) ou Ollama (rapide)|API + index Ragflow|Python|
|Triage/priorisation automatique|Agents LLM personnalisés|Index ou table externe|Python avec accès CSV/DB|
### 5. Marche à suivre recommandée (projet scalable)
1. Créer un AgentIndexer -> injecte tes CSV dans Ragflow via API
2. Créer un AgentRagResponder -> interroge Ragflow avec une question, puis appelle un LLM
3. Créer un AgentAudit (optionnel) -> vérifie les réponses générées
4. Test avec deux backends LLM (Mistral API/ Ollama) -> comparer performances
5. Structurer ton pipeline RAG Python dans un module clair(agents/, utils/, config/)
### 6. Indexation dans Ragflow
#### Objectif:
Ajouter un document dans une base de connaissance vectorielle pour qu'il puisse ensuite être retrouvé via une recherche sémantique.
#### Ce que fait Ragflow:
1. Il vectorise le contenu (content) avec un modèle d'embedding.
2. Il l'associe à une collection (ex: "ticket_support")
3. Il l'enregistre dans une base vectorielle locale (FAISS, Weaviate, etc.)
4. Il garde les métadonnées que tu as envoyées (ex: ticket ID, ligne, source)
### 7. Par quel procédé ton agent effectue cela?
L'agent AgentRagIndexer automatise ce travail pour toi:
#### Etapes concrètes:
1. Il lit un fichier CSV contenant des questions/réponses
2. Pour chaque ligne:
1. Il forme une chaîne contenu= "Question : ...\nRéponse : ..."
2. Il crée un dictionnaire de métadonnées(ex {"ticket_id": ..., "ligne": ...})
3. Il envoie ces deux élémentes à Ragflow via:
1. self.ragflow.indexer(contenu, metadata)
2. POST http://localhost:7860/api/documents
### 8. Format CSV adpaté
- Tu produit un tableau proprement structuré avec les colonnes question, réponse (et même contexte si besoin)
- C'est un format lisible, léger, et facile à injecter dans Ragflow via script
Amélioration possible:
- Tu pourrais aussi aussi générer un format JSON structuré (utile si tu veux intégrer du multimodal ou enrichir les métadonnées).
- Ton script report_csv_exporter.py permettrait facilement d'ajouter cette exportation complémentaire.
- Le script génère bien un CSV exploitable par Ragflow
- Avec des colonnes question et réponse (ou plusieurs méthodes utilisées)
- Nettoie les caractères spéciaux dans les noms et modèles