coffreobsidian/Serveur perso/LLM Obsidian.md
2025-03-23 20:59:56 +01:00

144 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 dOllama
```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 dun 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 na pas de titres, ni de sections."
print(agent.process(note))
```
### Exemples dagents à créer
|Nom de lagent|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 lorthographe.")
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 dagent 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 lindexation des notes.