# PR #23907 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Docs] add Nemotron 3 Nano Omni cookbook
- 合并时间：2026-04-29 01:24
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/23907

---

# PR #23907 分析报告

## 执行摘要
此 PR 为 NVIDIA Nemotron 3 Nano Omni 模型新增了一份完整的部署 cookbook，包含交互式命令行生成器（JSX snippet）和详细文档。同时调整了导航配置，使该 cookbook 成为 NVIDIA 分组的默认入口。整体为纯文档变更，无代码风险，建议合并。

## 功能与动机
从 sgl-cookbook 仓库 PR#258 迁移，目的是为 SGLang 用户提供 Nemotron 3 Nano Omni 多模态 MoE 模型的一站式部署指南。该模型支持文本、图像、视频、音频输入以及推理和工具调用，cookbook 涵盖了不同硬件（H100/B200/A100 等）、量化（BF16/FP8/NVFP4）和并行策略的配置。

## 实现拆解

1. **交互式部署 snippet**：新建 `docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx`，定义 `Nemotron3NanoOmniDeployment` 组件。通过 React state 管理用户选择，动态生成 `sglang serve` 命令。包含硬件和模型兼容性校验。
2. **cookbook 文档**：新建 `docs_new/cookbook/autoregressive/NVIDIA/Nemotron3-Nano-Omni.mdx`，引用上述 snippet，并提供模型架构拆解、部署步骤、API 调用示例（cURL、Python、Chat Completions）以及多模态输入说明（图片、音频、视频）。
3. **导航配置**：修改 `docs_new/docs.json`，在 NVIDIA 分组中插入新页面路径，并调整了 `intro.mdx` 和 `intro copy.mdx` 中的链接指向。

### `docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx`

核心交互组件，实现命令行生成逻辑，是 cookbook 的核心交互部分。

### 关键源码片段

### `docs_new/src/snippets/autoregressive/nemotron3-nano-omni-deployment.jsx`

核心交互组件，实现命令行生成逻辑，是 cookbook 的核心交互部分。

```jsx
// 组件定义了模型路径、选项配置和命令生成逻辑
const MODEL_PATHS = {
  reasoning: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-Reasoning',
  bf16: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-BF16',
  fp8: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-FP8',
  nvfp4: 'nvidia/Nemotron-3-Nano-Omni-30B-A3B-NVFP4',
};

// generateCommand 根据用户选择生成 sglang serve 命令
const generateCommand = (values) => {
  const { tp, kvcache, model, hardware } = values;
  // 校验：NVFP4 必须搭配 B200
  if (model === 'nvfp4' && hardware !== 'b200') {
    return '# NVFP4 requires Blackwell hardware. Please select B200.';
  }
  // 校验：L40S 必须 TP > 1
  if (hardware === 'l40s' && tp === '1') {
    return '# TP=1 is not supported on L40S for this model. Please use TP=2 or higher.';
  }
  const modelPath = MODEL_PATHS[model] || MODEL_PATHS.reasoning;
  let cmd = 'sglang serve \\n';
  cmd += `  --model-path ${modelPath} \\n`;
  cmd += '  --host 0.0.0.0 \
  --port 30000 \
  --trust-remote-code \\n';
  cmd += `  --tp ${tp} \\n`;
  if (kvcache && kvcache !== 'none') {
    cmd += `  --kv-cache-dtype ${kvcache} \\n`;
  }
  // 动态追加 commandRule（如推理解析器和工具调用解析器）
  for (const [key, option] of Object.entries(options)) {
    if (option.commandRule) {
      const rule = option.commandRule(values[key]);
      if (rule) cmd += `  ${rule} \\n`;
    }
  }
  // 去除末尾的反斜杠和换行
  cmd = cmd.trimEnd();
  if (cmd.endsWith('\\')) cmd = cmd.slice(0, -1).trimEnd();
  return cmd;
};

```

## 评论区精华
无 review 讨论。

## 风险与影响
- **风险**：几乎为零。配置变更可能影响本地构建的导航顺序，但已测试通过。
- **影响**：降低了 Nemotron 3 Nano Omni 用户的部署复杂度，对团队增加了文档维护责任。

## 关联脉络
此 PR 源自 sgl-cookbook 仓库，是 SGLang 文档体系的一部分。近期有其他模型 cookbook（如 DeepSeek-V4）和文档优化 PR，表明团队正在系统性地完善新模型支持文档。