中文 | English
一个用Go语言重写的Claude Code代理服务器,提供完整的前后端界面,支持将Claude API请求转换为OpenAI API调用。
- 完整的Claude API兼容性: 支持完整的
/v1/messages端点 - 多提供商支持: OpenAI、Azure OpenAI、本地模型(Ollama)和任何OpenAI兼容的API
- 智能模型映射: 通过环境变量配置大小模型
- 函数调用: 完整的工具使用支持和转换
- 流式响应: 实时SSE流式支持
- 图像支持: Base64编码图像输入
- Web管理界面: 苹果设计风格的管理面板
- 数据库支持: 使用ent和SQLite3进行数据持久化
- 用户管理: 完整的用户认证和授权系统
- 请求日志: 详细的API请求日志记录和分析
- 系统监控: 实时系统性能监控和健康检查
- 缓存优化: 智能缓存系统提升性能
- 错误处理: 全面的错误处理和日志记录
# 确保已安装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配置:
- OpenAI API密钥和基础URL
- Claude API密钥和基础URL
- Azure API版本(可选)
模型配置:
- 大模型 (默认:
gpt-4o) - 小模型 (默认:
gpt-4o-mini)
服务器设置:
- 服务器主机 (默认:
0.0.0.0) - 服务器端口 (默认:
8082) - 日志级别 (默认:
info)
性能配置:
- 最大Token限制 (默认:
4096) - 最小Token限制 (默认:
100) - 请求超时秒数 (默认:
90) - 最大重试次数 (默认:
2) - 温度参数 (默认:
0.7) - 流式响应 (默认:
true)
💡 注意: 所有API和服务配置现在都通过Web管理界面进行配置,不再需要环境变量。首次运行时访问
/setup页面进行初始化设置。
代理将Claude模型请求映射到你配置的模型:
| Claude请求 | 映射到 | 环境变量 |
|---|---|---|
| 包含"haiku"的模型 | SMALL_MODEL |
默认: gpt-4o-mini |
| 包含"sonnet"或"opus"的模型 | BIG_MODEL |
默认: gpt-4o |
通过Web界面配置:
- OpenAI API密钥:
sk-your-openai-key - OpenAI基础URL:
https://api.openai.com/v1 - 大模型:
gpt-4o - 小模型:
gpt-4o-mini
通过Web界面配置:
- OpenAI API密钥:
your-azure-key - OpenAI基础URL:
https://your-resource.openai.azure.com/openai/deployments/your-deployment - Azure API版本:
2024-02-01 - 大模型:
gpt-4 - 小模型:
gpt-35-turbo
通过Web界面配置:
- OpenAI API密钥:
dummy-key(必需但可以是虚拟的) - OpenAI基础URL:
http://localhost:11434/v1 - 大模型:
llama3.1:70b - 小模型:
llama3.1:8b
通过Web界面配置:
- Claude API密钥:
sk-ant-your-claude-key - Claude基础URL:
https://api.anthropic.com
访问 http://localhost:8082 可以使用Web管理界面,包含以下功能:
- 仪表板: 查看服务状态和统计信息
- 请求日志: 查看所有API请求的详细记录和分析
- 系统监控: 实时系统性能监控和健康检查
- 用户管理: 用户账户管理和权限控制
- 配置管理: 查看和修改系统配置参数
- API测试: 测试连接和发送测试消息
界面采用苹果设计风格,支持响应式布局和磨砂玻璃效果。完整的认证系统确保管理界面的安全性。
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 ./...- 并发处理: 使用Goroutines实现高并发
- 连接池: 高效的HTTP连接管理
- 流式支持: 实时响应流
- 智能缓存: 多策略缓存系统(LRU、LFU、TTL)
- 请求日志: 异步日志记录不影响性能
- 系统监控: 低开销的实时性能监控
- 数据库优化: 连接池和查询优化
- 内存管理: 优雅的内存使用和垃圾回收
- 可配置超时: 可配置的超时和重试
- 智能错误处理: 详细的日志记录
此代理设计为与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- ✅ 完整的SSE事件序列: 支持
message_start,content_block_start,ping,content_block_delta,content_block_stop,message_delta,message_stop事件 - ✅ 请求取消支持: 客户端断开检测和优雅的请求取消
- ✅ Claude配置自动化: 自动创建
~/.claude.json配置文件 - ✅ Thinking模式: 支持
thinking字段和智能模型路由 - ✅ 增强工具调用: 支持增量JSON解析的工具调用流式传输
- ✅ 缓存Token: 支持
cache_read_input_tokens使用报告 - ✅ 智能路由: 基于复杂度和token数量的智能模型选择
# 基本部署
./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!
- ✅ 完整的Claude Code兼容性支持
- ✅ 增强的SSE事件序列 (message_start, content_block_start, ping, content_block_delta, content_block_stop, message_delta, message_stop)
- ✅ 请求取消和客户端断开检测
- ✅ Claude配置自动初始化 (~/.claude.json)
- ✅ Thinking模式支持和智能模型路由
- ✅ 增强的工具调用流式传输
- ✅ 缓存Token使用报告
- ✅ Docker和Docker Compose增强配置
- ✅ GitHub Actions CI/CD流水线
- ✅ 完整的部署脚本和监控支持
- ✅ 增强的Nginx配置和性能优化
- 完整的后台管理系统
- 用户认证和授权
- 请求日志记录和分析
- 系统监控和健康检查
- 智能缓存系统
- 完整的测试套件
- 增强的文档和部署指南
- 数据库集成和ORM支持
- 配置管理系统
- 安全的配置存储
- 数据库迁移支持
- 初始Go版本发布
- 完整的Claude API兼容性
- Web管理界面
- 数据库支持
- 苹果设计风格UI