mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 09:37:43 +01:00
4.4 KiB
4.4 KiB
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:
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)
- Créer un AgentIndexer -> injecte tes CSV dans Ragflow via API
- Créer un AgentRagResponder -> interroge Ragflow avec une question, puis appelle un LLM
- Créer un AgentAudit (optionnel) -> vérifie les réponses générées
- Test avec deux backends LLM (Mistral API/ Ollama) -> comparer performances
- 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:
- Il vectorise le contenu (content) avec un modèle d'embedding.
- Il l'associe à une collection (ex: "ticket_support")
- Il l'enregistre dans une base vectorielle locale (FAISS, Weaviate, etc.)
- 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:
- Il lit un fichier CSV contenant des questions/réponses
- Pour chaque ligne:
- Il forme une chaîne contenu= "Question : ...\nRéponse : ..."
- Il crée un dictionnaire de métadonnées(ex {"ticket_id": ..., "ligne": ...})
- Il envoie ces deux élémentes à Ragflow via:
- self.ragflow.indexer(contenu, metadata)
- 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