⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Conteneuriser une application RAG

Aperçu

Cette section vous guide à travers la conteneurisation d'une application RAG à l'aide de Docker.

Note

Vous pouvez voir plus d'exemples d'applications GenAI conteneurisées dans les applications de démonstration GenAI Stack.

Obtenir l'application exemple

L'application exemple utilisée dans ce guide est un exemple d'application RAG, composée de trois composants principaux, qui sont les éléments de base de toute application RAG. Un grand modèle de langage (LLM) hébergé quelque part, dans ce cas, il est hébergé dans un conteneur et servi via Ollama. Une base de données vectorielle, Qdrant, pour stocker les plongements (embeddings) des données locales, et une application web, utilisant Streamlit pour offrir la meilleure expérience utilisateur à l'utilisateur.

Clonez l'application exemple. Ouvrez un terminal, placez-vous dans le répertoire de votre choix et exécutez la commande suivante pour cloner le dépôt :

$ git clone https://github.com/mfranzon/winy.git

Vous devriez maintenant avoir les fichiers suivants dans votre répertoire winy.

├── winy/
│ ├── .gitignore
│ ├── app/
│ │ ├── main.py
│ │ ├── Dockerfile
| | └── requirements.txt
│ ├── tools/
│ │ ├── create_db.py
│ │ ├── create_embeddings.py
│ │ ├── requirements.txt
│ │ ├── test.py
| | └── download_model.sh
│ ├── docker-compose.yaml
│ ├── wine_database.db
│ ├── LICENSE
│ └── README.md

Conteneurisation de votre application : Les bases

La conteneurisation d'une application consiste à l'empaqueter avec ses dépendances dans un conteneur, ce qui garantit la cohérence entre les différents environnements. Voici ce dont vous avez besoin pour conteneuriser une application comme Winy :

  1. Dockerfile : Un Dockerfile qui contient des instructions sur la façon de construire une image Docker pour votre application. Il spécifie l'image de base, les dépendances, les fichiers de configuration et la commande pour exécuter votre application.

  2. Fichier Docker Compose : Docker Compose est un outil pour définir et exécuter des applications Docker multi-conteneurs. Un fichier Compose vous permet de configurer les services, les réseaux et les volumes de votre application dans un seul fichier.

Exécuter l'application

À l'intérieur du répertoire winy, exécutez la commande suivante dans un terminal.

$ docker compose up --build

Docker construit et exécute votre application. Selon votre connexion réseau, le téléchargement de toutes les dépendances peut prendre plusieurs minutes. Vous verrez un message comme celui-ci dans le terminal lorsque l'application sera en cours d'exécution.

server-1  |   You can now view your Streamlit app in your browser.
server-1  |
server-1  |   URL: http://0.0.0.0:8501
server-1  |

Ouvrez un navigateur et affichez l'application à l'adresse http://localhost:8501. Vous devriez voir une simple application Streamlit.

L'application nécessite un service de base de données Qdrant et un service LLM pour fonctionner correctement. Si vous avez accès à des services que vous avez exécutés en dehors de Docker, spécifiez les informations de connexion dans le docker-compose.yaml.

winy:
  build:
    context: ./app
    dockerfile: Dockerfile
  environment:
    - QDRANT_CLIENT=http://qdrant:6333 # Spécifie l'URL de la base de données qdrant
    - OLLAMA=http://ollama:11434 # Spécifie l'URL du service ollama
  container_name: winy
  ports:
    - "8501:8501"
  depends_on:
    - qdrant
    - ollama

Si les services ne sont pas en cours d'exécution, continuez avec ce guide pour apprendre comment vous pouvez exécuter tout ou partie de ces services avec Docker. N'oubliez pas que le service ollama est vide ; il ne contient aucun modèle. Pour cette raison, vous devez télécharger un modèle avant de commencer à utiliser l'application RAG. Toutes les instructions se trouvent dans la page suivante.

Dans le terminal, appuyez sur ctrl+c pour arrêter l'application.

Résumé

Dans cette section, vous avez appris comment conteneuriser et exécuter votre application RAG à l'aide de Docker.

Prochaines étapes

Dans la section suivante, vous apprendrez à configurer correctement l'application avec votre modèle LLM préféré, entièrement en local, à l'aide de Docker.