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

5.9 KiB
Raw Permalink Blame History

Guide Complet : Intégration des Agents LLM Dynamiques dans Cursor avec Cline


Objectif

  • Lancer des modèles localement (codellama, mistral, etc.)
  • Créer des agents dynamiques spécialisés pour coder, expliquer, corriger
  • Utiliser et configurer Cline pour interagir visuellement avec tes agents

I. Prérequis

Installer un modèle avec Ollama :

ollama pull codellama:13b-python
ollama pull mistral

Teste le bon fonctionnement :

ollama run mistral

II. Intégrer Ollama à Cursor via cursor-agent.json

Crée ce fichier à la racine du projet :

{
  "name": "LLM Local Agent",
  "entry": "main.py",
  "llm": {
    "provider": "custom",
    "completion_url": "http://localhost:11434/api/generate",
    "method": "POST",
    "headers": { "Content-Type": "application/json" },
    "input_key": "prompt",
    "output_key": "response"
  }
}

Ce fichier connecte Cursor à ton modèle local via API HTTP.


III. Cline dans Cursor : installation, configuration et usage

Qu'est-ce que Cline ?

Cline est la barre latérale interactive dans Cursor. Elle te permet de :

  • Créer des agents avec rôles personnalisés
  • Interagir avec ton code sélectionné ou tout le fichier
  • Voir la réponse du modèle directement à droite
  • Ajouter des prompts, des messages système ou modifier des paramètres

Comment lactiver ?

  1. Sélectionne du code
  2. Tape // pour activer un prompt (comme un commentaire)
  3. Cline souvre automatiquement à droite
  4. Tu peux :
    • Choisir ton modèle (cursor-agent.json doit être actif)
    • Envoyer un prompt
    • Lire et copier la réponse

Pourquoi cest utile ?

Cline est idéal pour le développement assisté par LLM, car tu peux :

  • Corriger le code sélectionné
  • Générer automatiquement du code ou des tests
  • Interagir avec différents agents en parallèle
  • Comparer les retours selon les rôles

IV. Créer un agent dynamique personnalisé (main.py)

from base_agent import BaseAgent

agent = BaseAgent("CodeExplainer", model="mistral")
agent.set_role("Tu es un assistant Python expert. Tu expliques de manière claire le fonctionnement dun code donné.")

prompt = input("Prompt utilisateur : ")
print(agent.process(prompt))

V. Exemple de rôles dagents Cursor

explainer = BaseAgent("Explainer", model="mistral")
optimizer = BaseAgent("Optimizer", model="codellama:13b-python")
refactor = BaseAgent("Refactor", model="codellama:13b-python")

explainer.set_role("Explique ce que fait le code avec précision.")
optimizer.set_role("Optimise ce code Python pour la performance.")
refactor.set_role("Refactore le code pour quil soit plus lisible.")

code = '''
def process(x): return [i*2 for i in x if i > 0]'''

print(explainer.process(code))

VI. Support multi-machine : Agents locaux ou distants (serveur)

Tu peux travailler avec un Ollama local sur ton PC principal ou utiliser un serveur distant qui héberge un modèle (par ex. Mistral 7B déjà actif sur ton site).

1. Classe RemoteLLMInterface

import requests

class RemoteLLMInterface:
    def __init__(self, model, host="http://192.168.1.150:11434", **params):
        self.model = model
        self.api_url = f"{host}/api/generate"
        self.params = params

    def generate(self, prompt):
        payload = {"model": self.model, "prompt": prompt, **self.params}
        response = requests.post(self.api_url, json=payload)
        return response.json().get("response", "")

2. Créer un agent distant :

from remote_llm_interface import RemoteLLMInterface

class RemoteAgent:
    def __init__(self, name, model="mistral", host="http://192.168.1.150:11434", **params):
        self.name = name
        self.interface = RemoteLLMInterface(model, host, **params)
        self.system_prompt = ""

    def set_role(self, prompt):
        self.system_prompt = prompt.strip()

    def process(self, user_input):
        full_prompt = f"{self.system_prompt}\n\n{user_input}" if self.system_prompt else user_input
        return self.interface.generate(full_prompt)

Tu peux ainsi appeler le modèle Mistral 7B de ton site depuis Cursor, sans le réinstaller localement.


VII. Changer dagent facilement (CLI rapide)

from base_agent import BaseAgent

name = input("Nom de lagent : ")
model = input("Modèle Ollama (ex: mistral) : ")
role = input("Quel est le rôle de lagent ? : ")
prompt = input("Quel est le prompt ? : ")

agent = BaseAgent(name=name, model=model)
agent.set_role(role)
print(agent.process(prompt))

VIII. Exemples d'agents à utiliser dans Cursor

Nom Agent Modèle Rôle assigné
Optimizer codellama:13b-python Optimise le code
Explainer mistral Explique le code
BugFinder codellama:13b-python Trouve des erreurs
DocGen mistral Génère des docstrings
Formatter codellama Reformate proprement le code

IX. Bonnes pratiques avec Cursor et Cline

  • Utilise // pour poser des questions précises à ton agent
  • Crée plusieurs agents avec des rôles spécialisés : rapide à réutiliser
  • Utilise des raccourcis clavier pour alterner entre agents dans Cline
  • Sauvegarde tes rôles les plus utiles dans un fichier JSON ou via script
  • Combine les agents dans une chaîne pour effectuer plusieurs actions à la suite

Conclusion

Tu maîtrises maintenant :

  • Linstallation dOllama et des modèles
  • La configuration de Cursor et lutilisation de cursor-agent.json
  • Linteraction avancée avec Cline (prompts, agents multiples, feedback instantané)
  • La création dagents dynamiques locaux ou distants, selon ton architecture