这是一个 OpenAI/Anthropic 兼容 API 中转站。运行态使用 PostgreSQL 做交易数据库,Redis 做 session、限流和并发计数。
npm install高并发部署建议使用 PostgreSQL 作为主数据库、Redis 作为 session / 限流 / 并发计数存储:
docker compose -f docker-compose.infra.yml up -d
npm run smoke:infra复制 .env.example 为 .env,然后填入你的 DeepSeek API Key:
Copy-Item .env.example .env.env 里至少需要配置:
DATABASE_URL=postgres://api_relay:api_relay@127.0.0.1:5432/api_relay
REDIS_URL=redis://127.0.0.1:6379
DEEPSEEK_API_KEY=sk-your-deepseek-key
ADMIN_SESSION_SECRET=换成一串长随机字符串
KEY_ENCRYPTION_SECRET=再换成另一串长随机字符串
ADMIN_ALLOWED_IPS=留空表示不限制后台 IP
ADMIN_LOGIN_MAX_FAILURES=5
ADMIN_LOGIN_LOCK_MINUTES=10
GLOBAL_CONCURRENCY_LIMIT=200
KEY_CONCURRENCY_LIMIT=20
UPSTREAM_CONCURRENCY_LIMIT=50
CONCURRENCY_LEASE_MS=120000
STUCK_RESERVATION_MINUTES=30
npm run cli -- create-admin admin 你的管理员密码
npm run cli -- create-customer 测试客户
npm run cli -- recharge 1 10 测试充值
npm run cli -- create-key 1 CherryStudiocreate-key 输出的 Key 只显示一次,请保存好。客户调用中转站时使用这个 Key,不使用 DeepSeek 原始 Key。
npm run dev默认地址:
- API Base URL:
http://localhost:3000/v1 - 管理后台:
http://localhost:3000/admin - 模型列表:
http://localhost:3000/v1/models
- Provider 类型:OpenAI 兼容
- Base URL:
http://localhost:3000/v1 - API Key:中转站生成的
sk-relay-... - 模型名:
deepseek-v4-pro
打开 网页端ai智能体.html 后,在“配置模型”里填写:
- API 提供商类型:OpenAI 兼容或国产 OpenAI 兼容
- Base URL:
http://localhost:3000/v1 - API Key:中转站生成的
sk-relay-... - 对话模型名:
deepseek-v4-pro
第一版不修改这个 HTML 文件。
- 数据库金额用人民币“分”保存。
- 后台显示人民币金额。
- 默认模型是
deepseek-v4-pro。 - 模型售价按三段填写:输入缓存命中、输入缓存未命中、输出,单位都是人民币元 / 百万 token。
- 后台还可以按三段填写每个模型的上游成本价,用于估算毛利;成本价不影响客户扣费。
- 如果请求没有传
max_tokens,系统按2048预扣。 - 预扣时输入 token 全部按“缓存未命中输入价”估算,保证余额校验偏严格。
- 请求完成后按上游返回的真实
usage结算;如果返回prompt_cache_hit_tokens和prompt_cache_miss_tokens,就按缓存命中/未命中分别计费;如果没有这些字段,则全部输入按缓存未命中价计费。 - 多扣部分会退回余额。
- 请求失败会释放预扣金额。
- 超过
STUCK_RESERVATION_MINUTES仍未结算的预扣会由后台清理任务自动释放。 - 余额预扣、结算、释放使用 PostgreSQL 短事务和行级锁。
- API Key 每分钟限流、全局/API Key/上游并发限制都使用 Redis TTL 计数,超限会返回
429或503。
npm run cli -- list-customers
npm run cli -- list-keys
npm run cli -- list-models
npm run cli -- list-logs
npm run cli -- list-admins
npm run cli -- reset-admin 1 新账号 新密码
npm run build管理后台地址是 http://localhost:3000/admin,当前版本支持:
- 查看客户数、余额、Key、调用量、收入等运营统计。
- 复制 Cherry Studio 和网页端的接入信息。
- 创建客户、充值、发放、禁用和删除 API Key。
- 查看和复制新生成的完整 API Key。
- 为每个 API Key 设置每分钟请求上限,
0表示不限速。 - 为每个 API Key 设置每日、每月和总消费额度,
0表示不限额。 - 为每个 API Key 设置允许模型白名单,多个模型用英文逗号分隔,留空表示不限。
- 为每个 API Key 设置单次
max_tokens输出上限,0表示不限。 - 重命名 API Key。
- 编辑模型名、上游模型名、启用状态和三段人民币 token 售价。
- 编辑每个模型的三段上游成本价,并查看收入、成本、毛利和毛利率。
- 查看客户财务报表,按客户汇总调用、Token、收入、成本、毛利和毛利率。
- 导出客户财务报表 CSV,方便对账。
- 查看调用日志和余额流水。
- 查看单个客户详情,包括客户 Key、调用日志、余额流水和累计扣费。
- 查看模型维度统计。
- 按客户名称搜索客户。
- 按日期范围筛选调用日志和余额流水。
- 导出当前调用日志和余额流水 CSV。
- 运行态数据在 PostgreSQL;请使用 PostgreSQL 备份方案备份生产数据。
- 管理员登录失败次数过多会临时锁定。
- 可选启用后台 IP 白名单。
- 后台会显示关键安全配置风险提示。
- 查看管理员操作日志,记录登录、充值、Key 操作、模型保存和备份下载等动作。
- 在后台修改管理员账号和密码。
注意:旧版本生成的 API Key 只保存了哈希,无法恢复完整明文。配置 KEY_ENCRYPTION_SECRET 后,新生成的 Key 会加密保存,可在后台完整查看和复制。
默认 Docker Compose 会创建本地目录:
postgres_data/
redis_data/
这两个目录已被 .gitignore 忽略。生产环境建议使用托管 PostgreSQL/Redis 或独立持久化卷。