metadata
title: NVIDIA NIM 响应网关
sdk: docker
app_port: 7860
pinned: false
NVIDIA NIM 响应网关
这是一个面向公开使用的 NVIDIA NIM 兼容网关,同时支持 OpenAI /v1/responses 和 Anthropic /v1/messages 风格请求。
它不在本地保存任何用户的 NIM API Key。用户调用本项目时,需要自己通过请求头携带 NIM Key,网关只负责协议转换、性能优化、聚合统计和官方模型目录展示。
主要能力
- 将 NVIDIA 官方
POST /v1/chat/completions转换为 OpenAI 风格的POST /v1/responses - 将 NVIDIA 官方
POST /v1/chat/completions转换为 Anthropic 风格的POST /v1/messages - 支持 tool calling / function calling
- 支持 Anthropic
tools/tool_choice/tool_result以及 Claude Code 常见的客户端工具调用形态 - 支持
function_call_output回灌 - 支持
previous_response_id对话续写 - 对
/v1/responses和/v1/responses/{response_id}使用用户自带的 NIM Key 做鉴权与上游转发 - 对
/v1/messages使用用户自带的 NIM Key 做鉴权与上游转发,并支持 Anthropic SSE 风格流式事件 /v1/models直接返回来自 NVIDIA 官方/v1/models的同步结果,保持 OpenAI 风格结构/为白色主题的模型健康度页面,按 10 分钟成功率矩阵展示 MODEL_LIST 中的模型/model_list为独立的白色主题官方模型列表页面,支持按提供商筛选模型- 模型提供商卡片为固定高度,避免模型较多时卡片过长
- 使用共享 HTTP 连接池、SQLite WAL 和异步线程化落库来增强高并发场景下的转发性能
用户如何调用
对于 POST /v1/responses 和 POST /v1/messages,请通过下面任意一种方式传入你自己的 NVIDIA NIM Key:
Authorization: Bearer <你的 NIM Key>X-API-Key: <你的 NIM Key>
网关不会把原始 Key 持久化到数据库中,只会在内存中用于当前请求,并对响应链路使用 Key 哈希做隔离。
官方模型目录同步
项目会定时从官方接口拉取模型列表:
https://integrate.api.nvidia.com/v1/models
同步后的模型目录同时用于:
GET /v1/modelsGET /modelsGET /api/catalog
页面与接口
页面:
GET /:模型健康度页面GET /model_list:官方模型列表页面
前端数据接口:
GET /api/dashboardGET /api/catalog
兼容接口:
POST /v1/responsesPOST /v1/messagesGET /v1/responses/{response_id}GET /v1/modelsGET /models
环境变量
NVIDIA_API_BASE:默认https://integrate.api.nvidia.com/v1MODEL_LIST:健康度页面监控模型列表,逗号分隔MODEL_SYNC_INTERVAL_MINUTES:官方模型目录同步周期,默认30PUBLIC_HISTORY_BUCKETS:健康页展示最近多少个 10 分钟时间片,默认6REQUEST_TIMEOUT_SECONDS:上游请求超时,默认90MAX_UPSTREAM_CONNECTIONS:共享连接池最大连接数,默认512MAX_KEEPALIVE_CONNECTIONS:共享连接池最大 keep-alive 连接数,默认128DATABASE_PATH:默认./data.sqlite3
本地验证
我已经完成两层本地联调:
Mock 联调:
- 通过
scripts/local_smoke_test.py验证了协议转换、官方模型同步、用户 Key 鉴权、previous_response_id、tool call、健康页数据接口、模型页数据接口和两个独立页面路由。
- 通过
真实上游联调:
- 通过
scripts/live_e2e_validation.py使用提供的测试 NIM Key,真实调用了 NVIDIA 官方模型目录和实际模型响应。 - 实测结果:
live_gateway_ok,并成功通过z-ai/glm5得到OK。
- 通过
部署到 Hugging Face Space
- 新建 Hugging Face Space,SDK 选择
Docker - 将
hf_space目录内的内容作为 Space 根目录上传 - 按需配置
MODEL_LIST等环境变量 - 启动后即可直接公开使用
参考资料
- OpenAI Responses API: https://platform.openai.com/docs/guides/responses-vs-chat-completions
- OpenAI Function Calling: https://platform.openai.com/docs/guides/function-calling
- Anthropic Messages API: https://docs.anthropic.com/en/api/messages
- Anthropic Tool Use: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview
- NVIDIA Build: https://build.nvidia.com/
- NVIDIA NIM API 文档: https://docs.api.nvidia.com/
- NVIDIA NIM + Claude Code 集成: https://docs.nvidia.com/nim/large-language-models/latest/ai-assistant-integrations/claude-code.html