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

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
Note

Vous 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 :

  1. Dans le répertoire du dépôt cloné, ouvrez le fichier docker-compose.yaml dans un IDE ou un éditeur de texte.

  2. 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
    Note

    Pour en savoir plus sur Qdrant, consultez l'Image Docker officielle de Qdrant.

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

    $ docker compose up --build
    
  4. Accédez à l'application. Ouvrez un navigateur et affichez l'application à l'adresse http://localhost:8501. Vous devriez voir une simple application Streamlit.

  5. 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 :

  1. Installez les prérequis.

  2. Le fichier docker-compose.yaml contient déjà les instructions nécessaires. Dans vos propres applications, vous devrez ajouter le service Ollama dans votre docker-compose.yaml. Voici le docker-compose.yaml mis à jour :

    ollama:
      image: ollama/ollama
      container_name: ollama
      ports:
        - "8000:8000"
      deploy:
        resources:
          reservations:
            devices:
              - driver: nvidia
                count: 1
                capabilities: [gpu]
    Note

    Pour plus de détails sur les instructions Compose, consultez Activer l'accès GPU avec Docker Compose.

  3. Une fois que le conteneur Ollama est opérationnel, il est possible d'utiliser le download_model.sh dans le dossier tools 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 :

  1. Installez et exécutez Ollama sur votre machine hôte.

  2. Téléchargez le modèle sur Ollama à l'aide de la commande suivante.

    $ ollama pull llama2
    
  3. Supprimez le service ollama du docker-compose.yaml et mettez à jour correctement les variables de connexion dans le service winy :

    - 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 :

Prochaines étapes

Consultez des exemples d'autres applications GenAI dans les applications de démonstration GenAI Stack.