TurnsAPI 是一个高性能多提供商 API 代理服务,支持 OpenAI、Google Gemini、Anthropic Claude、Azure OpenAI 等多个大模型提供商。
- 多提供商支持: OpenAI、Google Gemini、Anthropic Claude、Azure OpenAI 等
- 完整工具调用: 支持 Function Calling、tool_choice、并行工具调用
- 智能路由: 自动故障转移和重试机制,支持多种轮询策略
- 模型重命名: 支持模型别名映射,统一不同分组的模型名称
- 参数覆盖: 分组级别的请求参数覆盖(temperature、max_tokens等)
- 流式响应: 完全支持 SSE 流式响应和原生接口格式
- 实时监控: Web 界面监控 API 密钥状态和服务性能
- 日志分析: 完整的请求日志记录和统计分析
- 安全认证: 内置认证系统保护 API 和管理界面
# 1. 创建目录和配置
mkdir -p config logs data
cp config/config.example.yaml config/config.yaml
# 编辑 config/config.yaml 添加您的 API 密钥
# 2. 运行服务
docker run -d \
--name turnsapi \
-p 8080:8080 \
-v $(pwd)/config:/app/config \
-v $(pwd)/logs:/app/logs \
-v $(pwd)/data:/app/data \
bradleylzh/turnsapi:latestgit clone <repository-url>
cd TurnsApi
go mod tidy
go run cmd/turnsapi/main.go -config config/config.yaml访问 http://localhost:8080 查看管理界面
server:
port: "8080"
mode: "release" # debug, release, test
auth:
enabled: true
username: "admin"
password: "turnsapi123" # 请修改默认密码
session_timeout: "24h"user_groups:
openai_official:
name: "OpenAI Official"
provider_type: "openai"
base_url: "https://api.openai.com/v1"
enabled: true
rotation_strategy: "round_robin" # round_robin, random, least_used
api_keys:
- "sk-your-openai-key"
models:
- "gpt-5"
# 可选:模型重命名
model_mappings:
gpt4: "gpt-5"
# 可选:参数覆盖
request_params:
temperature: 0.7
max_tokens: 2000
# 可选:RPM限制
rpm_limit: 60
google_gemini:
name: "Google Gemini"
provider_type: "gemini"
base_url: "https://generativelanguage.googleapis.com/v1beta"
enabled: true
api_keys:
- "your-gemini-api-key"
models:
- "gemini-pro"
- "gemini-2.5-pro"
use_native_response: true # 启用原生响应格式# 聊天完成
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-access-token" \
-d '{
"model": "gpt-5",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": false
}'
# 指定提供商分组
curl -X POST http://localhost:8080/v1/chat/completions \
-H "X-Provider-Group: openai_official" \
-d '...'
# 流式响应
curl -X POST http://localhost:8080/v1/chat/completions \
-d '{"model": "gpt-5", "messages": [...], "stream": true}'# 登录获取令牌
curl -X POST http://localhost:8080/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "turnsapi123"}'curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-access-token" \
-d '{
"model": "gpt-5",
"messages": [{"role": "user", "content": "What is the weather in NYC?"}],
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'访问 http://localhost:8080 查看管理界面
- 多提供商管理和实时监控
- 分组配置和密钥管理
- 模型重命名和参数覆盖设置
- 请求日志查看和统计分析
- 配置导出/导入功能
# 健康检查
curl http://localhost:8080/health
# 服务状态
curl http://localhost:8080/admin/status
# 请求日志
curl http://localhost:8080/admin/logs- 服务启动失败: 检查配置文件格式和端口占用
- API请求失败: 验证API密钥有效性和网络连接
- Docker问题: 检查容器日志
docker logs turnsapi
# 查看实时日志
tail -f logs/turnsapi.log
# 查看错误日志
grep "ERROR" logs/turnsapi.logMIT License

