mirror of
https://github.com/Ladebeze66/coffreobsidian.git
synced 2025-12-16 22:47:44 +01:00
144 lines
3.4 KiB
Markdown
144 lines
3.4 KiB
Markdown
# Guide : Intégration et Utilisation des LLM avec Agents Dynamiques dans Obsidian
|
||
|
||
---
|
||
|
||
## Objectif du guide
|
||
|
||
- Installer et configurer les LLM localement avec Ollama
|
||
- Intégrer ces modèles dans Obsidian grâce à des agents dynamiques
|
||
- Utiliser tes notes comme base de données intelligente
|
||
- Créer plusieurs agents spécialisés pour enrichir ton workflow de prise de notes
|
||
|
||
Le tout en restant simple, modulaire, réutilisable.
|
||
|
||
---
|
||
|
||
## I. Prérequis
|
||
|
||
### 1. Systèmes compatibles
|
||
|
||
- Windows 10/11 (avec WSL recommandé) ou Linux
|
||
|
||
### 2. Logiciels à installer
|
||
|
||
- [Ollama](https://ollama.com/) (pour exécuter les LLM en local)
|
||
- Python 3.10+
|
||
- Obsidian (avec le plugin "Templater" ou "Custom Plugins" activé)
|
||
|
||
---
|
||
|
||
## II. Installer et tester les modèles LLM avec Ollama
|
||
|
||
### 1. Installation d’Ollama
|
||
|
||
```bash
|
||
# Linux/WSL
|
||
curl -fsSL https://ollama.com/install.sh | sh
|
||
|
||
# macOS (brew)
|
||
brew install ollama
|
||
```
|
||
|
||
### 2. Lancer un modèle (exemple : mistral)
|
||
|
||
```bash
|
||
ollama run mistral
|
||
```
|
||
|
||
Pour télécharger un autre modèle :
|
||
|
||
```bash
|
||
ollama pull codellama:13b-python
|
||
```
|
||
|
||
Liste des modèles : [https://ollama.com/library](https://ollama.com/library)
|
||
|
||
### 3. Vérification API locale
|
||
|
||
```bash
|
||
curl http://localhost:11434
|
||
```
|
||
|
||
---
|
||
|
||
## III. Créer des agents dynamiques spécialisés pour Obsidian
|
||
|
||
### Structure minimale d’un agent
|
||
|
||
```python
|
||
from base_agent import BaseAgent
|
||
|
||
agent = BaseAgent("RestructurationObsidian", model="mistral")
|
||
agent.set_role("Tu restructures les notes Markdown pour les rendre lisibles et organisées.")
|
||
|
||
note = "cette note est en désordre. elle n’a pas de titres, ni de sections."
|
||
print(agent.process(note))
|
||
```
|
||
|
||
### Exemples d’agents à créer
|
||
|
||
|Nom de l’agent|Rôle assigné|
|
||
|---|---|
|
||
|AnalyseurStructure|Analyse la structure de la note|
|
||
|CorrecteurMarkdown|Corrige orthographe + mise en page|
|
||
|SuggestionTagsLiens|Propose des tags internes et liens|
|
||
|OptimiseurObsidian|Propose des améliorations visuelles (CSS/templating)|
|
||
|ClasseurNotes|Classe la note dans un dossier pertinent|
|
||
|
||
### Organisation recommandée dans Obsidian
|
||
|
||
- Dossier `scripts/agents/`
|
||
- Fichier `agents_runner.py` exécutable via script shell ou Templater
|
||
|
||
```bash
|
||
python agents/agents_runner.py "notes/ma_note.md"
|
||
```
|
||
|
||
### Exemple via plugin Templater
|
||
|
||
Crée un template qui appelle un script :
|
||
|
||
```markdown
|
||
<% tp.system.run('python3 agents/agents_runner.py "' + tp.file.path(true) + '"') %>
|
||
```
|
||
|
||
---
|
||
|
||
## IV. Exploitation avancée avec AgentChain
|
||
|
||
Tu peux enchaîner plusieurs agents pour automatiser un traitement complet :
|
||
|
||
```python
|
||
from agent_chain import AgentChain
|
||
|
||
a1 = BaseAgent("analyse", model="mistral")
|
||
a2 = BaseAgent("structure", model="mistral")
|
||
a3 = BaseAgent("correction", model="mistral")
|
||
|
||
a1.set_role("Analyse le contenu de la note.")
|
||
a2.set_role("Restructure la note.")
|
||
a3.set_role("Corrige l’orthographe.")
|
||
|
||
chain = AgentChain(chain_mode=True)
|
||
chain.add(a1)
|
||
chain.add(a2)
|
||
chain.add(a3)
|
||
|
||
with open("notes/ma_note.md") as f:
|
||
print(chain.run(f.read()))
|
||
```
|
||
|
||
---
|
||
|
||
## V. Astuces pratiques
|
||
|
||
- Utilise le tag YAML `#traitement_ai` dans tes notes à traiter automatiquement
|
||
- Stocke les retours d’agent dans un champ frontmatter YAML ou un fichier à part
|
||
- Utilise le modèle `phi` pour les agents rapides, `mistral` pour polyvalence, `codellama` uniquement si tu traites du code Markdown
|
||
|
||
---
|
||
|
||
## VI. À suivre
|
||
|
||
Tu peux combiner cette configuration avec un système de base de données vectorielle RAG plus tard pour l’indexation des notes.
|