🔐 OpenAI 兼容的 API 代理服务器,统一访问 Factory AI 模型
docker run -d \
--name factory2api \
--restart=unless-stopped \
-e TZ=Asia/Shanghai \
-e FACTORY_API_KEY="fk-key1,fk-key2,fk-key3" \
-e ADMIN_PASSWORD="your-admin-password" \
-p 3000:3000 \
orangeqiu/factory2api:latest
# 1. 安装依赖
npm install
# 2. 配置环境变量(可选)
export FACTORY_API_KEY="your_factory_api_key"
export ADMIN_PASSWORD="your-admin-password"
export LOCAL_API_KEY="your-local-secret-key" # 可选,用于本地验证
# 3. 启动服务
npm start
服务器默认运行在 http://localhost:3000
访问 http://localhost:3000/admin 打开管理面板
功能特性:
前提条件:
ADMIN_PASSWORD 环境变量FACTORY_API_KEYcurl http://localhost:3000/v1/models
curl http://localhost:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-local-secret-key" \
-d '{
"model": "claude-opus-4-20250514",
"messages": [
{"role": "user", "content": "你好"}
],
"stream": true
}'
curl http://localhost:3000/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: your-local-secret-key" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-20250514",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello"}
]
}'
支持的参数:
model - 模型 ID(必需)messages - 对话消息数组(必需)stream - 是否流式输出(默认 true)max_tokens - 最大输出长度temperature - 温度参数(0-1)创建 docker-compose.yml:
version: '3.8'
services:
factory2api:
image: orangeqiu/factory2api:latest
container_name: factory2api
restart: unless-stopped
ports:
- "3000:3000"
environment:
- TZ=Asia/Shanghai
- FACTORY_API_KEY=fk-key1,fk-key2,fk-key3
- ADMIN_PASSWORD=your-admin-password
- LOCAL_API_KEY=your-local-secret-key
volumes:
- ./data:/app/data # 持久化数据
启动服务:
docker-compose up -d
| 变量名 | 说明 | 必需 | 默认值 |
|---|---|---|---|
FACTORY_API_KEY | Factory API 密钥,支持多个(逗号分隔) | 是 | - |
ADMIN_PASSWORD | 管理面板密码 | 推荐 | - |
LOCAL_API_KEY | 本地访问验证密钥 | 可选 | - |
PORT | 服务端口 | 否 | 3000 |
NODE_ENV | 运行环境 | 否 | production |
编辑 config.json 自定义配置:
{
"port": 3000,
"models": [
{
"name": "Claude Opus 4",
"id": "claude-opus-4-20250514",
"type": "anthropic"
},
{
"name": "Claude Sonnet 4",
"id": "claude-sonnet-4-20250514",
"type": "anthropic"
}
]
}
设置多个密钥用逗号分隔:
export FACTORY_API_KEY="fk-key1,fk-key2,fk-key3"
系统会自动使用 Round-robin 算法轮换密钥,实现负载均衡。
如果服务器部署在公网,建议设置 LOCAL_API_KEY 防止滥用:
export LOCAL_API_KEY="your-strong-secret-key"
客户端请求时需要携带密钥:
Authorization: Bearer your-strong-secret-keyx-api-key: your-strong-secret-key注意: 根路径 / 和管理面板 /admin 不需要本地验证。
方式1:修改配置文件
编辑 config.json 中的 port 字段:
{
"port": 8080
}
方式2:设置环境变量
export PORT=8080
挂载 data 目录到宿主机:
docker run -d \
-v ./data:/app/data \
...
| 端点 | 说明 | 认证 |
|---|---|---|
/ | 服务状态检查 | 否 |
/v1/models | 获取模型列表 | LOCAL_API_KEY(可选) |
/v1/chat/completions | OpenAI 格式对话补全 | LOCAL_API_KEY(可选) |
/v1/messages | Claude 格式对话补全 | LOCAL_API_KEY(可选) |
/admin | 管理面板 | ADMIN_PASSWORD |
查看 RELEASE_NOTES_v1.7.0.md 了解最新版本的详细更新内容。
MIT License - 查看 LICENSE 了解详情
如有问题或建议,欢迎提交 Issue 或 Pull Request! 🚀
Content type
Image
Digest
sha256:1dc7f0a36…
Size
61.1 MB
Last updated
11 months ago
docker pull orangeqiu/factory2api