| 特性 | 描述 | 状态 |
|---|---|---|
| OpenAI 兼容性 | 完全模拟 /v1/chat/completions 和 /v1/models 接口 | ✅ 已实现 |
| 动态签名破解 | 基于 Playwright 的 a_bogus 签名生成 | ✅ 已实现 |
| 多账号轮询 | 支持多个豆包 Cookie 负载均衡 | ✅ 已实现 |
| Docker 部署 | 一键容器化部署方案 | ✅ 已实现 |
| 状态化会话 | 智能对话上下文管理 | ✅ 已实现 |
| 流式响应 | 支持 SSE 流式输出 | ✅ 已实现 |
Docker 和 docker-composegit clone https://github.com/lzA6/doubao-2api.git
cd doubao-2api
复制环境配置文件:
cp .env.example .env
编辑配置文件:
nano .env
关键配置项:
# API 认证密钥(请修改为复杂字符串) API_MASTER_KEY="sk-your-secret-key-here" # 豆包 Cookie(必填) DOUBAO_COOKIE_1="your_doubao_cookie_here" # 可选:多账号支持 DOUBAO_COOKIE_2="another_cookie_here" DOUBAO_COOKIE_3="third_cookie_here"
F12 打开开发者工具 → 切换到 Network 标签completion 请求docker-compose up -d
服务启动后,可通过以下方式验证:
API 配置信息:
http://your-server-ip:8088.env 中设置的 API_MASTER_KEYdoubao-pro-chat测试请求:
curl -X POST "http://localhost:8088/v1/chat/completions" \
-H "Authorization: Bearer sk-your-secret-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "doubao-pro-chat",
"messages": [{"role": "user", "content": "你好"}],
"stream": false
}'
豆包网使用复杂的 JavaScript 签名算法生成 a_bogus 参数,作为 API 请求的安全验证。
| 步骤 | 技术实现 | 说明 |
|---|---|---|
| 1. 环境准备 | Playwright + Stealth | 启动无头浏览器,加载豆包页面 |
| 2. 函数注入 | 执行 frontierSign | 调用豆包签名函数 |
| 3. 动态签名 | 参数传递 + JS 执行 | 生成有效的 a_bogus 签名 |
| 4. 请求转发 | httpx 客户端 | 携带签名调用豆包 API |
| 5. 格式转换 | OpenAI 兼容格式 | 将响应转换为标准格式 |
# 伪代码示例
async def generate_signature(params):
# 1. 通过 Playwright 调用浏览器环境
signature = await page.evaluate("""
(params) => {
return window.byted_acrawler.frontierSign(params);
}
""", params)
# 2. 将签名附加到请求 URL
url = f"https://www.doubao.com/api?{params}&a_bogus={signature}"
# 3. 发送请求
response = await httpx.post(url, cookies=cookies)
return response
| 技术组件 | 版本 | 用途 | 状态 |
|---|---|---|---|
| FastAPI | 0.100+ | Web API 框架 | ✅ 稳定 |
| Playwright | 1.40+ | 浏览器自动化 | ✅ 稳定 |
| Docker | 20.10+ | 容器化部署 | ✅ 稳定 |
| Nginx | 1.24+ | 反向代理 | ✅ 稳定 |
| Python | 3.9+ | 后端语言 | ✅ 稳定 |
| httpx | 0.25+ | HTTP 客户端 | ✅ 稳定 |
a_bogus 签名生成doubao-2api/ ├── 🐳 Docker 相关 │ ├── Dockerfile # 容器构建配置 │ └── docker-compose.yml # 服务编排配置 ├── 🔧 配置文件 │ ├── .env.example # 环境变量模板 │ ├── nginx.conf # Nginx 配置 │ └── requirements.txt # Python 依赖 ├── 🐍 应用代码 │ └── app/ │ ├── main.py # FastAPI 应用入口 │ ├── core/ # 核心模块 │ │ ├── config.py # 配置管理 │ │ └── __init__.py │ ├── providers/ # 服务提供者 │ │ ├── base_provider.py │ │ └── doubao_provider.py │ ├── services/ # 业务服务 │ │ ├── credential_manager.py │ │ ├── playwright_manager.py │ │ └── session_manager.py │ └── utils/ # 工具函数 │ └── sse_utils.py └── 📚 文档 ├── README.md # 项目说明 └── README_en.md # 英文文档
Q: 服务启动失败怎么办? A: 检查以下项目:
.env 文件中的 Cookie 是否有效Q: 请求返回签名错误?
A: 通常是因为:
docker-compose restartQ: 如何查看服务日志? A: 使用命令:
docker-compose logs -f app
Q: 会消耗豆包付费额度吗? A: 不会,本项目仅调用豆包免费模型,与付费服务无关。
Q: 我的 Cookie 安全吗? A: 只要部署在可信服务器并设置复杂 API 密钥,您的凭证就是安全的。项目不会向第三方发送任何用户数据。
我们欢迎各种形式的贡献!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)