rag-blueprint

Par nvidia · skills

Blueprint RAG NVIDIA — déployer, configurer, dépanner et gérer. Prend en charge toute action RAG : déployer, installer, démarrer, activer, désactiver, basculer, modifier, configurer, dépanner, déboguer, corriger, arrêter, stopper ou supprimer n'importe quelle fonctionnalité ou service RAG (VLM, guardrails, réécriture de requêtes, modèles, recherche, ingestion, observabilité, résumé, etc.).

npx skills add https://github.com/nvidia/skills --skill rag-blueprint

NVIDIA RAG Blueprint

Principes d'Autonomie

  • Détecter automatiquement tout : GPU, VRAM, drivers, Docker, CUDA, disque, OS, ports, services existants, clé NGC, état du repo.
  • Si c'est vérifiable par une commande, vérifier — ne pas poser la question à l'utilisateur.
  • Poser des questions uniquement quand une action utilisateur est nécessaire : fournir une clé API, confirmer une suppression de données, ou choisir entre des options équivalentes.
  • Une fois l'analyse terminée, router vers le bon workflow et exécuter.

Détection d'Intention

Déterminer ce que l'utilisateur veut et router immédiatement :

Intention utilisateur Action
Déployer, installer, configurer, démarrer RAG Lire et suivre references/deploy.md
Configurer, activer, changer, basculer une fonctionnalité Utiliser la section Configurer ci-dessous
Dépanner, déboguer, corriger, erreur, non-sain Lire et suivre references/troubleshoot.md
Arrêter, éteindre, démonter, nettoyer Lire et suivre references/shutdown.md

Si l'intention est ambiguë, inférer du contexte (ex. : « RAG ne fonctionne pas » → dépanner ; « faire fonctionner RAG » → déployer). Poser une question uniquement si véritablement peu clair.


Configurer

Nécessite un déploiement RAG en cours d'exécution. Si les services ne tournent pas, déployer d'abord via references/deploy.md.

Faire correspondre la demande de l'utilisateur à un fichier de référence, puis le lire et le suivre :

Mots-clés Fonctionnalité Référence
VLM, embeddings VLM, description d'image references/configure/vlm.md
NeMo Guardrails references/configure/guardrails.md
Réécriture de requête, décomposition, multi-tour references/configure/query-and-conversation.md
Ingestion (texte seul, audio, Nemotron Parse, OCR, CLI batch, NV-Ingest, montage de volume, performance) references/configure/ingestion.md
Recherche, récupération, recherche hybride, multi-collection, métadonnées, filtres, rérangement, topK, précision/performance references/configure/search-and-retrieval.md
Changements de modèle LLM/embedding/classement, vecteur DB, auth Milvus/Elasticsearch, clés de service, profils de modèle, ports/GPU references/configure/models-and-infrastructure.md
Raisonnement, auto-réflexion, prompts, paramètres de génération (tokens, température, citations), paramètres LLM par requête references/configure/reasoning-and-generation.md
Résumé references/configure/summarization.md
Observabilité (tracing, Zipkin, Grafana, Prometheus) references/configure/observability.md
Requête multimodale (image + texte) references/configure/multimodal-query.md
Catalogue de données (métadonnées collection/document) references/configure/data-catalog.md
Interface utilisateur (paramètres UI) references/configure/user-interface.md
Référence API (endpoints, schémas) references/configure/api-reference.md
Évaluation (métriques RAGAS) references/configure/evaluation.md
Serveur & client MCP, agent toolkit references/configure/mcp.md
Migration (mises à jour de version) references/configure/migration.md
Notebooks (setup et catalogue) references/configure/notebooks.md

