RAG蓝图Skill rag-blueprint

NVIDIA RAG 蓝图(RAG Blueprint)操作技能,覆盖从部署、配置、故障排除到关闭的完整生命周期管理。支持Docker/Compose、Kubernetes/Helm及Python库模式,可处理RAG相关各种功能与服务,包括Agentic RAG、VLM、NeMo护栏、查询重写、模型与检索配置、数据摄取、可观测性、摘要与推理等。特点为自主环境检测、意图路由和标准化的运维流程。关键词:RAG、NVIDIA、蓝图、部署、配置、故障排查、运维、检索增强生成

检索增强(RAG) 0 次安装 1 次浏览 更新于 9/7/2026
名称 rag-blueprint
版本 “2.6.0”
描述 “NVIDIA RAG 蓝图——部署、配置、故障排除和管理。处理任何RAG操作:部署、安装、启动、启用、禁用、切换、更改、配置、故障排除、调试、修复、关闭、停止或拆除任何RAG功能或服务(Agentic RAG、VLM、护栏、查询重写、模型、搜索、摄取、可观测性、摘要、推理等)。”
开源协议 Apache-2.0 compatibility: >- NVIDIA RAG 蓝图仓库检出;用于部署的Docker/Compose或Kubernetes/Helm; 用于库工作流的Python 3.11+;用于自托管NIM服务的NVIDIA GPU工具。 metadata:
作者 “NVIDIA RAG foundational-rag-dev@exchange.nvidia.com” github-url: “https://github.com/NVIDIA-AI-Blueprints/rag” endpoint-openapi-schemas: - docs/api_reference/openapi_schema_rag_server.json - docs/api_reference/openapi_schema_ingestor_server.json argument-hint: 部署RAG

NVIDIA RAG 蓝图

用途

使用此技能进行NVIDIA RAG蓝图操作:在Docker、Helm和库部署中执行部署、配置、故障排除、关闭和功能管理。

说明

  1. 将用户请求与下面的意图路由表匹配。
  2. 在进行更改前阅读所引用的手册。
  3. 以仓库文档和部署配置文件为事实依据。
  4. 更改后验证受影响的服务或工作流。

先决条件

  • NVIDIA RAG 蓝图仓库检出。
  • 用于部署的Docker/Compose或Kubernetes/Helm。
  • 用于库工作流的Python 3.11+。
  • 用于自托管NIM服务的NVIDIA GPU工具。

自主性原则

  • 自动检测一切:GPU、显存、驱动、Docker、CUDA、磁盘、操作系统、端口、现有服务、NGC密钥、仓库状态。
  • 如果可以用命令检查,就直接检查——不要询问用户。
  • 仅当需要用户操作时才提问:提供API密钥、确认删除数据或在同等有效的选项之间选择。
  • 分析完成后,路由到正确的工作流并执行。

意图检测

确定用户想要什么并立即路由:

用户意图 操作
部署、安装、设置、启动RAG 阅读并遵循 references/deploy.md
配置、启用、更改、切换功能 使用下面的配置部分
故障排除、调试、修复、错误、不健康 阅读并遵循 references/troubleshoot.md
停止、关闭、拆除、清理 阅读并遵循 references/shutdown.md

如果意图不明确,根据上下文推断(例如,“RAG不工作”→故障排除;“让RAG运行”→部署)。只有真正不清楚时才提问。


配置

需要正在运行的RAG部署。如果服务未运行,先通过 references/deploy.md 部署。

将用户的请求与参考文件匹配,然后阅读并遵循它:

