Tutoriel

Statut éditorial : En attente de relecture

Créer un programme LLM avec les signatures et modules DSPy

Déclarer le contrat d’un programme DSPy, l’exécuter sur un modèle puis l’optimiser à partir d’exemples et d’une métrique.

Classification du contenu

Types

  • Modèles et API
  • Outils

Technologies

Niveau
Intermédiaire
Publié le
18 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
18 novembre 2026

DSPy sépare le contrat du programme, son module d’exécution et l’optimisation des instructions. Au lieu de modifier manuellement un long prompt, vous définissez entrées, sorties, exemples et métrique.

Installer et configurer

~~~bash pip install -U dspy ~~~

~~~python import dspy

lm = dspy.LM('openai/votre-modele-actif', api_key='depuis-environnement') dspy.configure(lm=lm) ~~~

Utilisez une variable d’environnement pour la clé et un identifiant de modèle actuellement disponible.

Définir une signature

~~~python class ClassifyTicket(dspy.Signature): """Classe un ticket dans billing, technical ou other.""" ticket: str = dspy.InputField() category: str = dspy.OutputField() reason: str = dspy.OutputField()

classifier = dspy.Predict(ClassifyTicket) result = classifier(ticket='Ma carte est débitée deux fois') print(result.category, result.reason) ~~~

La signature décrit le contrat. Le module Predict choisit une stratégie d’appel. ChainOfThought peut aider une tâche de raisonnement, mais n’est pas automatiquement meilleur.

Créer les exemples

~~~python trainset = [ dspy.Example(ticket='Paiement refusé', category='billing').with_inputs('ticket'), dspy.Example(ticket='Erreur 500 à la connexion', category='technical').with_inputs('ticket'), ]

def metric(example, prediction, trace=None): return prediction.category == example.category ~~~

Séparez train et test. La métrique doit refléter le besoin métier et refuser toute catégorie hors liste.

Optimiser et évaluer

Utilisez un téléprompteur ou optimiseur recommandé par la version DSPy installée, avec le trainset et la métrique, puis compilez le module. Évaluez le programme compilé sur un testset jamais utilisé pendant l’optimisation.

Sauvegardez programme, modèle, exemples, métrique et seed. Une amélioration sur dix exemples n’est pas une preuve de robustesse.

Production

Ajoutez validation Pydantic autour de la sortie, limites de tokens et traces. Comparez exactitude, latence et coût au prompt manuel. Réoptimisez seulement après une modification de données, modèle ou contrat.

FAQ

DSPy entraîne-t-il le modèle ?

Le plus souvent, il optimise le programme et ses démonstrations, pas les poids du LLM.

La métrique peut-elle être un LLM ?

Oui, mais combinez-la à des règles déterministes et calibrez-la sur des jugements humains.

Sources utilisées