homurasakuya/ONYX
0
onyx2api
Onyx Cloud API 转 OpenAI / Anthropic 兼容接口的轻量代理(Go 单文件版)。
[!NOTE] 本项目仅用于学习与技术研究,请遵守 Onyx 使用条款和所在地法律法规。
快速开始
本地运行
git clone https://github.com/smysle/onyx2api-go.git
cd onyx2api-go
go build -o onyx2api .
ONYX_KEYS="on_tenant_xxx" \
CLIENT_API_KEY="sk-456789" \
./onyx2api默认监听 :9898。如果要改端口:
PORT=7860 ONYX_KEYS="on_tenant_xxx" CLIENT_API_KEY="sk-456789" ./onyx2apiDocker 运行
git clone https://github.com/smysle/onyx2api-go.git
cd onyx2api-go
docker build -t onyx2api:latest .
docker run --rm -p 7860:7860 \
-e PORT=7860 \
-e ONYX_KEYS=on_tenant_xxx \
-e CLIENT_API_KEY=sk-456789 \
onyx2api:latestHugging Face Spaces(Docker)
Hugging Face Spaces实例 Space:https://huggingface.co/spaces/smyslenny/ONYX(可直接复制)
推送代码到 Space
git clone https://github.com/smysle/onyx2api-go.git
cd onyx2api-go
git remote add hf https://huggingface.co/spaces/smyslenny/ONYX
git push hf main如果提示账号密码:
- Username:
你的用户名 - Password:填 Hugging Face Access Token(需要 write 权限)
Space Secrets
在 Space 的 Settings -> Variables and secrets 设置:
ONYX_KEYS=on_tenant_xxxCLIENT_API_KEY=sk-456789
部署成功后可用地址:
https://你的用户名-onyx.hf.space/v1
[!TIP] 别人 fork 你的项目后也能直接部署,但他们需要自己配置 Secrets。
功能特性
- OpenAI 兼容:
/v1/chat/completions - Anthropic 兼容:
/v1/messages - 支持流式与非流式
- 多 Onyx Key 轮询
- 自动重试(502/503/504/429 + 指数退避)
- 客户端调用鉴权(
CLIENT_API_KEY/CLIENT_API_KEYS) - 适配云端端口注入(
PORT/LISTEN_ADDR)
接口说明
健康检查
curl http://127.0.0.1:9898/healthOpenAI 兼容接口
POST /v1/chat/completions
curl http://127.0.0.1:9898/v1/chat/completions \
-H "Authorization: Bearer sk-456789" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role":"user","content":"你好"}],
"stream": false
}'Anthropic 兼容接口
POST /v1/messages
curl http://127.0.0.1:9898/v1/messages \
-H "x-api-key: sk-456789" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role":"user","content":"你好"}],
"stream": false
}'其他接口
GET /v1/modelsGET /healthGET /
OpenAI 客户端配置
- Base URL:
http://<你的地址>:9898/v1 - API Key:填
CLIENT_API_KEY的值(例如sk-456789)
在 HF 上时:
- Base URL:
https://你的用户名-onyx.hf.space/v1 - API Key:同上
支持模型
常见模型可直接使用,例如:
claude-opus-4-6claude-sonnet-4-6claude-sonnet-4-5gpt-4ogpt-4o-minio1o3-minigemini-2.5-pro
也支持 Onyx 原始格式:Provider__api__model_version。
环境变量
请求体附加参数:
persona_id:Onyx Persona ID(默认1)
常见问题
1) 为什么别人复制项目后不能直接出结果?
因为 Secrets 不会随代码一起复制。至少要设置:
ONYX_KEYSCLIENT_API_KEY
2) 为什么 health 里 keys 是 0?
说明运行环境里没有读到 ONYX_KEYS,先检查 Space Secrets 或运行命令里的环境变量。
3) 可以不用 CLIENT_API_KEY 吗?
可以,但公网部署不建议。不开鉴权会被他人滥用你的 Onyx 配额。
