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.
Procedura
- Eseguire il provisioning di un cluster TKG con accelerazione GPU.
È possibile utilizzare uno dei workflow seguenti.
- Se si utilizza il comando kubectl, distribuire NVIDIA NIM.
- Recuperare i grafici di Helm con NVIDIA NIM.
- Distribuire NVIDIA NIM LLM, NVIDIA NeMo Retriever Embedding e NVIDIA NeMo Retriever Ranking Microservice.
- 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>
- 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
- 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
- Per accedere all'applicazione chatbot, eseguire il comando seguente per ottenere l'indirizzo IP esterno dell'applicazione.
kubectl -n multiturn-rag get service
- In un browser Web, aprire l'applicazione chat di esempio all'indirizzo http://application_external_ip:3001/converse.