En tant qu'ingénieur DevOps, sur un cluster TKG dans un superviseur, vous pouvez déployer une charge de travail RAG basée sur l'exemple d'application multitour RAG de NVIDIA qui utilise une base de données PostgreSQL pgvector gérée par VMware Data Services Manager.

Conditions préalables

Procédure

  1. Provisionnez un cluster TKG accéléré par GPU.
    Vous pouvez utiliser l'un des workflows suivants.
    Workflow de provisionnement Étapes
    En utilisant un élément de catalogue dans VMware Aria Automation Déployer un cluster RAG avec une base de données vectorielle à l'aide d'un élément de catalogue en libre-service dans VMware Aria Automation.
    En utilisant la commande kubectl
    1. Provisionnez un cluster TKG accéléré par GPU à l'aide de la commande kubectl.
  2. Si vous utilisez la commande kubectl, déployez les modèles NVIDIA NIM.
    1. Extrayez les graphiques Helm avec les modèles NVIDIA NIM.
      Reportez-vous à la section RAG multitour.
    2. Déployez les grands modèles de langage (LLM, Large Language Model) NVIDIA NIM, l'intégration de NVIDIA NeMo Retriever et le microservice de classement NVIDIA NeMo Retriever.
      Reportez-vous à la section RAG multitour.
  3. Extrayez le graphique Helm pour l'exemple d'agent conversationnel multitour.
    helm fetch https://helm.ngc.nvidia.com/nvidia/aiworkflows/charts/rag-app-multiturn-chatbot-24.08.tgz --username='$oauthtoken' --password=<YOUR API KEY>
    
  4. Créez un fichier YAML avec des valeurs personnalisées pour configurer l'agent conversationnel avec la base de données PostgreSQL pgvector.
    Pour une base de données pgvector avec une chaîne de connexion postgres://pgvector_db_admin:encoded_pgvector_db_admin_password@pgvector_db_ip_address:5432/pgvector_db_name, préparez le fichier app_values.yaml suivant.

    Afin de fournir une adresse IP externe pour l'exemple d'application de conversation, définissez frontend.service.type sur loadBalancer dans le fichier YAML.

    query:
      env:
        APP_VECTORSTORE_URL: "pgvector_db_ip_address:5432"
        APP_VECTORSTORE_NAME: "pgvector"
        POSTGRES_PASSWORD: "encoded_pgvector_db_admin_password"
        POSTGRES_USER: "pgvector_db_admin"
        POSTGRES_DB: "pgvector_db_name"
        APP_EMBEDDINGS_MODELNAME: "nvidia/nv-embedqa-e5-v5"
    frontend:
      service:
        type: LoadBalancer
  5. Déployez l'agent conversationnel multitour dans un espace de noms à l'aide du fichier de valeurs personnalisé.
    kubectl create namespace multiturn-rag
    kubectl label --overwrite ns multiturn-rag pod-security.kubernetes.io/enforce=privileged
     
    export NGC_CLI_API_KEY="<NGC-API-key>"
     
    helm install multiturn-rag rag-app-multiturn-chatbot-24.08.tgz -n multiturn-rag --set imagePullSecret.password=$NGC_CLI_API_KEY -f ./app_values.yaml
  6. Pour accéder à l'application d'agent conversationnel, exécutez la commande suivante pour obtenir l'adresse IP externe de l'application.
    kubectl -n multiturn-rag get service
  7. Dans un navigateur Web, ouvrez l'exemple d'application d'agent conversationnel à l'adresse http://application_external_ip:3001/converse.