metadata
title: Claude Code to OpenAI API Proxy
emoji: 🔥
colorFrom: red
colorTo: red
sdk: docker
pinned: false
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
Claude to OpenAI API Proxy
🔥 一个强大的Go代理服务器,将Claude API格式的请求无缝转换为OpenAI API格式,使Claude CLI能够与任何OpenAI兼容的服务通信。
部署在 Hugging Face Space 上的容器化应用
✨ 功能特性
- 动态路由:无需修改代码,通过URL路径动态指定目标API和模型
- 全功能API兼容:完全支持Claude的
/v1/messages端点,包括流式和非流式响应 - Tool Calling转换:智能转换Claude的tools格式为OpenAI格式
- Haiku模型快捷方式:支持环境变量配置固定路由
- 一键配置脚本:交互式配置Claude CLI工具
- 环境变量配置:支持.env文件进行本地开发配置
🔬 工作原理
动态路由格式
https://<代理地址>/<协议>/<目标API域名>/<路径>/HAIKU_MODEL/<模型名称>
处理流程
- 解析URL提取目标API和模型信息
- 转发
x-api-key头部作为Authorization: Bearer <key> - 将Claude格式请求转换为OpenAI格式
- 发送到目标API的
/chat/completions端点 - 将OpenAI响应转换回Claude格式
🚀 快速开始
本地开发
- 克隆项目:
git clone <repository-url>
cd openai2claudecode
- 配置环境变量:
cp .env.example .env
# 编辑 .env 文件设置您的配置
- 安装依赖:
go mod tidy
- 运行服务器:
go run main.go
服务器将在http://localhost:7860启动。
使用配置脚本
运行一键配置脚本来设置Claude CLI:
./claude_proxy.sh
脚本会引导您:
- 安装Claude CLI(如果需要)
- 选择API服务(Google Gemini、Groq、OpenAI等)
- 配置API密钥
- 设置代理URL
- 测试配置
Docker部署
- 构建Docker镜像:
docker build -t claude-proxy .
- 运行容器:
docker run -p 7860:7860 \
-e DEBUG=false \
claude-proxy
📖 使用示例
Google Gemini
curl -X POST http://localhost:7860/https/generativelanguage.googleapis.com/v1beta/gemini-1.5-pro/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_GEMINI_API_KEY' \
-d '{
"model": "gemini-1.5-pro",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "Hello!"}]
}'
Groq
curl -X POST http://localhost:7860/https/api.groq.com/openai/v1/llama3-70b-8192/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_GROQ_API_KEY' \
-d '{
"model": "llama3-70b-8192",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "Hello!"}]
}'
OpenAI
curl -X POST http://localhost:7860/https/api.openai.com/v1/gpt-4/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_OPENAI_API_KEY' \
-d '{
"model": "gpt-4",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "Hello!"}]
}'
流式响应
添加"stream": true到请求体中启用流式响应:
{
"model": "gpt-4",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}
Tool Calling
{
"model": "gpt-4",
"max_tokens": 1000,
"messages": [{"role": "user", "content": "What's the weather like?"}],
"tools": [
{
"name": "get_weather",
"description": "Get the current weather",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"}
},
"required": ["location"]
}
}
]
}
⚙️ 配置
环境变量
创建.env文件来配置本地开发环境:
# 服务器配置
PORT=7860
DEBUG=true
# CORS配置(可选)
CORS_ALLOW_ORIGIN=*
CORS_ALLOW_METHODS=POST,GET,OPTIONS,PUT,DELETE
CORS_ALLOW_HEADERS=Accept,Content-Type,Content-Length,Accept-Encoding,X-CSRF-Token,Authorization,x-api-key,anthropic-version
Haiku快捷方式
设置环境变量后,可以使用简化的URL:
# 然后可以使用包含"haiku"的任何路径
curl -X POST http://localhost:7860/haiku/v1/messages \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_ANTHROPIC_API_KEY' \
-d '{...}'
🔧 开发
项目结构
.
├── main.go # 主服务器代码
├── go.mod # Go模块依赖
├── go.sum # Go模块校验和
├── claude_proxy.sh # 配置脚本
├── test.sh # 测试脚本
├── Dockerfile # Docker配置
├── .env.example # 环境变量示例
├── .env # 本地环境变量(需要创建)
└── README.md # 项目文档
测试
启动服务器后,访问根路径检查状态:
curl http://localhost:7860/
应该返回:
{
"message": "Claude to OpenAI API Proxy",
"version": "1.0.0",
"environment": "debug"
}
或者运行测试脚本:
./test.sh
🐳 Hugging Face Space 部署
此项目设计为在Hugging Face Space上运行,通过Docker容器部署。
部署配置
- 项目使用Docker SDK进行容器化部署
- 支持环境变量配置
- 自动处理CORS和API代理功能
环境变量设置
在Hugging Face Space设置中配置以下环境变量:
PORT: 服务器端口(默认7860)DEBUG: 调试模式(true/false)
🤝 贡献
欢迎提交Issue和Pull Request!
📄 许可证
MIT License
🌟 如果这个项目对你有帮助,请给个Star!