Upload 17 files
Browse files- README.md +38 -30
- app/__pycache__/__init__.cpython-313.pyc +0 -0
- app/__pycache__/main.cpython-313.pyc +0 -0
- app/main.py +0 -0
README.md
CHANGED
|
@@ -7,26 +7,29 @@ pinned: false
|
|
| 7 |
|
| 8 |
# NVIDIA NIM 响应网关
|
| 9 |
|
| 10 |
-
这是一个面向公开使用的 NVIDIA NIM
|
| 11 |
|
| 12 |
它不在本地保存任何用户的 NIM API Key。用户调用本项目时,需要自己通过请求头携带 NIM Key,网关只负责协议转换、性能优化、聚合统计和官方模型目录展示。
|
| 13 |
|
| 14 |
## 主要能力
|
| 15 |
|
| 16 |
-
- 将 NVIDIA 官方 `POST /v1/chat/completions` 转换为 OpenAI 风格的 `POST /v1/responses`
|
| 17 |
-
-
|
| 18 |
-
- 支持
|
| 19 |
-
- 支持 `
|
| 20 |
-
-
|
| 21 |
-
-
|
| 22 |
-
- `/`
|
| 23 |
-
- `/
|
| 24 |
-
-
|
| 25 |
-
-
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
## 用户如何调用
|
| 28 |
|
| 29 |
-
对于 `POST /v1/responses`,请通过下面任意一种方式传入你自己的 NVIDIA NIM Key:
|
| 30 |
|
| 31 |
- `Authorization: Bearer <你的 NIM Key>`
|
| 32 |
- `X-API-Key: <你的 NIM Key>`
|
|
@@ -45,9 +48,9 @@ pinned: false
|
|
| 45 |
同步后的模型目录同时用于:
|
| 46 |
|
| 47 |
|
| 48 |
-
- `GET /v1/models`
|
| 49 |
-
- `GET /models`
|
| 50 |
-
- `GET /api/catalog`
|
| 51 |
|
| 52 |
## 页面与接口
|
| 53 |
|
|
@@ -62,21 +65,23 @@ pinned: false
|
|
| 62 |
|
| 63 |
|
| 64 |
|
| 65 |
-
页面:
|
| 66 |
-
|
| 67 |
-
- `GET /`:模型健康度页面
|
| 68 |
-
- `GET /
|
| 69 |
-
|
| 70 |
-
前端数据接口:
|
| 71 |
|
| 72 |
- `GET /api/dashboard`
|
| 73 |
- `GET /api/catalog`
|
| 74 |
|
| 75 |
-
兼容接口:
|
| 76 |
-
|
| 77 |
-
- `POST /v1/responses`
|
| 78 |
-
- `
|
| 79 |
-
- `GET /v1/
|
|
|
|
|
|
|
| 80 |
|
| 81 |
## 环境变量
|
| 82 |
|
|
@@ -118,7 +123,10 @@ pinned: false
|
|
| 118 |
|
| 119 |
## 参考资料
|
| 120 |
|
| 121 |
-
- OpenAI Responses API: https://platform.openai.com/docs/guides/responses-vs-chat-completions
|
| 122 |
-
- OpenAI Function Calling: https://platform.openai.com/docs/guides/function-calling
|
| 123 |
-
-
|
| 124 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
| 8 |
# NVIDIA NIM 响应网关
|
| 9 |
|
| 10 |
+
这是一个面向公开使用的 NVIDIA NIM 兼容网关,同时支持 OpenAI `/v1/responses` 和 Anthropic `/v1/messages` 风格请求。
|
| 11 |
|
| 12 |
它不在本地保存任何用户的 NIM API Key。用户调用本项目时,需要自己通过请求头携带 NIM Key,网关只负责协议转换、性能优化、聚合统计和官方模型目录展示。
|
| 13 |
|
| 14 |
## 主要能力
|
| 15 |
|
| 16 |
+
- 将 NVIDIA 官方 `POST /v1/chat/completions` 转换为 OpenAI 风格的 `POST /v1/responses`
|
| 17 |
+
- 将 NVIDIA 官方 `POST /v1/chat/completions` 转换为 Anthropic 风格的 `POST /v1/messages`
|
| 18 |
+
- 支持 tool calling / function calling
|
| 19 |
+
- 支持 Anthropic `tools` / `tool_choice` / `tool_result` 以及 Claude Code 常见的客户端工具调用形态
|
| 20 |
+
- 支持 `function_call_output` 回灌
|
| 21 |
+
- 支持 `previous_response_id` 对话续写
|
| 22 |
+
- 对 `/v1/responses` 和 `/v1/responses/{response_id}` 使用用户自带的 NIM Key 做鉴权与上游转发
|
| 23 |
+
- 对 `/v1/messages` 使用用户自带的 NIM Key 做鉴权与上游转发,并支持 Anthropic SSE 风格流式事件
|
| 24 |
+
- `/v1/models` 直接返回来自 NVIDIA 官方 `/v1/models` 的同步结果,保持 OpenAI 风格结构
|
| 25 |
+
- `/` 为白色主题的模型健康度页面,按 10 分钟成功率矩阵展示 MODEL_LIST 中的模型
|
| 26 |
+
- `/model_list` 为独立的白色主题官方模型列表页面,支持按提供商筛选模型
|
| 27 |
+
- 模型提供商卡片为固定高度,避免模型较多时卡片过长
|
| 28 |
+
- 使用共享 HTTP 连接池、SQLite WAL 和异步线程化落库来增强高并发场景下的转发性能
|
| 29 |
|
| 30 |
## 用户如何调用
|
| 31 |
|
| 32 |
+
对于 `POST /v1/responses` 和 `POST /v1/messages`,请通过下面任意一种方式传入你自己的 NVIDIA NIM Key:
|
| 33 |
|
| 34 |
- `Authorization: Bearer <你的 NIM Key>`
|
| 35 |
- `X-API-Key: <你的 NIM Key>`
|
|
|
|
| 48 |
同步后的模型目录同时用于:
|
| 49 |
|
| 50 |
|
| 51 |
+
- `GET /v1/models`
|
| 52 |
+
- `GET /models`
|
| 53 |
+
- `GET /api/catalog`
|
| 54 |
|
| 55 |
## 页面与接口
|
| 56 |
|
|
|
|
| 65 |
|
| 66 |
|
| 67 |
|
| 68 |
+
页面:
|
| 69 |
+
|
| 70 |
+
- `GET /`:模型健康度页面
|
| 71 |
+
- `GET /model_list`:官方模型列表页面
|
| 72 |
+
|
| 73 |
+
前端数据接口:
|
| 74 |
|
| 75 |
- `GET /api/dashboard`
|
| 76 |
- `GET /api/catalog`
|
| 77 |
|
| 78 |
+
兼容接口:
|
| 79 |
+
|
| 80 |
+
- `POST /v1/responses`
|
| 81 |
+
- `POST /v1/messages`
|
| 82 |
+
- `GET /v1/responses/{response_id}`
|
| 83 |
+
- `GET /v1/models`
|
| 84 |
+
- `GET /models`
|
| 85 |
|
| 86 |
## 环境变量
|
| 87 |
|
|
|
|
| 123 |
|
| 124 |
## 参考资料
|
| 125 |
|
| 126 |
+
- OpenAI Responses API: https://platform.openai.com/docs/guides/responses-vs-chat-completions
|
| 127 |
+
- OpenAI Function Calling: https://platform.openai.com/docs/guides/function-calling
|
| 128 |
+
- Anthropic Messages API: https://docs.anthropic.com/en/api/messages
|
| 129 |
+
- Anthropic Tool Use: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview
|
| 130 |
+
- NVIDIA Build: https://build.nvidia.com/
|
| 131 |
+
- NVIDIA NIM API 文档: https://docs.api.nvidia.com/
|
| 132 |
+
- NVIDIA NIM + Claude Code 集成: https://docs.nvidia.com/nim/large-language-models/latest/ai-assistant-integrations/claude-code.html
|
app/__pycache__/__init__.cpython-313.pyc
CHANGED
|
Binary files a/app/__pycache__/__init__.cpython-313.pyc and b/app/__pycache__/__init__.cpython-313.pyc differ
|
|
|
app/__pycache__/main.cpython-313.pyc
CHANGED
|
Binary files a/app/__pycache__/main.cpython-313.pyc and b/app/__pycache__/main.cpython-313.pyc differ
|
|
|
app/main.py
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|