Introduction
LangSmith est la plateforme d'observabilité de LangChain, essentielle pour déboguer, tester et monitorer les applications basées sur des modèles de langage (LLM). En 2026, avec la complexité croissante des chaînes LLM, tracer chaque appel API, input/output et latence devient indispensable pour optimiser les coûts et la performance. Imaginez debugger une chaîne RAG comme un profiler Python : vous visualisez les flux en temps réel dans une interface intuitive.
Ce tutoriel beginner vous guide de la création de compte à l'évaluation automatisée. Vous apprendrez à intégrer le tracing natif, explorer les traces via l'UI web, et créer des datasets pour des tests reproductibles. À la fin, vous maîtriserez LangSmith pour itérer rapidement sur vos agents IA, réduisant les erreurs de 50% en moyenne selon les benchmarks LangChain. Prêt à rendre vos LLM transparents ? (128 mots)
Prérequis
- Python 3.10+
- Compte gratuit sur LangSmith (créez-le via Google/GitHub)
- Clé API OpenAI (optionnelle pour exemples avancés)
- pip installé
- Connaissances basiques de Python et prompts LLM
Installation des dépendances
pip install langchain langsmith langchain-openai python-dotenvCette commande installe LangChain pour les chaînes LLM, LangSmith pour le tracing, et l'intégration OpenAI. Utilisez un virtualenv pour isoler : python -m venv env && source env/bin/activate. Évitez les conflits en pinant les versions : pip install langchain==0.3.0 si needed.
Obtenir et configurer votre API key LangSmith
Connectez-vous sur smith.langchain.com, allez dans Settings > API Keys et générez une clé LANGCHAIN_API_KEY. Créez aussi un projet via Projects > New Project (nommez-le mon-premier-projet).
Stockez-la dans un fichier .env pour sécurité : elle trace automatiquement vers ce projet. L'analogie : c'est comme une clé AWS, jamais en dur dans le code.
Configuration de l'environnement
LANGCHAIN_API_KEY=lsv2_your_api_key_here
LANGCHAIN_PROJECT=mon-premier-projet
OPENAI_API_KEY=sk-your_openai_key_hereCe fichier .env active le tracing automatique et configure OpenAI. Chargez-le via dotenv dans vos scripts. Piège : oubliez LANGCHAIN_TRACING_V2=true si pas auto-détecté, ajoutez export LANGCHAIN_TRACING_V2=true en terminal.
Charger l'environnement et tester
import os
from dotenv import load_dotenv
load_dotenv()
print("API Key chargée:", "OK" if os.getenv("LANGCHAIN_API_KEY") else "KO")
print("Projet:", os.getenv("LANGCHAIN_PROJECT"))
# Test tracing basique
os.environ["LANGCHAIN_TRACING_V2"] = "true"
print("Tracing activé !")Ce script vérifie la config et active explicitement le tracing V2 (recommandé en 2026). Exécutez python test_env.py. Valeur : détecte les erreurs tôt. Évitez print(os.getenv('key')) en prod pour sécurité.
Créer votre première chaîne avec tracing automatique
Exécutez ce code et vérifiez smith.langchain.com > votre projet. Vous verrez une trace interactive : inputs, outputs, latences. Cliquez sur la trace pour zoomer sur chaque step, comme un debugger visuel.
Première chaîne LangChain tracée
import os
from dotenv import load_dotenv
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
load_dotenv()
# Modèle LLM
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
# Prompt template
prompt = ChatPromptTemplate.from_template("Explique {topic} en 3 points simples.")
# Chaîne
chain = prompt | llm
# Exécution tracée auto
result = chain.invoke({"topic": "LangSmith"})
print(result.content)Cette chaîne complète pipe un prompt vers GPT-4o-mini, tracée automatiquement via env vars. Copiez-collez et run : python simple_chain.py. Résultat en console + trace web. Piège : sans temperature=0, les outputs varient, rendant les tests flaky.
Explorer les traces dans l'interface LangSmith
- Allez sur smith.langchain.com > mon-premier-projet > Runs.
- Cliquez une trace : visualisez Inputs/Outputs, Token usage, Latence (ex: 2s pour LLM call).
- Utilisez Filters pour tagger par user_id ou erreur.
Chaîne avancée avec parsing et callbacks
import os
from dotenv import load_dotenv
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
load_dotenv()
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template(
"Liste 3 faits sur {topic}. Réponds en JSON: {{'faits': ['f1', 'f2', 'f3']}}"
)
parser = StrOutputParser()
chain = prompt | llm | parser
# Run avec metadata pour filtrage
result = chain.invoke({"topic": "Python"}, config={"tags": ["test", "beginner"]})
print(result)Ajoute parsing JSON-like et tags pour filtrer traces (ex: vue 'test' seulement). Exécutez et checkez UI : tags visibles. Améliore debug en groupant runs. Évitez parser sans instruction JSON pour outputs malformés.
Créer un dataset et évaluer automatiquement
import os
from dotenv import load_dotenv
from langsmith import Client
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
load_dotenv()
client = Client()
# Créer dataset
dataset_name = "test-llm"
data = [
{"input": "topic", "output": "Explication en 3 points."},
{"input": "Python", "output": "Langage interprété."}
]
client.create_dataset(dataset_name=dataset_name)
for item in data:
client.create_example(inputs={"topic": item["input"]}, outputs=item["output"], dataset_id=dataset_name)
# Évaluer
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template("Explique {topic} en 3 points.")
chain = prompt | llm
results = client.run_on_dataset(
dataset_name=dataset_name,
llm_or_chain_factory=lambda: chain,
evaluation="LangSmith built-in evaluators"
)
print(results)Crée un dataset de 2 exemples, run éval auto (score BLEU/ROUGE). Visez >0.8 score. Checkez Evaluations en UI. Puissant pour A/B test models. Piège : dataset vide crash, toujours 2+ exemples.
Bonnes pratiques
- Activez toujours tracing V2 :
os.environ["LANGCHAIN_TRACING_V2"] = "true"pour granularité max. - Taggez les runs :
config={"tags": ["prod", "user_id:123"]}, filtrez par cohortes. - Utilisez datasets pour tests : 80% coverage avant prod, intégrez à CI/CD.
- Monitorez coûts : UI > Analytics > Token usage, alertez >budget.
- Sécurisez keys :
.env+gitignore, rotatez mensuellement.
Erreurs courantes à éviter
- Oubli API key : traces vides ; vérifiez
langsmith listen CLI. - Projet non spécifié : runs dans 'default' ; set
LANGCHAIN_PROJECT. - Pas de dotenv : keys non chargées ;
load_dotenv()en premier. - Over-prompting : chains >5 steps ralentissent ; profilez latences en UI.
Pour aller plus loin
- Docs officielles : LangSmith Quickstart
- CLI avancée :
pip install -U langsmith && langsmith login - Intégrez à Streamlit/Gradio pour apps full-stack.