mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 00:56:48 +01:00
0505
This commit is contained in:
parent
11afea2afc
commit
f451a29b47
2
.obsidian/app.json
vendored
2
.obsidian/app.json
vendored
@ -1,5 +1,5 @@
|
||||
{
|
||||
"spellcheck": true,
|
||||
"spellcheck": false,
|
||||
"attachmentFolderPath": "./PJ",
|
||||
"newFileLocation": "folder",
|
||||
"newFileFolderPath": "inbox",
|
||||
|
||||
26
.obsidian/workspace.json
vendored
26
.obsidian/workspace.json
vendored
@ -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",
|
||||
|
||||
93
inbox/Notes complémentaires préambule Ragflow.md
Normal file
93
inbox/Notes complémentaires préambule Ragflow.md
Normal 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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user