AI Endpoints - Développer un chatbot de discussion RAG avec LangChain
Apprenez à construire un chatbot RAG (Retrieval Augmented Generation) en utilisant Python et LangChain
AI Endpoints est couvert par les Conditions particulières OVHcloud Public Cloud (voir l’Annexe 10 – « Conditions spécifiques – AI Endpoints »).
Introduction
Dans ce tutoriel, nous allons vous montrer comment construire un chatbot Retrieval Augmented Generation (RAG) qui améliore les réponses en intégrant vos propres documents personnalisés dans le contexte du LLM.
Pour cela, nous allons utiliser LangChain, un puissant framework open source qui simplifie l’utilisation des LLM aussi bien en Python qu’en JavaScript. Combiné à AI Endpoints d’OVHcloud, qui propose à la fois des modèles LLM et des modèles d’embedding, il devient facile de créer des assistants avancés et prêts pour la production.
Définition
Retrieval Augmented Generation (RAG) : plutôt que de se reposer uniquement sur les connaissances intégrées d’un modèle, le RAG injecte vos données dans le prompt pour améliorer la pertinence des réponses.
Voici comment cela fonctionne :
- Vos documents sont convertis en vecteurs à l’aide d’un modèle d’embedding.
- Lorsque l’utilisateur pose une question, celle-ci est également transformée en vecteur.
- Une recherche de similarité est effectuée pour trouver les fragments de données les plus pertinents.
- Ces fragments sont fournis au LLM en tant que contexte, ce qui permet d’obtenir des réponses précises et étayées.
LangChain gère toutes ces étapes au sein d’un seul pipeline pratique.
En pratique
Configurer l’environnement
Afin d’utiliser facilement les API d’AI Endpoints, créez un fichier .env pour stocker les variables d’environnement :
Veillez à remplacer la valeur du token (OVH_AI_ENDPOINTS_ACCESS_TOKEN) par la vôtre. Si vous n’en possédez pas encore, suivez les instructions du guide AI Endpoints - Premiers pas.
Ensuite, créez un fichier requirements.txt avec les librairies suivantes :
Puis, lancez l’installation de ces dépendances :
Importer les librairies et variables nécessaires
Une fois ceci fait, vous pouvez créer un fichier Python nommé chat-bot-streaming-rag.py, dans lequel vous importerez d’abord les librairies Python comme suit :
Après ces lignes, chargez et accédez aux variables d’environnement de votre fichier .env :
Ajoutez ensuite le code Python principal :
Préparer votre base de connaissances
Créez un dossier nommé rag-files et placez-y vos documents .txt, .md ou d’autres documents textuels. Ils seront convertis en embeddings et utilisés lors de la recherche.
Vous pouvez trouver des exemples de fichiers dans notre dépôt GitHub public-cloud-examples.
Exécuter le chatbot RAG
Exécutez la commande suivante :
En comparaison avec un chatbot sans RAG, vous constaterez des réponses bien plus précises et informées lorsque des documents sont injectés dans le contexte.
En effet, voici une comparaison sans utiliser le RAG :
et en utilisant le RAG :
Conclusion
Vous avez maintenant créé un chatbot Retrieval-Augmented Generation (RAG) utilisant vos propres documents et la plateforme AI Endpoints d’OVHcloud. L’intégration de LangChain avec Chroma et les modèles d’embedding rend la mise en œuvre du RAG simple, et même prête pour la production.
Aller plus loin
Si vous souhaitez aller plus loin et déployer votre chatbot dans le cloud, en rendant votre interface accessible à tous, consultez les articles et tutoriels suivants :
- AI Deploy – Tutoriel – Créer et utiliser une image Docker personnalisée
- AI Deploy – Tutoriel – Déployer une app Gradio pour de la reconnaissance de schémas
Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.
Votre avis nous intéresse !
N’hésitez pas à nous faire part de vos questions, retours et suggestions concernant AI Endpoints et ses fonctionnalités :
- Dans le canal #ai-endpoints du serveur Discord OVHcloud, où vous pouvez échanger avec la communauté et les équipes OVHcloud.