Utiliser des conteneurs pour le développement RAG
Prérequis
Terminez Conteneuriser une application RAG.
Aperçu
Dans cette section, vous apprendrez à mettre en place un environnement de développement pour accéder à tous les services dont votre application RAG générative a besoin. Cela inclut :
- L'ajout d'une base de données locale
- L'ajout d'un service LLM local ou distant
NoteVous pouvez voir plus d'exemples d'applications GenAI conteneurisées dans les applications de démonstration GenAI Stack.
Ajouter une base de données locale
Vous pouvez utiliser des conteneurs pour mettre en place des services locaux, comme une base de données. Dans cette section, vous explorerez le service de base de données dans le fichier docker-compose.yaml
.
Pour exécuter le service de base de données :
-
Dans le répertoire du dépôt cloné, ouvrez le fichier
docker-compose.yaml
dans un IDE ou un éditeur de texte. -
Dans le fichier
docker-compose.yaml
, vous verrez ce qui suit :services: qdrant: image: qdrant/qdrant container_name: qdrant ports: - "6333:6333" volumes: - qdrant_data:/qdrant/storage
NotePour en savoir plus sur Qdrant, consultez l'Image Docker officielle de Qdrant.
-
Démarrez l'application. À l'intérieur du répertoire
winy
, exécutez la commande suivante dans un terminal.$ docker compose up --build
-
Accédez à l'application. Ouvrez un navigateur et affichez l'application à l'adresse http://localhost:8501. Vous devriez voir une simple application Streamlit.
-
Arrêtez l'application. Dans le terminal, appuyez sur
ctrl
+c
pour arrêter l'application.
Ajouter un service LLM local ou distant
L'application exemple prend en charge Ollama. Ce guide fournit des instructions pour les scénarios suivants :
- Exécuter Ollama dans un conteneur
- Exécuter Ollama en dehors d'un conteneur
Bien que toutes les plates-formes puissent utiliser l'un des scénarios précédents, les performances et le support GPU peuvent varier. Vous pouvez utiliser les directives suivantes pour vous aider à choisir l'option appropriée :
- Exécutez Ollama dans un conteneur si vous êtes sous Linux et que vous utilisez une installation native de Docker Engine, ou sous Windows 10/11 et que vous utilisez Docker Desktop, que vous disposez d'un GPU compatible CUDA et que votre système dispose d'au moins 8 Go de RAM.
- Exécutez Ollama en dehors d'un conteneur si vous exécutez Docker Desktop sur une machine Linux.
Choisissez l'une des options suivantes pour votre service LLM.
Lorsque vous exécutez Ollama dans un conteneur, vous devez disposer d'un GPU compatible CUDA. Bien que vous puissiez exécuter Ollama dans un conteneur sans GPU pris en charge, les performances peuvent ne pas être acceptables. Seuls Linux et Windows 11 prennent en charge l'accès GPU aux conteneurs.
Pour exécuter Ollama dans un conteneur et fournir un accès GPU :
-
Installez les prérequis.
- Pour Docker Engine sous Linux, installez le NVIDIA Container Toolkit.
- Pour Docker Desktop sous Windows 10/11, installez le dernier pilote NVIDIA et assurez-vous que vous utilisez le backend WSL2
-
Le fichier
docker-compose.yaml
contient déjà les instructions nécessaires. Dans vos propres applications, vous devrez ajouter le service Ollama dans votredocker-compose.yaml
. Voici ledocker-compose.yaml
mis à jour :ollama: image: ollama/ollama container_name: ollama ports: - "8000:8000" deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]
NotePour plus de détails sur les instructions Compose, consultez Activer l'accès GPU avec Docker Compose.
-
Une fois que le conteneur Ollama est opérationnel, il est possible d'utiliser le
download_model.sh
dans le dossiertools
avec cette commande :. ./download_model.sh <model-name>
Le téléchargement d'un modèle Ollama peut prendre plusieurs minutes.
Pour exécuter Ollama en dehors d'un conteneur :
-
Installez et exécutez Ollama sur votre machine hôte.
-
Téléchargez le modèle sur Ollama à l'aide de la commande suivante.
$ ollama pull llama2
-
Supprimez le service
ollama
dudocker-compose.yaml
et mettez à jour correctement les variables de connexion dans le servicewiny
:- OLLAMA=http://ollama:11434 + OLLAMA=<your-url>
Exécuter votre application RAG
À ce stade, vous avez les services suivants dans votre fichier Compose :
- Service de serveur pour votre application RAG principale
- Service de base de données pour stocker les vecteurs dans une base de données Qdrant
- (facultatif) Service Ollama pour exécuter le service LLM
Une fois l'application en cours d'exécution, ouvrez un navigateur et accédez à l'application à l'adresse http://localhost:8501.
Selon votre système et le service LLM que vous avez choisi, la réponse peut prendre plusieurs minutes.
Résumé
Dans cette section, vous avez appris à mettre en place un environnement de développement pour fournir l'accès à tous les services dont votre application GenAI a besoin.
Informations connexes :
- Référence Dockerfile
- Référence du fichier Compose
- Image Docker Ollama
- Applications de démonstration GenAI Stack
Prochaines étapes
Consultez des exemples d'autres applications GenAI dans les applications de démonstration GenAI Stack.