一个基于千问大模型的多格式翻译API服务,兼容DeepL和DeepLX API格式。
👋 关注作者: @zhaopengme - 获取更多AI工具和技术分享
- 🌐 支持多种API格式:DeepL、DeepLX、原生格式
- 🔐 可选的API密钥认证
- 🚀 高并发支持,内置限流和重试机制
- 🐳 Docker容器化部署
- 📊 健康检查和监控支持
POST /translate
{
"source_lang": "EN",
"target_lang": "ZH",
"text": "Hello world"
}
# 响应
{
"code": 200,
"id": 1753422603925,
"data": "你好,世界"
}
POST /v2/translate
{
"text": ["Hello world"],
"source_lang": "EN",
"target_lang": "ZH"
}
# 响应
{
"translations": [
{
"detected_source_language": "EN",
"text": "你好,世界"
}
]
}
POST /api/translate
{
"text": ["Hello world"],
"source_lang": "EN",
"target_lang": "ZH"
}
语言代码 | 中文名称 | 英文名称 |
---|---|---|
EN | 英语 | English |
ZH | 简体中文 | Chinese |
auto | 自动检测 | Auto |
服务支持多种API密钥认证方式:
-
Authorization头部 (DeepL格式)
Authorization: DeepL-Auth-Key sk-your-api-key
-
Bearer Token
Authorization: Bearer sk-your-api-key
-
X-API-Key头部
X-API-Key: sk-your-api-key
-
查询参数
POST /translate?api_key=sk-your-api-key
- 克隆项目
git clone <repository-url>
cd qwenmtapi
- 配置环境变量(可选)
# 编辑docker-compose.yml中的环境变量
# 或创建.env文件
echo "AUTH_ENABLED=true" > .env
echo "API_KEY=sk-your-secret-key" >> .env
- 启动服务
docker-compose up -d
- 测试服务
# 健康检查
curl http://localhost:8080/health
# 翻译测试
curl -X POST http://localhost:8080/translate \
-H "Content-Type: application/json" \
-H "Authorization: DeepL-Auth-Key sk-your-secret-key" \
-d '{"source_lang":"EN","target_lang":"ZH","text":"Hello world"}'
- 确保Go版本 >= 1.21
go version
- 安装依赖
go mod download
- 运行服务
# 不启用认证
go run main.go
# 启用认证
AUTH_ENABLED=true API_KEY=sk-test123 go run main.go
变量名 | 默认值 | 说明 |
---|---|---|
AUTH_ENABLED |
false |
是否启用API密钥认证 |
API_KEY |
"" |
单个API密钥 |
API_KEYS |
"" |
多个API密钥(逗号分隔) |
GIN_MODE |
debug |
Gin框架模式 (debug/release) |
TZ |
UTC |
时区设置 |
端点 | 方法 | 格式 | 说明 |
---|---|---|---|
/ |
GET | - | 服务信息和端点列表 |
/health |
GET | - | 健康检查 |
/translate |
POST | DeepLX | DeepLX兼容格式 |
/v2/translate |
POST | DeepL | DeepL兼容格式 |
/api/translate |
POST | 原生 | 原生API格式 |
- 内置并发限制(最大2个并发请求)
- 自动重试机制(最多3次重试)
- 连接池复用
- 请求去重和缓存(计划中)
- 启用认证
AUTH_ENABLED=true
API_KEYS=sk-key1,sk-key2,sk-key3
- 使用反向代理(Nginx/Traefik)
- 设置合适的资源限制
- 启用HTTPS
- 配置日志收集
- 健康检查端点:
GET /health
- 应用日志输出到stdout
- 支持结构化日志格式
.
├── main.go # 主入口
├── internal/
│ ├── controller/ # 控制器层
│ ├── service/ # 业务逻辑层
│ ├── model/ # 数据模型
│ └── middleware/ # 中间件
├── go.mod
├── go.sum
├── Dockerfile
├── docker-compose.yml
└── README.md
- Fork项目
- 创建特性分支
- 提交更改
- 推送到分支
- 创建Pull Request
MIT License
- 📧 如有问题或建议,请提交Issue
- 🐦 关注我的Twitter获取更多AI工具分享: @zhaopengme
⭐ 如果这个项目对你有帮助,请考虑给个Star支持一下!