功能关键词 参考
VLM、VLM嵌入、图像字幕 references/configure/vlm.md
NeMo 护栏 references/configure/guardrails.md
Agentic RAG、规划/执行代理、Agentic流式传输、阶段事件 references/configure/agentic-rag.md
查询重写、分解、多轮会话 references/configure/query-and-conversation.md
摄取(纯文本、音频、Nemotron Parse、OCR、批处理CLI、NV-Ingest、卷挂载、性能) references/configure/ingestion.md
搜索、检索、混合搜索、多集合、元数据、过滤器、Elasticsearch过滤器、重排序器、topK、准确度/性能 references/configure/search-and-retrieval.md
LLM/嵌入/排序模型更改、向量数据库、Milvus/Elasticsearch认证、服务密钥、模型配置文件、端口/GPU references/configure/models-and-infrastructure.md
推理、思考模式、reasoning_content、自我反思、提示语、生成参数(tokens、temperature、citations)、请求级LLM参数 references/configure/reasoning-and-generation.md
摘要 references/configure/summarization.md
可观测性(追踪、Zipkin、Grafana、Prometheus) references/configure/observability.md
多模态查询(图像+文本) references/configure/multimodal-query.md
数据目录(集合/文档元数据) references/configure/data-catalog.md
用户界面(UI设置、推理面板、元数据过滤器) references/configure/user-interface.md
API参考(端点、模式) references/configure/api-reference.md
评估(RAGAS指标) references/configure/evaluation.md(及技能 rag-eval
MCP服务器与客户端、代理工具包 references/configure/mcp.md
迁移(版本升级) references/configure/migration.md
Notebooks(设置和目录) references/configure/notebooks.md

配置流程

  1. 将用户的请求与上表中的参考文件匹配。

  2. 检测正在运行的服务:

echo "=== NIM ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(nim-llm|nemotron-(vlm-)?embedding|nemotron-ranking|nemotron-vlm|nemotron-3-nano-omni|page-elements|graphic-elements|table-structure|nemotron-ocr)' || echo "NO_LOCAL_NIMS"; echo "=== RAG ===" && docker ps --format '{{.Names}}' 2>/dev/null | grep -iE '(rag-server|ingestor-server|elasticsearch|milvus|seaweedfs|lancedb)' || 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"
  1. 使用下表确定平台、部署类型以及配置位置:
本地NIM在运行? RAG服务在运行? 部署类型 配置位置
是(Docker) 任意 自托管 deploy/compose/.env
是(Docker) NVIDIA托管 deploy/compose/nvdev.env
是(K8s Pod) 任意 自托管 values.yaml(NIM部分)
是(K8s Pod) NVIDIA托管 values.yaml(envVars)
库进程 库模式 notebooks/config.yaml
未运行 先通过 references/deploy.md 部署

告知用户您的检测结果并要求确认。示例:“我看到本地NIM容器正在运行(nim-llm-ms、nemotron-vlm-embedding-ms)——这是一个自托管部署。配置文件是 deploy/compose/.env。对吗?”

  1. 在进行任何更改前检查当前功能状态——读取步骤3中的配置位置,然后与运行中的服务交叉检查:
  • 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

如果配置文件与运行服务不一致,告知用户该服务配置已过期,需要重启。

  1. 如果该功能需要额外GPU,请根据硬件限制检查可用性(见下文):
nvidia-smi --query-gpu=index,name,memory.total,memory.used --format=csv,noheader 2>/dev/null || echo "NO_GPU"
  1. 阅读参考文件并应用更改:
  • Docker:编辑环境文件(取消注释以启用,重新注释以禁用——环境文件是事实依据)。然后重启受影响的服务:
source <env-file> && docker compose -f deploy/compose/<compose-file> up -d
服务 Compose文件
rag-server docker-compose-rag-server.yaml
ingestor-server docker-compose-ingestor-server.yaml
Elasticsearch、Milvus、etcd、SeaweedFS vectordb.yaml
NIM容器(LLM、嵌入、排序、VLM、OCR、解析、音频、提取) nims.yaml
护栏 docker-compose-nemo-guardrails.yaml
可观测性(Grafana、Prometheus、Zipkin) observability.yaml
  • Helm:编辑 values.yaml,然后升级:helm upgrade rag <chart> -n rag -f values.yaml
  • 库模式:编辑 notebooks/config.yaml,然后重启Python进程
  1. 验证:
  • 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
  • 库模式:curl -s http://localhost:8081/v1/health 2>/dev/null | head -1
  1. 如果重启失败,阅读 references/troubleshoot.md。如果请求多个功能,对每个功能从第1步重复。

示例

  • “部署RAG” -> 路由到 references/deploy.md
  • “启用VLM” -> 路由到 references/configure/vlm.md
  • “RAG不健康” -> 路由到 references/troubleshoot.md
  • “停止RAG” -> 路由到 references/shutdown.md

限制

  • 操作指南仅适用于此RAG蓝图仓库。
  • 实时部署更改需要正在运行的Docker、Helm或库目标。
  • 必须由用户环境提供诸如 NGC_API_KEY 之类的机密。

故障排除

错误/信号 处理方法
服务未运行 在配置功能前遵循 references/deploy.md
重启或健康检查失败 遵循 references/troubleshoot.md
用户请求拆除 遵循 references/shutdown.md 并确认破坏性清理。

当用户说“配置”但没有具体说明时

运行上面的步骤2-3,然后阅读识别出的配置文件,列出当前启用的内容:

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

总结正在运行和启用的内容,然后询问要更改哪个功能。


硬件限制

阅读 docs/support-matrix.md 了解每种部署模式的当前GPU要求。 阅读 docs/service-port-gpu-reference.md 了解端口映射和GPU分配。

GPU 功能限制
B200 无VLM、无护栏、无Nemotron Parse。可能需要多GPU LLM(LLM_MS_GPU_ID)。
RTX PRO 6000 无Nemotron Parse。Helm上无音频。