NVIDIA NIM
NVIDIA NIM 将模型封装为可在自有基础设施中运行的推理微服务。NVIDIA 也通过托管 API 端点提供部分 NIM。应用通过稳定的 AISIX 别名选择这些模型,同时由网关保存 NVIDIA API Key。
本指南配置 https://integrate.api.nvidia.com/v1 上共享的托管 LLM Chat API,以及发布兼容 /v1/embeddings 路由的 Embedding 模型。API Catalog 还包含使用模型特定路径、请求体或主机的检索、视觉生成、语音及其他 NIM。托管目录及可用模型会随时间变化,因此将此共享配置用于其他 NIM 系列前,请查看所选模型的 API 参考。
前提条件
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 On-Premises,请按照 AISIX Cloud 快速入门操作。如需申请 Hybrid Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装,或采用开源 AISIX 网关快速入门中的 Docker 部署方式。配置网关以加载声明式资源文件。
- 一个用于托管 NIM API 的 NVIDIA API Key,可从 build.nvidia.com 上的模型页面生成。
curl和jq。
使用 AISIX Cloud 配置
导出 AISIX Cloud 连接信息:
# AISIX_CP 是 Admin API 的基础 URL;需包含 /api 且末尾不加斜杠
# 本地 On-Premises 快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CLOUD_ADMIN_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
为 NVIDIA 支持的 Chat Completions 路由创建服务提供方密钥、模型别名和调用方 API Key。
NVIDIA 是社区目录服务提供方,其共享托管 LLM 端点接受 OpenAI Chat Completions 请求。AISIX 通过 openai 适配器连接,使用 Bearer Token 对上游请求进行身份认证,并将 NVIDIA API Root 用作 api_base。AISIX 不会注册 NVIDIA 特定的请求或响应重写。有关与标准 OpenAI 格式不同的字段,请参阅配置 NVIDIA 特定行为。
Dashboard 将 NVIDIA 归入 All providers (community),并将其传输协议兼容性标记为推定兼容,而非已验证。
创建服务提供方密钥
创建用于保存 NVIDIA 凭证和 API Root 的服务提供方密钥:
# 请替换为实际值
export NVIDIA_API_KEY="YOUR_PROVIDER_API_KEY"
PROVIDER_KEY_ID=$(curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "nvidia-prod",
"provider": "nvidia",
"api_key": "'"${NVIDIA_API_KEY}"'",
"api_base": "https://integrate.api.nvidia.com/v1",
"allowed_environments": ["'"${ENV_ID}"'"]
}' | jq -r '.provider_key.id')
echo "$PROVIDER_KEY_ID"
❶ provider 为 nvidia。AISIX Cloud Admin API 接受该值,因为 nvidia 是其缓存的 models.dev 目录 ID 之一;它会根据目录的社区默认规则分配 openai 适配器和 Bearer 身份认证。adapter 字段仅适用于 BYO 服务提供方密钥,因此不要在此设置。
❷ api_key 保存 NVIDIA API Key。NVIDIA 使用 HTTP Bearer 身份认证来认证托管 NIM API,这正是 openai 适配器已发送的认证方式。该值遵循服务提供方密钥中的凭证处理行为。
❸ api_base 为 https://integrate.api.nvidia.com/v1,这是 NVIDIA 为共享托管 LLM API 记录的 Root。Chat 路由以 POST https://integrate.api.nvidia.com/v1/chat/completions 的形式挂载在该 Root 下,而 AISIX 会向 api_base 追加 /chat/completions,因 此该值必须止于 /v1。AISIX 会移除粘贴进来的 /chat/completions 等端点后缀以及尾部斜杠,但应将 Root 本身视为约定,不要依赖这种修正行为。
不要把这个 Root 复用于所有 API Catalog 条目。例如,托管重排序使用 https://ai.api.nvidia.com 下的检索专用端点,视觉生成 NIM 也会发布其他路径。若所选模型不使用共享 LLM 或 Embeddings 路由,请按照该模型 API 参考中的准确 API Root 创建独立的服务提供方密钥。
对于 nvidia,该字段可选:models.dev 在其 api 字段中发布了相同 URL;省略该字段时,AISIX Cloud Admin API 会自动填充。示例中显式设置该字段,以便每个密钥所指向的 Root 在配置中清晰可见。
切勿让 nvidia 服务提供方密钥缺少已解析的 api_base。对于任何非 OpenAI 厂商,OpenAI 系列桥接不会回退到默认 OpenAI 主机,因此空的 Base URL 会在请求时产生上游配置错误,而不会将携带 NVIDIA 凭证的请求错误发送到其他厂商主机。
该命令将返回的服务提供方密钥 ID 保存到 PROVIDER_KEY_ID。