NVIDIA Docs IQ-!!WIP!!
个人学习项目 吉奥皮诺.
我是一名谦逊的开发人员,试图通过构建来学习NVIDIA AI堆栈——NIM、Milvus、RAG、MCP 一些我自己也会觉得有用的东西。如果它对少数人也有用, 那已经是超出我预期的成功了。
根据以下许可 GPL-3.0 (参见 LICENSE).免费使用、修改和改编。 非常欢迎提供意见和建议——请参阅问题跟踪器。______________________________________________________________________
NVIDIA文档智能系统 ,具有用于IDE集成的scraper、聊天机器人UI和MCP服务器。
它做什么
- 刮痕 developer.nvidia.com(docs,API参考资料),具有相互尊重的节流
- RAG管道 使用NVIDIA堆栈:NIM嵌入、Milvus矢量存储、NIM重链器+LLM
- MCP服务器 与Cursor、Claude Desktop、Continue、Zed兼容——IDE中的NVIDIA文档
- 聊天机器人用户界面 (Gradio)用于文档的自然语言问答
- KAG层 (Neo4j知识图)计划用于第二阶段——见
docs/kag-layer.md
为什么这个项目
NVIDIA的文档数量庞大,分布在数十个子网站上。我发现自己总是 编码时在页面之间跳转。这是我试图减轻痛苦的尝试-- 首先是我自己,也许还有其他几个人。
该堆栈与官方NVIDIA RAG蓝图中使用的堆栈相似。主要添加了 MCP服务器, 我还没有在任何NVIDIA相邻项目中看到它——它让你的IDE查询 编写代码时直接执行文档。
技术栈
| 组件 | 技术 |
|---|---|
| 嵌入 | nvidia/llama-3.2-nv-embedqa-1b-v2 (NIM API) |
| 重新排名 | nvidia/llama-3.2-nv-rerankqa-1b-v2 (NIM API) |
LLM meta/llama-3.3-70b-instruct (NIM API/build.nvidia.com) | |
| Vector DB | Milvus+cuVS(Milvus Lite用于开发,独立Docker用于生产) |
| RAG框架 | 朗链+朗链nvidia ai端点 |
| Scraper | Playwright(异步Python)+PostgreSQL队列 |
| UI | Gradio |
| MCP | Python MCP SDK(FastMCP) |
硬件
- 图形处理器:RTX 3090(24GB VRAM)——用于Milvus cuVS GPU索引操作
- 随机存取存储器:16GB+(Milvus单机版)
- 存储:50GB用于引导语料库(CUDA+NIM+NeMo文档)
- AI模型不需要本地GPU:通过NIM API的所有嵌入/重新链接器/LLM(build.nvidia.com上的免费层)
快速开始
选项A——零Docker(建议首次运行)
用途 Milvus 精简版 (基于文件的矢量存储,不需要Docker)和 API 适用于所有AI模型(免费版 build.nvidia.com).
# 1. Install dependencies
pip install -r requirements.txt
playwright install chromium
# 2. Configure
cp .env.example .env
# Edit .env:
# NVIDIA_API_KEY=nvapi-... ← get from https://build.nvidia.com
# MILVUS_MODE=lite ← already the default
# 3. Start PostgreSQL only (needed for the crawler queue)
docker compose up -d postgres
# 4. Crawl the bootstrap corpus (CUDA docs — ~100 pages)
# DSN must match your .env (default from docker-compose: nvdociq:password)
python -m scraper.crawler_integration \
--scope https://docs.nvidia.com/cuda/ \
--max-pages 100 \
--dsn postgresql://nvdociq:password@localhost:5432/nvdociq
# 5. Ingest into Milvus Lite
python -m ingestion.pipeline --source data/raw/ --workers 4
# 6a. Launch chatbot UI
python ui/app.py # → http://localhost:7860
# 6b. OR use MCP server in Cursor / Claude Desktop
# Copy .cursor/mcp.json.example → .cursor/mcp.json and set your path
python -m mcp_server.server选项B——使用Docker的全栈(演示/生产)
用途 Milvus单机版 GPU加速(cuVS)用于更大的语料库。
# 1-2. Same as above
# 3. Start full infrastructure (Milvus + PostgreSQL)
docker compose up -d
# 4-6. Same as above, but set in .env:
# MILVUS_MODE=standaloneMCP服务器
MCP服务器公开了4个工具:
| 工具 | 说明 |
|---|---|
search_docs | 在所有索引的NVIDIA文档中进行语义搜索 |
api_reference | 按名称查找特定的API函数/类 |
code_examples | 查找任务或API使用模式的代码示例 |
explain | 从官方文档中获取一个概念的引用解释 |
加上2个提示: review_cuda_code 和 cuda_quickstart.
IDE设置——复制示例并填写路径:
开源代码 (opencode.json,忽略):
cp opencode.json.example opencode.json
# edit the two absolute paths inside光标 (.cursor/mcp.json,忽略):
cp .cursor/mcp.json.example .cursor/mcp.json
# edit the paths inside克劳德桌面版 (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"nvidia-docs": {
"command": "/absolute/path/to/nvidia-docs/.venv/bin/python",
"args": ["-m", "mcp_server.server"],
"cwd": "/absolute/path/to/nvidia-docs"
}
}
}注:opencode.json和.cursor/mcp.json包含绝对路径并且是gitignore。 已提交的示例如下opencode.json.example和.cursor/mcp.json.example.
项目结构
nvidia-docs/
├── config/
│ └── settings.py # Pydantic settings (loads .env)
├── scraper/
│ ├── crawler_integration.py # Playwright async crawler
│ └── storage/
│ ├── db.py # PostgreSQL scrape state
│ └── raw.py # Filesystem HTML storage
├── ingestion/
│ ├── parser.py # HTML → ParsedDocument (readability + markdownify)
│ ├── chunker.py # Code-aware chunking → Chunk objects
│ └── pipeline.py # Orchestrates parse → chunk → embed → Milvus
├── storage/
│ └── vector_store.py # MilvusVectorStore (upsert, search, count)
├── rag/
│ ├── retriever.py # embed → ANN search → rerank
│ ├── generator.py # prompt builder + NIM LLM streaming
│ └── pipeline.py # RAGPipeline with in-memory session memory
├── mcp_server/
│ ├── server.py # FastMCP server (stdio transport)
│ └── tools.py # Tool implementations (search, api_ref, etc.)
├── ui/
│ └── app.py # Gradio chatbot
├── docs/ # Design documentation
├── data/
│ ├── raw/ # Scraped HTML files
│ └── milvus_lite.db # Milvus Lite file (dev mode)
├── docker-compose.yml # Milvus + PostgreSQL
├── requirements.txt
└── .env.example文档
| 文件 | 内容 |
|---|---|
| docs/ide-setup.md | 如何将MCP服务器连接到OpenCode、Cursor、Claude Desktop |
| docs/architecture.md | 系统架构、数据流 |
| docs/roadmap.md | 发展阶段和现状 |
| docs/models.md | NIM模型、VRAM预算、本地推理选项 |
| docs/infra.md | Docker Compose、Milvus Lite与独立版 |
| docs/scraper.md | 抓取策略、限制、URL队列 |
| docs/introdon.md | HTML解析、代码感知分块 |
| docs/rag-pipeline.md | RAG管道详图 |
| docs/mcp-server.md | MCP工具、IDE集成 |
| docs/kag-layer.md | 第二阶段:Neo4j知识图谱 |
这不是什么
这不是竞争对手 NVIDIA RAG蓝图 或任何企业产品。这些是由工程师团队为生产用例构建的。 这是一个独立的学习项目,建立在同一个堆栈之上,针对单个开发人员 使用单个GPU,可以更轻松地浏览NVIDIA文档。
如果你在英伟达工作,在这里绊倒了:你好,请随时指出任何问题 我做错了,我在学习。
