中文 | English
一个用Go语言重写的Claude Code代理服务器,提供完整的前后端界面,支持将Claude API请求转换为OpenAI API调用。
/v1/messages 端点# 确保已安装Go 1.21+
go version
# 下载依赖
go mod tidy
# 复制配置文件(可选)
cp .env.example .env
# 编辑 .env 文件设置数据存储目录和安全密钥
# 所有API和服务配置都通过Web界面管理
使用发布的镜像:
# 使用Docker Hub镜像,包含数据持久化
docker run -d -p 8082:8082 \
-v ccany_data:/app/data \
-v ccany_logs:/app/logs \
-e OPENAI_API_KEY=your_openai_api_key \
czyt/ccany:latest
# 或使用GitHub Container Registry镜像,包含数据持久化
docker run -d -p 8082:8082 \
-v ccany_data:/app/data \
-v ccany_logs:/app/logs \
-e OPENAI_API_KEY=your_openai_api_key \
ghcr.io/ca-x/ccany:latest
使用Docker Compose(生产环境):
# 复制环境变量配置
cp .env.example .env
# 编辑 .env 文件,设置必要的API密钥
# 使用生产版compose(使用发布的镜像)
docker-compose -f docker-compose.production.yml up -d
# 或使用完整版compose(包含监控等服务)
docker-compose up -d
# 启动服务器
go run cmd/server/main.go
# 启动服务器后,首次访问需要进行初始化设置
# 访问 http://localhost:8082/setup 创建管理员账户并配置API密钥
# 或者使用部署脚本进行自动化部署:
chmod +x scripts/deploy.sh
./scripts/deploy.sh start
# 登录Web界面后,在管理面板中配置:
# - OpenAI API密钥和基础URL
# - Claude API密钥和基础URL
# - 模型配置
# - 性能参数
ANTHROPIC_BASE_URL=http://localhost:8082 ANTHROPIC_AUTH_TOKEN="some-api-key" claude
打开浏览器访问 http://localhost:8082 查看管理面板。
系统配置:
CLAUDE_PROXY_DATA_PATH - 数据存储目录 (默认: ./data)CLAUDE_PROXY_MASTER_KEY - 主密钥用于加密敏感配置 (生产环境建议设置)JWT_SECRET - JWT密钥用于用户认证 (生产环境建议设置)API配置:
模型配置:
gpt-4o)gpt-4o-mini)服务器设置:
0.0.0.0)8082)info)性能配置:
4096)100)90)2)0.7)true)💡 注意: 所有API和服务配置现在都通过Web管理界面进行配置,不再需要环境变量。首次运行时访问
/setup页面进行初始化设置。
代理将Claude模型请求映射到你配置的模型:
| Claude请求 | 映射到 | 环境变量 |
|---|---|---|
| 包含"haiku"的模型 | SMALL_MODEL | 默认: gpt-4o-mini |
| 包含"sonnet"或"opus"的模型 | BIG_MODEL | 默认: gpt-4o |
通过Web界面配置:
sk-your-openai-keyhttps://api.openai.com/v1gpt-4ogpt-4o-mini通过Web界面配置:
your-azure-keyhttps://your-resource.openai.azure.com/openai/deployments/your-deployment2024-02-01gpt-4gpt-35-turbo通过Web界面配置:
dummy-key(必需但可以是虚拟的)http://localhost:11434/v1llama3.1:70bllama3.1:8b通过Web界面配置:
sk-ant-your-claude-keyhttps://api.anthropic.com访问 http://localhost:8082 可以使用Web管理界面,包含以下功能:
界面采用苹果设计风格,支持响应式布局和磨砂玻璃效果。完整的认证系统确保管理界面的安全性。
ccany/ ├── cmd/ │ └── server/ │ └── main.go # 主程序入口 ├── internal/ │ ├── app/ # 应用配置管理 │ ├── auth/ # 认证服务 │ ├── cache/ # 缓存服务 │ ├── claudecode/ # Claude Code兼容性服务 │ ├── client/ # OpenAI客户端 │ ├── config/ # 配置管理 │ ├── converter/ # 请求/响应转换器 │ ├── crypto/ # 加密服务 │ ├── database/ # 数据库管理 │ ├── handlers/ # HTTP处理器 │ ├── logging/ # 请求日志记录 │ ├── middleware/ # 中间件 │ ├── models/ # 数据模型 │ └── monitoring/ # 系统监控 ├── ent/ │ ├── schema/ # 数据库模式定义 │ └── ... # 生成的ORM代码 ├── tests/ │ └── basic_test.go # 基础测试文件 ├── scripts/ │ └── deploy.sh # 部署脚本 ├── web/ │ ├── index.html # 主页面 │ ├── setup.html # 设置页面 │ └── static/ │ ├── css/ # 样式文件 │ └── js/ # JavaScript文件 ├── .env.example # 配置模板 ├── go.mod # Go模块文件 ├── Makefile # 构建脚本 └── README.md # 本文件
POST /v1/messages - 创建消息POST /v1/messages/count_tokens - 计算Token数量GET / - Web管理界面GET /health - 健康检查GET /ready - 就绪检查GET /setup - 初始化设置界面POST /setup - 提交初始化设置POST /admin/auth/login - 管理员登录POST /admin/auth/logout - 管理员登出GET /admin/auth/profile - 获取用户信息GET /admin/users - 获取用户列表POST /admin/users - 创建用户PUT /admin/users/:id - 更新用户DELETE /admin/users/:id - 删除用户GET /admin/config - 获取配置信息PUT /admin/config - 更新配置GET /admin/request-logs - 获取请求日志GET /admin/request-logs/stats - 获取请求统计DELETE /admin/request-logs - 清理请求日志GET /admin/monitoring/health - 系统健康检查GET /admin/monitoring/metrics - 系统指标GET /admin/monitoring/system - 系统信息# 构建可执行文件
go build -o ccany cmd/server/main.go
# 交叉编译
GOOS=linux GOARCH=amd64 go build -o ccany-linux cmd/server/main.go
GOOS=windows GOARCH=amd64 go build -o ccany.exe cmd/server/main.go
# 运行所有测试
go test ./...
# 运行特定包的测试
go test ./internal/converter
# 运行集成测试(需要先启动服务器)
go test -v ./tests/
# 运行基准测试
go test -bench=. ./tests/
# 生成测试覆盖率报告
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out -o coverage.html
# 格式化代码
go fmt ./...
# 检查代码
go vet ./...
此代理设计为与Claude Code CLI无缝协作。增强版本包含完整的Claude Code兼容性支持:
# 使用部署脚本启动增强版代理
./scripts/deploy.sh start
# 使用Claude Code与代理
ANTHROPIC_BASE_URL=http://localhost:8082 claude
# 或永久设置
export ANTHROPIC_BASE_URL=http://localhost:8082
claude
message_start, content_block_start, ping, content_block_delta, content_block_stop, message_delta, message_stop 事件~/.claude.json 配置文件thinking 字段和智能模型路由cache_read_input_tokens 使用报告# 基本部署
./scripts/deploy.sh start
# 包含监控的部署
./scripts/deploy.sh monitoring
# 包含Nginx的部署
./scripts/deploy.sh nginx
# 测试Claude Code兼容性
./scripts/deploy.sh test
# 显示帮助
./scripts/deploy.sh help
# 复制环境配置
cp .env.example .env
# 编辑 .env 文件配置API密钥
# 基本部署
docker-compose up -d
# 包含监控的部署
docker-compose --profile monitoring up -d
# 包含Nginx的部署
docker-compose --profile nginx up -d
# 测试Claude Code兼容性
docker-compose --profile test up --build test-claude-code
# 自动化部署(推荐)
./scripts/deploy.sh start
# 包含监控栈的部署
./scripts/deploy.sh monitoring
# 检查服务状态
./scripts/deploy.sh status
# 查看日志
./scripts/deploy.sh logs
详细的部署指南请参考:部署文档
MIT License
欢迎提交Issue和Pull Request!