In qualità di tecnico DevOps, in un cluster TKG in un supervisore è possibile distribuire un carico di lavoro RAG basato sull'applicazione a più turni di esempio RAG di NVIDIA che utilizza un database PostgreSQL pgvector gestito da VMware Data Services Manager.

Prerequisiti

Procedura

  1. Eseguire il provisioning di un cluster TKG con accelerazione GPU.
    È possibile utilizzare uno dei workflow seguenti.
    Workflow di provisioning Passaggi
    Utilizzando un elemento catalogo in VMware Aria Automation Distribuzione di un cluster RAG con un database vettore mediante un elemento del catalogo self-service in VMware Aria Automation.
    Utilizzando il comando kubectl
    1. Eseguire il provisioning di un cluster TKG con accelerazione GPU utilizzando il comando kubectl.
  2. Se si utilizza il comando kubectl, distribuire NVIDIA NIM.
    1. Recuperare i grafici di Helm con NVIDIA NIM.
    2. Distribuire NVIDIA NIM LLM, NVIDIA NeMo Retriever Embedding e NVIDIA NeMo Retriever Ranking Microservice.
  3. Recuperare il grafico Helm per il chatbot a più turni di esempio.
    helm fetch https://helm.ngc.nvidia.com/nvidia/aiworkflows/charts/rag-app-multiturn-chatbot-24.08.tgz --username='$oauthtoken' --password=<YOUR API KEY>
    
  4. Creare un file YAML con valori personalizzati per la configurazione del chatbot con il database PostgreSQL pgvector.
    Per un database pgvector con una stringa di connessione postgres://pgvector_db_admin:encoded_pgvector_db_admin_password@pgvector_db_ip_address:5432/pgvector_db_name, preparare il file app_values.yaml seguente.

    Per fornire un IP esterno per l'applicazione della chat di esempio, nel file YAML impostare frontend.service.type su loadBalancer.

    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. Distribuire il chatbot a più turni in uno spazio dei nomi utilizzando il file dei valori personalizzati.
    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. Per accedere all'applicazione chatbot, eseguire il comando seguente per ottenere l'indirizzo IP esterno dell'applicazione.
    kubectl -n multiturn-rag get service
  7. In un browser Web, aprire l'applicazione chat di esempio all'indirizzo http://application_external_ip:3001/converse.