LangSmith : Monitoring, debugging et évaluation de vos applications LangChain en production
Développer une application IA avec LangChain est facile. La déployer en production de manière fiable est une autre histoire. LangSmith résout ce défi en offrant une plateforme complète de monitoring, debugging, et évaluation. Dans cet article, nous explorons comment LangSmith transforme le développement d’applications IA, du prototype à la production.

Qu’est-ce que LangSmith ?
LangSmith est la plateforme officielle de LangChain pour :
- 🔍 Tracer chaque exécution de vos chains et agents
- 🐛 Déboguer les erreurs et comportements inattendus
- 📊 Évaluer la qualité des réponses automatiquement
- 📈 Monitorer les performances et coûts en production
- 🧪 Tester avec des datasets réutilisables
- 🎯 Optimiser les prompts et configurations
Le problème sans LangSmith
Imaginez déboguer une chaîne LangChain complexe :
# Votre code
result = rag_chain.invoke({"query": "Comment fonctionne le fine-tuning ?"})
# Que s'est-il passé ? 🤷
# - Quels documents ont été récupérés ?
# - Quel prompt exact a été envoyé au LLM ?
# - Combien de tokens ont été consommés ?
# - Pourquoi la réponse est-elle incorrecte ?
# - Combien de temps chaque étape a pris ?
Sans LangSmith : Vous devez ajouter des print() partout, gérer manuellement les logs, et deviner ce qui se passe.
Avec LangSmith : Chaque exécution est automatiquement tracée avec tous les détails.
Les cas d’usage de LangSmith
| Phase | Utilisation |
|---|---|
| Développement | Déboguer les chains, comprendre le comportement |
| Test | Évaluer sur des datasets, mesurer la qualité |
| Staging | Valider avant production, A/B testing |
| Production | Monitorer performances, détecter régressions, analyser coûts |
| Optimisation | Améliorer prompts, réduire latence, minimiser coûts |
Installation et configuration
Créer un compte LangSmith
- Allez sur smith.langchain.com
- Créez un compte (gratuit pour débuter)
- Créez un projet
- Générez une clé API
Configuration dans votre code
import os
from dotenv import load_dotenv
load_dotenv()
# Configuration LangSmith
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "ls-..." # Votre clé API
os.environ["LANGCHAIN_PROJECT"] = "mon-projet" # Nom du projet
# C'est tout ! Vos chains sont maintenant tracées automatiquement
Vérification de la configuration
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template("Explique {concept} en une phrase")
chain = prompt | llm
# Cette exécution sera automatiquement tracée dans LangSmith
result = chain.invoke({"concept": "la photosynthèse"})
print(result.content)
Rendez-vous sur smith.langchain.com, sélectionnez votre projet, et vous verrez la trace complète !
Fonctionnalités principales
Tracing (Traçage)
Le tracing capture chaque étape de l’exécution de vos chains.
Anatomie d’une trace
Une trace LangSmith contient :
- Inputs/Outputs : Ce qui entre et sort de chaque composant
- Latence : Temps d’exécution de chaque étape
- Tokens : Nombre de tokens consommés (et coût estimé)
- Métadonnées : Tags, versions, environnement
- Hiérarchie : Relations parent-enfant entre composants
- Erreurs : Stack traces complètes en cas d’échec
Exemple : Trace d’un RAG
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
# Setup (une seule fois)
vectorstore = FAISS.from_documents(documents, OpenAIEmbeddings())
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4"),
retriever=vectorstore.as_retriever()
)
# Exécution (tracée automatiquement)
result = qa_chain.invoke({"query": "Qu'est-ce que LoRA ?"})
Dans LangSmith, vous verrez :
📊 Run: RetrievalQA (2.3s, $0.004)
├─ 🔍 Retriever (0.8s)
│ ├─ Embedding query (0.2s, 50 tokens)
│ └─ FAISS search (0.6s, 4 documents)
├─ 💬 ChatOpenAI (1.5s, $0.004)
│ ├─ Input: 1200 tokens
│ ├─ Output: 150 tokens
│ └─ Total cost: $0.0041
└─ ✅ Output: "LoRA est une technique..."
Debugging (Débogage)
LangSmith facilite le debugging avec des outils visuels.
Comparer plusieurs exécutions
# Exécution 1
result1 = chain.invoke({"query": "Explique l'IA"})
# Exécution 2 (avec paramètres différents)
result2 = chain.invoke({"query": "Explique l'IA", "temperature": 0.9})
Dans LangSmith :
- Visualisez les deux traces côte à côte
- Comparez les prompts, réponses, latences, coûts
- Identifiez les différences
Filtrer et rechercher
# Ajout de métadonnées pour filtrage
from langchain.callbacks import LangChainTracer
tracer = LangChainTracer(
project_name="mon-projet",
tags=["production", "user-123", "v2.0"]
)
result = chain.invoke(
{"query": "..."},
config={"callbacks": [tracer]}
)
Dans l’interface LangSmith :
- Filtrez par tags, dates, statut (success/error)
- Recherchez par input/output
- Identifiez les patterns d’erreurs
Analyser les erreurs
try:
result = problematic_chain.invoke({"query": "..."})
except Exception as e:
# L'erreur est automatiquement capturée dans LangSmith
print(f"Erreur: {e}")
LangSmith affiche :
- Stack trace complète
- État de tous les composants au moment de l’erreur
- Inputs qui ont causé l’erreur
- Suggestions de correction
Datasets et évaluation
Les datasets permettent de tester systématiquement vos chains.
Créer un dataset
Méthode 1 : Interface web
- Dans LangSmith, allez dans “Datasets”
- Créez un nouveau dataset
- Ajoutez des exemples manuellement
Méthode 2 : Par code
from langsmith import Client
client = Client()
# Créer le dataset
dataset_name = "evaluation-rag"
dataset = client.create_dataset(dataset_name)
# Ajouter des exemples
examples = [
{
"inputs": {"query": "Qu'est-ce que LoRA ?"},
"outputs": {"answer": "LoRA est une technique de fine-tuning..."}
},
{
"inputs": {"query": "Différence entre LoRA et QLoRA ?"},
"outputs": {"answer": "QLoRA est une version quantifiée..."}
},
{
"inputs": {"query": "Avantages du fine-tuning ?"},
"outputs": {"answer": "Le fine-tuning permet de personnaliser..."}
}
]
for example in examples:
client.create_example(
inputs=example["inputs"],
outputs=example["outputs"],
dataset_id=dataset.id
)
Méthode 3 : À partir de traces existantes
Dans l’interface LangSmith :
- Sélectionnez une trace qui a bien fonctionné
- Cliquez “Add to dataset”
- Choisissez le dataset cible
Évaluer votre chain sur un dataset
from langsmith.evaluation import evaluate
# Votre chain à évaluer
def my_chain(inputs: dict) -> dict:
result = qa_chain.invoke(inputs["query"])
return {"answer": result["result"]}
# Évaluateurs personnalisés
def correctness_evaluator(run, example) -> dict:
"""Évalue si la réponse est correcte"""
predicted = run.outputs["answer"]
expected = example.outputs["answer"]
# Simple comparaison (à améliorer avec un LLM)
is_correct = expected.lower() in predicted.lower()
return {
"key": "correctness",
"score": 1.0 if is_correct else 0.0
}
def length_evaluator(run, example) -> dict:
"""Évalue la longueur de la réponse"""
answer_length = len(run.outputs["answer"].split())
return {
"key": "length",
"score": 1.0 if 20 <= answer_length <= 200 else 0.5
}
# Lancer l'évaluation
results = evaluate(
my_chain,
data=dataset_name,
evaluators=[correctness_evaluator, length_evaluator],
experiment_prefix="rag-v1"
)
# Afficher les résultats
print(f"Précision : {results['results']['correctness']['mean']}")
print(f"Qualité longueur : {results['results']['length']['mean']}")
Évaluateurs intégrés
LangSmith propose des évaluateurs prêts à l’emploi :
from langsmith.evaluation import LangChainStringEvaluator
# Évaluateur de similarité sémantique
embedding_evaluator = LangChainStringEvaluator(
"embedding_distance",
config={"embeddings": OpenAIEmbeddings()}
)
# Évaluateur basé sur un LLM
llm_evaluator = LangChainStringEvaluator(
"qa", # Question-Answering correctness
config={"llm": ChatOpenAI(model="gpt-4")}
)
# Utilisation
results = evaluate(
my_chain,
data=dataset_name,
evaluators=[embedding_evaluator, llm_evaluator]
)
Monitoring en production
LangSmith offre des dashboards pour suivre vos applications en prod.
Métriques clés
Performance :
- Latence moyenne, p50, p95, p99
- Taux de succès vs erreurs
- Throughput (requêtes/minute)
Coûts :
- Tokens consommés par période
- Coût estimé (par modèle, par jour)
- Comparaison entre modèles
Qualité :
- Feedback utilisateurs (thumbs up/down)
- Scores d’évaluation automatiques
- Détection d’anomalies
Configuration du monitoring
# Ajout de métadonnées pour le monitoring
from langchain.callbacks import LangChainTracer
def run_with_metadata(query: str, user_id: str, version: str):
"""Exécute avec métadonnées de production"""
metadata = {
"user_id": user_id,
"version": version,
"environment": "production"
}
result = chain.invoke(
{"query": query},
config={
"metadata": metadata,
"tags": ["production", f"v{version}"]
}
)
return result
# Utilisation
result = run_with_metadata(
query="Qu'est-ce que le fine-tuning ?",
user_id="user-12345",
version="2.1.0"
)
Alertes
Configurez des alertes dans LangSmith :
- Taux d’erreur > 5%
- Latence p95 > 10 secondes
- Coût journalier > budget
- Chute de qualité détectée
Feedback utilisateur
Capturez le feedback des utilisateurs pour améliorer votre système.
Feedback explicite (thumbs up/down)
from langsmith import Client
client = Client()
# Après avoir montré la réponse à l'utilisateur
run_id = "..." # ID de la trace (disponible dans les callbacks)
user_feedback = "positive" # ou "negative"
client.create_feedback(
run_id=run_id,
key="user_rating",
score=1.0 if user_feedback == "positive" else 0.0,
comment="L'utilisateur a aimé la réponse"
)
Feedback implicite (comportement)
# L'utilisateur a cliqué sur "Voir plus"
client.create_feedback(
run_id=run_id,
key="engagement",
score=1.0,
comment="L'utilisateur a interagi avec la réponse"
)
# L'utilisateur a reformulé sa question
client.create_feedback(
run_id=run_id,
key="reformulation",
score=0.5,
comment="Réponse possiblement incomplète"
)
Analyser le feedback
Dans LangSmith :
- Filtrez les traces par score de feedback
- Identifiez les patterns dans les réponses mal notées
- Créez des datasets à partir des cas problématiques
- Améliorez vos prompts et configurations
A/B Testing et expérimentations
Comparez différentes versions de votre système.
# Version A : GPT-4o-mini
chain_a = create_chain(model="gpt-4o-mini", temperature=0.3)
# Version B : GPT-4
chain_b = create_chain(model="gpt-4", temperature=0.7)
# Évaluation comparative
results_a = evaluate(
chain_a,
data=dataset_name,
experiment_prefix="variant-a-gpt4mini"
)
results_b = evaluate(
chain_b,
data=dataset_name,
experiment_prefix="variant-b-gpt4"
)
# Comparer dans l'interface LangSmith
print(f"Variant A - Score: {results_a['results']['correctness']['mean']}")
print(f"Variant B - Score: {results_b['results']['correctness']['mean']}")
Dans LangSmith :
- Visualisez les résultats côte à côte
- Comparez latence, coûts, qualité
- Décidez quelle variante déployer
Cas d’usage pratiques
Cas 1 : Déboguer un RAG qui retourne des mauvaises réponses
Problème : Votre système RAG répond parfois hors sujet.
Avec LangSmith :
Filtrez les traces avec feedback négatif
Analysez les documents récupérés :
Documents retrouvés : - Doc 1: "Les chats sont des félins..." (score: 0.85) ❌ Non pertinent - Doc 2: "La programmation Python..." (score: 0.82) ❌ Non pertinent - Doc 3: "Le fine-tuning permet..." (score: 0.79) ✅ Pertinent mais 3ème !Identifiez le problème : Seuil de similarité trop bas
Solution : Augmentez
score_thresholdde 0.7 à 0.85Testez : Réévaluez sur le dataset
Déployez : Nouvelle version si amélioration confirmée
Cas 2 : Optimiser les coûts d’un agent
Problème : Vos coûts API explosent en production.
Avec LangSmith :
Dashboard de coûts : Identifiez que 80% du budget va à GPT-4
Analysez les traces :
Agent moyen : 3-5 itérations par requête GPT-4 appelé 15 fois par jour pour reformulation (inutile ?)Optimisations :
- Remplacez GPT-4 par GPT-4o-mini pour le raisonnement
- Gardez GPT-4 uniquement pour la réponse finale
- Ajoutez du caching pour requêtes similaires
Mesure : Coûts divisés par 3, qualité identique
Cas 3 : Détecter une régression après déploiement
Problème : Après un changement de prompt, la qualité baisse.
Avec LangSmith :
- Monitoring automatique détecte une chute du score de 0.85 à 0.65
- Alerte envoyée par email
- Comparaison : Ancien vs nouveau prompt dans l’interface
- Rollback : Retour à l’ancien prompt
- Post-mortem : Analyse des différences, correction, nouveau test
Cas 4 : Créer un dataset de test à partir de la production
Objectif : Constituer un dataset représentatif.
Avec LangSmith :
- Filtrez les traces production avec feedback positif
- Sélectionnez 50 exemples variés
- Cliquez “Add to dataset” pour chaque
- Dataset créé avec cas réels validés par utilisateurs
- Utilisez-le pour tester les futures versions
Intégration avec LangChain et LangGraph
Avec LangChain (automatique)
# Configuration une fois
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "ls-..."
# Tout le reste est automatique !
chain = prompt | llm | output_parser
result = chain.invoke({"input": "..."})
# ✅ Tracé dans LangSmith
Avec LangGraph
from langgraph.graph import StateGraph
from langsmith import traceable
# Les graphes sont automatiquement tracés
graph = StateGraph(State)
graph.add_node("research", research_node)
graph.add_node("writing", writing_node)
app = graph.compile()
# Exécution tracée
result = app.invoke({"query": "..."})
# ✅ Chaque nœud apparaît dans la trace
Trace LangGraph dans LangSmith :
📊 Run: StateGraph (4.5s)
├─ 🔬 research_node (2.1s)
│ ├─ Search tool (1.8s)
│ └─ Processing (0.3s)
├─ ✍️ writing_node (2.0s)
│ └─ GPT-4 call (1.9s)
└─ 📋 review_node (0.4s)
Callbacks personnalisés
from langchain.callbacks.base import BaseCallbackHandler
class CustomLangSmithCallback(BaseCallbackHandler):
"""Callback pour ajouter des métriques custom"""
def on_chain_start(self, serialized, inputs, **kwargs):
run_id = kwargs.get("run_id")
# Logique personnalisée
print(f"Chain started: {run_id}")
def on_chain_end(self, outputs, **kwargs):
run_id = kwargs.get("run_id")
# Enregistrer métrique custom dans LangSmith
from langsmith import Client
client = Client()
client.create_feedback(
run_id=run_id,
key="custom_metric",
score=calculate_custom_score(outputs)
)
# Utilisation
result = chain.invoke(
{"input": "..."},
config={"callbacks": [CustomLangSmithCallback()]}
)
Fonctionnalités avancées
Annotation collaborative
Invitez votre équipe à annoter les traces :
# Dans l'interface LangSmith :
# 1. Sélectionnez une trace
# 2. Ajoutez un commentaire
# 3. Taguez un collègue
# 4. Créez une issue si nécessaire
Cas d’usage :
- QA Team : Marque les réponses incorrectes
- Product Team : Identifie les use cases non couverts
- Engineering : Note les optimisations à faire
Versioning de prompts
LangSmith détecte automatiquement les changements de prompts :
# Version 1
prompt_v1 = ChatPromptTemplate.from_template(
"Réponds en une phrase : {question}"
)
# Version 2
prompt_v2 = ChatPromptTemplate.from_template(
"Réponds de manière concise et précise : {question}"
)
# LangSmith enregistre les deux versions
# Vous pouvez comparer leur performance
Playground interactif
Testez vos prompts directement dans l’interface :
- Ouvrez une trace dans LangSmith
- Cliquez “Open in Playground”
- Modifiez le prompt, les paramètres
- Réexécutez et comparez
- Exportez le code amélioré
Export et partage
from langsmith import Client
client = Client()
# Exporter un dataset
dataset = client.read_dataset(dataset_name="my-dataset")
client.export_dataset(dataset.id, format="csv", filename="dataset.csv")
# Partager une trace
trace_url = f"https://smith.langchain.com/public/{run_id}"
# Envoyez ce lien à votre équipe
Comparaison avec les alternatives
| Outil | Points forts | Points faibles | Meilleur pour |
|---|---|---|---|
| LangSmith | Intégration native LangChain, UI excellente, évaluation intégrée | Payant après quota gratuit, propriétaire | Production LangChain |
| Langfuse | Open source (MIT), self-hosting gratuit, multi-frameworks, prompt management | Interface moins mature que LangSmith | Self-hosting, budget limité, multi-frameworks |
| Weights & Biases | Puissant pour ML, visualisations avancées | Setup complexe, pas spécialisé LLM | Équipes ML avancées |
| MLflow | Open source, self-hosted | Moins de features LLM-specific | Self-hosting requis |
| Phoenix (Arize) | Open source, RAG observability | Moins mature | Observabilité RAG |
| Helicone | Simple, focus LLM | Moins de features d’évaluation | Monitoring basique |
Verdict : Si vous utilisez LangChain/LangGraph et acceptez un service propriétaire payant, LangSmith est le choix évident. Si vous préférez l’open source ou avez besoin de self-hosting, Langfuse est une excellente alternative avec des fonctionnalités similaires.
Tarification
Plan gratuit
- 5 000 traces/mois
- 1 projet
- Rétention 14 jours
- Features essentielles
Idéal pour : Prototypes, side projects, apprentissage
Plan Developer ($39/mois)
- 100 000 traces/mois
- Projets illimités
- Rétention 90 jours
- Toutes les features
Idéal pour : Startups, applications en production
Plan Enterprise (sur devis)
- Traces illimitées
- Rétention personnalisée
- SSO, SLA, support prioritaire
- Self-hosting disponible
Idéal pour : Grandes entreprises
Bonnes pratiques
Organisation des projets
# Un projet par environnement
os.environ["LANGCHAIN_PROJECT"] = "my-app-dev" # Développement
os.environ["LANGCHAIN_PROJECT"] = "my-app-staging" # Staging
os.environ["LANGCHAIN_PROJECT"] = "my-app-prod" # Production
Tags cohérents
# Stratégie de tagging
tags = [
f"env:{environment}", # dev, staging, prod
f"version:{app_version}", # v2.1.0
f"model:{model_name}", # gpt-4, claude-3
f"feature:{feature_name}", # rag, agent, chat
f"user_tier:{user_tier}" # free, pro, enterprise
]
result = chain.invoke(
inputs,
config={"tags": tags}
)
Métadonnées riches
metadata = {
"user_id": user_id,
"session_id": session_id,
"request_id": request_id,
"ab_variant": "variant_a",
"geographic_region": "eu-west",
"client_version": "mobile-ios-2.1"
}
result = chain.invoke(
inputs,
config={"metadata": metadata}
)
Datasets organisés
datasets/
├── smoke-tests/ # Tests rapides (10 exemples)
├── regression-suite/ # Suite complète (100+ exemples)
├── edge-cases/ # Cas limites
├── production-samples/ # Échantillons réels
└── by-feature/
├── rag-tests/
├── agent-tests/
└── chat-tests/
CI/CD avec évaluation
# .github/workflows/evaluate.yml
name: Evaluate on Dataset
on: [pull_request]
jobs:
evaluate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
- name: Install dependencies
run: pip install -r requirements.txt
- name: Run evaluation
env:
LANGCHAIN_API_KEY: ${{ secrets.LANGCHAIN_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
python scripts/evaluate.py --dataset regression-suite
- name: Check threshold
run: |
# Échoue si score < 0.85
python scripts/check_threshold.py --min-score 0.85
Workflows de production
Développement
# Environnement de dev
os.environ["LANGCHAIN_PROJECT"] = "my-app-dev"
# Itération rapide
while not satisfied:
# Modifiez le code
result = chain.invoke(test_input)
# Vérifiez dans LangSmith
# Ajustez si nécessaire
Testing pré-déploiement
# Changement de projet pour staging
os.environ["LANGCHAIN_PROJECT"] = "my-app-staging"
# Évaluation sur dataset
results = evaluate(
my_chain,
data="regression-suite",
experiment_prefix=f"pre-deploy-{version}"
)
# Validation
assert results["results"]["correctness"]["mean"] >= 0.85
# Si OK → déploiement
Production avec monitoring
# Production
os.environ["LANGCHAIN_PROJECT"] = "my-app-prod"
def production_handler(request):
"""Handler avec monitoring complet"""
metadata = {
"user_id": request.user_id,
"endpoint": request.endpoint,
"version": APP_VERSION
}
try:
result = chain.invoke(
request.input,
config={
"metadata": metadata,
"tags": ["production"]
}
)
# Feedback implicite basé sur le temps de lecture
if request.reading_time > 30: # secondes
client.create_feedback(
run_id=result.run_id,
key="engagement",
score=1.0
)
return result
except Exception as e:
# Erreur automatiquement capturée dans LangSmith
logger.error(f"Chain failed: {e}")
raise
Amélioration continue
# Chaque semaine
def weekly_improvement_cycle():
"""Cycle d'amélioration hebdomadaire"""
# 1. Analyser les feedbacks négatifs
negative_runs = client.list_runs(
project_name="my-app-prod",
filter='eq(feedback_key, "user_rating") and eq(feedback_score, 0.0)',
start_time=one_week_ago
)
# 2. Créer dataset avec cas problématiques
for run in negative_runs[:20]:
client.create_example(
inputs=run.inputs,
outputs=run.outputs,
dataset_name="issues-to-fix"
)
# 3. Tester solutions
improved_chain = optimize_prompts()
# 4. Évaluer
results = evaluate(
improved_chain,
data="issues-to-fix"
)
# 5. Déployer si amélioration > 10%
if results["improvement"] > 0.10:
deploy_new_version(improved_chain)
Conclusion
LangSmith transforme le développement d’applications LangChain en offrant une visibilité totale sur chaque aspect de vos systèmes IA. De la phase de prototypage au déploiement en production, LangSmith vous donne les outils nécessaires pour :
✅ Déboguer rapidement avec des traces détaillées
✅ Tester systématiquement avec des datasets réutilisables
✅ Évaluer automatiquement la qualité des réponses
✅ Monitorer en continu les performances et coûts
✅ Améliorer itérativement grâce aux feedbacks
✅ Déployer en confiance avec validation pré-production
Checklist pour bien démarrer
- Créer un compte LangSmith
- Configurer les variables d’environnement
- Activer le tracing sur vos chains
- Explorer quelques traces dans l’interface
- Créer votre premier dataset (5-10 exemples)
- Lancer une évaluation initiale
- Configurer des tags et métadonnées
- Mettre en place le monitoring production
- Implémenter la capture de feedback
- Intégrer l’évaluation dans votre CI/CD
Impact sur votre développement
Sans LangSmith :
- 🐛 Debugging à l’aveugle avec des
print() - ⏰ Heures perdues à comprendre les comportements
- 💰 Coûts incontrôlés
- ❌ Déploiements risqués sans validation
- 📉 Régressions non détectées
Avec LangSmith :
- ✅ Debugging visuel en quelques clics
- ⚡ Itérations rapides avec feedback immédiat
- 💵 Coûts optimisés et suivis
- 🎯 Déploiements validés par des métriques
- 📈 Amélioration continue basée sur des données
Pour aller plus loin
Documentation officielle :
Articles connexes sur naileru.com :
- Langfuse - Alternative open source à LangSmith
- Introduction à LangChain - Comprendre les bases
- RAG avec LangChain - Implémenter un système RAG
- Agents LangChain - Créer des agents autonomes
- LangGraph - Agents avancés avec graphes
- Guide Pratique LangChain - 40+ recettes
Concepts fondamentaux :
- Embeddings - Vectorisation de texte
- Tokens - Optimiser les coûts
- RAG - Concept de récupération augmentée
- Transformers - Architecture des LLMs
LangSmith n’est pas qu’un outil de debugging : c’est la plateforme centrale pour développer, tester, déployer et améliorer vos applications IA de manière professionnelle.
Navigation
← Retour à la Formation LangChain | Module suivant : LangServe - Déploiement d’API →