Debuter avec LangChain : Un tutoriel complet pour les debutants
Pourquoi LangChain ?
LangChain est une bibliothèque d'IA open source qui permet aux développeurs de créer des applications intelligentes et personnalisées facilement. En 2023, avec la demande croissante d'intelligence artificielle dans les entreprises, un dev a besoin de solutions robustes et faciles à mettre en œuvre pour intégrer l'IA dans ses projets.
Un cas concret : une entreprise souhaite développer un assistant virtuel interne qui répond aux questions des employés et gère leurs tâches. LangChain permet de créer cet assistant sans avoir besoin d'un profond connaissances en IA ou en développement.
Prerequis
- Connaissance de base du Python
- Installation de Python 3.8 ou plus récent (https://www.python.org/downloads/)
- Installation de pip (généralement inclu avec Python)
- Un éditeur de code comme VSCode ou PyCharm
Concepts fondamentaux
LangChain : La bibliothèque d'IA
LangChain est une bibliothèque qui simplifie l'intégration de l'IA dans les applications. Elle offre des composants prêts à l'emploi pour créer des assistants, des chatbots, et plus encore.
## Importer la bibliothèque LangChain
import langchain
## Créer une instance d'un assistant
assistant = langchain.Assistant()
Chaines de traitement (Chains)
Les chaînes de traitement sont le cœur de l'IA avec LangChain. Elles définissent les étapes à suivre pour traiter une requête utilisateur.
## Importer la classe Chain
from langchain.chains import Chain
## Créer une chaîne simple
class HelloWorldChain(Chain):
def run(self, input_text):
return f"Hello, {input_text}!"
Sources de données (Sources)
LangChain permet d'intégrer des sources de données externes pour fournir le contexte et les informations nécessaires.
## Importer la classe Source
from langchain.sources import WebPageSource
## Créer une source web
web_source = WebPageSource("https://www.example.com")
Hooks (Hooks)
Les hooks permettent de personnaliser le comportement des chaînes et des sources. Ils sont utilisés pour ajouter des fonctionnalités spécifiques.
## Importer la classe Hook
from langchain.hooks import LoggingHook
## Créer un hook de journalisation
logging_hook = LoggingHook()
Middleware (Middleware)
Le middleware est utilisé pour modifier ou étendre le comportement des chaînes et des sources avant qu'elles ne soient exécutées.
## Importer la classe Middleware
from langchain.middleware import RateLimitingMiddleware
## Créer un middleware de limitation de taux
rate_limiting_middleware = RateLimitingMiddleware(max_requests_per_minute=10)
Mise en pratique : projet fil rouge
Projet : Assistant virtuel interne
L'objectif est de créer un assistant virtuel interne pour une entreprise qui répond aux questions des employés et gère leurs tâches.
Étape 1 : Installer LangChain
pip install langchain
Étape 2 : Créer la structure du projet
Créez un répertoire appelé assistant_virtuel et ajoutez les fichiers suivants :
main.pychains.pysources.pymiddleware.py
Étape 3 : Importations et configuration de l'assistant
## main.py
from langchain.assistant import Assistant
from chains import HelloWorldChain
from sources import WebPageSource
from middleware import RateLimitingMiddleware
## Créer une instance de l'assistant
assistant = Assistant()
## Ajouter la chaîne et la source
assistant.add_chain(HelloWorldChain())
assistant.add_source(WebPageSource("https://www.example.com"))
## Ajouter le middleware de limitation de taux
rate_limiting_middleware = RateLimitingMiddleware(max_requests_per_minute=10)
assistant.use_middleware(rate_limiting_middleware)
if __name__ == "__main__":
assistant.run()
Étape 4 : Créer une chaîne personnalisée
## chains.py
from langchain.chains import Chain
class TaskManagementChain(Chain):
def run(self, input_text):
return f"Task management: {input_text}"
Étape 5 : Ajouter la chaîne à l'assistant
Modifiez main.py pour ajouter la nouvelle chaîne :
## main.py (modification)
from chains import TaskManagementChain
## Créer une instance de l'assistant
assistant = Assistant()
## Ajouter les chaînes et la source
assistant.add_chain(HelloWorldChain())
assistant.add_chain(TaskManagementChain())
assistant.add_source(WebPageSource("https://www.example.com"))
## Ajouter le middleware de limitation de taux
rate_limiting_middleware = RateLimitingMiddleware(max_requests_per_minute=10)
assistant.use_middleware(rate_limiting_middleware)
if __name__ == "__main__":
assistant.run()
Étape 6 : Exécuter l'assistant
python main.py
Erreurs frequentes et debugging
Erreur 1 : ImportError
Message d'erreur :
ImportError: cannot import name 'Assistant' from 'langchain.assistant' (/path/to/your/env/lib/python3.x/site-packages/langchain/assistant.py)
Code incorrect :
## ❌ Mauvais
from langchain.assistant import Assistant
Code correct :
## ✅ Correct
from langchain import Assistant
Erreur 2 : AttributeError
Message d'erreur :
AttributeError: 'HelloWorldChain' object has no attribute 'run'
Code incorrect :
## ❌ Mauvais
class HelloWorldChain:
def run(self, input_text):
return f"Hello, {input_text}!"
Code correct :
## ✅ Correct
from langchain.chains import Chain
class HelloWorldChain(Chain):
def run(self, input_text):
return f"Hello, {input_text}!"
Erreur 3 : RateLimitingMiddleware not found
Message d'erreur :
NameError: name 'RateLimitingMiddleware' is not defined
Code incorrect :
## ❌ Mauvais
rate_limiting_middleware = RateLimitingMiddleware(max_requests_per_minute=10)
Code correct :
## ✅ Correct
from langchain.middleware import RateLimitingMiddleware
rate_limiting_middleware = RateLimitingMiddleware(max_requests_per_minute=10)
Pour aller plus loin
1. Créer une chaîne personnalisée avec des hooks
Explorez la documentation de LangChain pour apprendre à créer des chaînes personnalisées avec des hooks pour ajouter des fonctionnalités spécifiques.
2. Intégrer une API externe
Explorez comment intégrer une API externe dans votre assistant virtuel interne pour obtenir des informations en temps réel.
LangChain Sources Documentation
3. Développer un assistant multimodal
Découvrez comment développer un assistant qui peut traiter non seulement du texte mais aussi des images et des voix pour une expérience utilisateur plus complète.
Tuto sur les assistants multimodaux avec LangChain
Défi pratique : Créer un assistant virtuel multi-competences
Développez un assistant virtuel qui peut répondre aux questions sur différents sujets, tels que la météo, les horaires de transport public, et le temps. Utilisez différentes chaînes et sources pour fournir des informations précises et à jour.
Instructions :
- Créez une nouvelle chaîne pour chaque sujet (ex:
WeatherChain,TransportChain). - Ajoutez ces chaînes à l'assistant.
- Testez l'assistant en interrogeant différentes questions sur le météo, les horaires de transport public et le temps.