Flux Configurer

  1. Faire correspondre la demande de l'utilisateur à un fichier de référence du tableau ci-dessus.

  2. Détecter ce qui tourne :

    echo "=== NIM ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(nim-llm|nemoretriever-embedding|nemoretriever-ranking|nemo-vlm|nemotron-vlm)' || echo "NO_LOCAL_NIMS"; echo "=== RAG ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(rag-server|ingestor-server|milvus)' || echo "NO_DOCKER_RAG"; echo "=== K8S ===" && kubectl get pods -n rag 2>/dev/null | head -5 || echo "NO_K8S"; echo "=== LIBRARY ===" && ps aux 2>/dev/null | grep -E '(nvidia_rag|uvicorn.*rag)' | grep -v grep || echo "NO_LIBRARY"
  3. Utiliser ce tableau pour déterminer la plateforme, le type de déploiement et où se trouve la config :

    NIMs locaux en cours d'exécution ? Services RAG en cours d'exécution ? Type de déploiement Localisation Config
    Oui (Docker) N'importe lequel Auto-hébergé deploy/compose/.env
    Non Oui (Docker) NVIDIA-hébergé deploy/compose/nvdev.env
    Oui (Pods K8s) N'importe lequel Auto-hébergé values.yaml (sections NIM)
    Non Oui (Pods K8s) NVIDIA-hébergé values.yaml (envVars)
    Processus Library Mode Library notebooks/config.yaml
    Non Non Pas en cours d'exécution Déployer d'abord via references/deploy.md

    Dire à l'utilisateur ce qui a été détecté et demander de confirmer. Exemple : « Je vois des conteneurs NIM locaux en cours d'exécution (nim-llm-ms, nemoretriever-embedding-ms) — c'est un déploiement auto-hébergé. Le fichier config est deploy/compose/.env. C'est correct ? »

  4. Vérifier l'état actuel de la fonctionnalité avant de changer quoi que ce soit — lire la localisation config de l'étape 3, puis croiser-vérifier le service en direct :

    • Docker : docker exec rag-server env 2>/dev/null | grep -E "<VAR_NAME>"
    • Helm : kubectl get pod -n rag -l app=rag-server -o jsonpath='{.items[0].spec.containers[0].env}' 2>/dev/null

    Si le fichier config et le service en direct ne concordent pas, dire à l'utilisateur que le service a une config périmée et aura besoin d'un redémarrage.

  5. Si la fonctionnalité a besoin de GPUs supplémentaires, vérifier la disponibilité par rapport aux restrictions matérielles (voir ci-dessous) :

    nvidia-smi --query-gpu=index,name,memory.total,memory.used --format=csv,noheader 2>/dev/null || echo "NO_GPU"
  6. Lire le fichier de référence et appliquer les changements :

    • Docker : éditer le fichier env (décommenter pour activer, re-commenter pour désactiver — le fichier env est la source de vérité). Puis redémarrer le service affecté :
      source <env-file> && docker compose -f deploy/compose/<compose-file> up -d
      Service Fichier Compose
      rag-server docker-compose-rag-server.yaml
      ingestor-server docker-compose-ingestor-server.yaml
      milvus, etcd, minio vectordb.yaml
      Conteneurs NIM (LLM, embedding, classement, VLM, OCR) nims.yaml
      guardrails docker-compose-nemo-guardrails.yaml
      observabilité (Grafana, Prometheus, Zipkin) observability.yaml
    • Helm : éditer values.yaml, puis upgrader : helm upgrade rag <chart> -n rag -f values.yaml
    • Library : éditer notebooks/config.yaml, puis redémarrer le processus Python
  7. Vérifier :

    • Docker : docker ps --format "table {{.Names}}\t{{.Status}}" | head -20; curl -s http://localhost:8081/v1/health?check_dependencies=true 2>/dev/null | head -1
    • Helm : kubectl get pods -n rag; kubectl rollout status deployment/rag-server -n rag --timeout=120s
    • Library : curl -s http://localhost:8081/v1/health 2>/dev/null | head -1
  8. Si le redémarrage échoue, lire references/troubleshoot.md. Si plusieurs fonctionnalités sont demandées, répéter à partir de l'étape 1 pour chacune.

Quand l'Utilisateur Dit « Configurer » Sans Spécificités

Exécuter les étapes 2–3 ci-dessus, puis lire le fichier config identifié pour lister ce qui est actuellement activé :

grep -E "^(export )?(ENABLE_|APP_)" <config-file> 2>/dev/null | sort

Résumer ce qui tourne et est activé, puis demander quelle fonctionnalité changer.


Restrictions Matérielles

Lire docs/support-matrix.md pour les exigences GPU actuelles par mode de déploiement. Lire docs/service-port-gpu-reference.md pour les mappages de ports et attributions GPU.

GPU Restrictions Fonctionnalité
B200 Pas de VLM, Pas de Guardrails, Pas de Nemotron Parse. Peut nécessiter LLM multi-GPU (LLM_MS_GPU_ID).
RTX PRO 6000 Pas de Nemotron Parse. Pas d'Audio sur Helm.

Skills similaires