![token-factory](/web/public/logo.png) # TokenFactory **自托管的 AI 网关:** 把多家模型供应商收口到统一 API,配套用户/令牌/配额与 Web 管理台。 --- ### 上游仓库(请务必阅读) **TokenFactory 派生自 [QuantumNous/new-api](https://github.com/QuantumNous/new-api)(New API)。** 该仓库是设计理念、协议覆盖与社区演进的主要来源;本 fork 可能与之不同,行为与接口请以官方文档为基准,并结合你实际运行的版本验证。 | | | | --- | --- | | **上游仓库** | **[github.com/QuantumNous/new-api](https://github.com/QuantumNous/new-api)** | | **许可** | [GNU AGPL v3.0](./LICENSE) — 本仓库修改同样适用;详见 [`NOTICE`](./NOTICE) | | **网络提供服务** | 若向他人提供修改版的网络访问,须遵守 **AGPL 第 13 条**,提供对应完整源代码(同等许可)。 | ---

简体中文 | 繁體中文 | English | Français | 日本語

AGPL-3.0   上游 QuantumNous/new-api   本仓库

快速开始文档界面语言部署许可证帮助

## 关于本仓库 TokenFactory 提供的是一套可 **私有化部署的控制面**:集中配置渠道、模型映射、访问策略与用量观测,由你本地运行服务并对外暴露端点。 本 README 只描述 **本 fork** 的定位与入口,**不**替代上游的功能清单与法律文本——后者始终与 **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** 及本树中的许可文件绑定。 ## 合规与免责 - 使用须遵守各模型/平台条款(如 OpenAI [使用条款](https://openai.com/policies/terms-of-use))及所在地**法律法规**,禁止违法或滥用。 - 在中国大陆请遵守生成式人工智能服务备案等要求(如 [《生成式人工智能服务管理暂行办法》](http://www.cac.gov.cn/2023-07/13/c_1690898327029107.htm)),勿向公众提供未按规定完成的生成式 AI 服务。 - **不作稳定性或服务承诺**:除非你自行或第三方提供支持,否则按基础设施软件自行运维。 --- ## 快速开始 ### 使用 Docker Compose(推荐) ```bash # 克隆项目 git clone https://github.com/QuantumNous/token-factory.git cd token-factory # 编辑 docker-compose.yml 配置 nano docker-compose.yml # 启动服务 docker-compose up -d ```
使用 Docker 命令 ```bash # 拉取最新镜像 docker pull ghcr.io/fyinfor/token-factory:latest # 使用 SQLite(默认) docker run --name token-factory -d --restart always \ -p 3000:3000 \ -e TZ=Asia/Shanghai \ -v ./data:/data \ ghcr.io/fyinfor/token-factory:latest # 使用 MySQL docker run --name token-factory -d --restart always \ -p 3000:3000 \ -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \ -e TZ=Asia/Shanghai \ -v ./data:/data \ ghcr.io/fyinfor/token-factory:latest ``` > **💡 提示:** `-v ./data:/data` 会将数据保存在当前目录的 `data` 文件夹中,你也可以改为绝对路径如 `-v /your/custom/path:/data`
--- 服务就绪后访问 **`http://localhost:3000`**。更多安装方式见 **[安装文档](https://docs.newapi.pro/zh/docs/installation)**。 --- ## 文档 **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** 生态站点发布 API、模型与运维说明;TokenFactory 继承该栈,请以官方文档为**准绳**,并结合你本地构建验证。 | | | | --- | --- | | 手册(中 / 英) | [简体中文](https://docs.newapi.pro/zh/docs) · [English](https://docs.newapi.pro/en/docs) | | 环境变量 | [配置说明](https://docs.newapi.pro/zh/docs/installation/config-maintenance/environment-variables) | | 中继 / REST | [API 文档](https://docs.newapi.pro/zh/docs/api) | | 功能总览 | [特性说明](https://docs.newapi.pro/zh/docs/guide/wiki/basic-concepts/features-introduction) | | 问答与社区 | [FAQ](https://docs.newapi.pro/zh/docs/support/faq) · [交流渠道](https://docs.newapi.pro/zh/docs/support/community-interaction) | | 第三方深度梳理 | [DeepWiki — QuantumNous/new-api](https://deepwiki.com/QuantumNous/new-api) | **本仓库:** 打包、默认配置、CI 等 **fork 特有问题** 请在本仓库提 Issue。若与上游行为一致,请先在 **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** 复现并按其规范反馈。 --- ## 能力概览(精简) 以下为对上游能力的**摘要**,非完整规格: - **中继** — 多家供应商适配器,统一对外 API(含 OpenAI 兼容及其他格式,详见上游)。 - **控制台** — 渠道、模型映射、用户与令牌、用量与计费相关配置。 - **策略** — 配额、限流、失败重试;启用 Redis 时可使用缓存等能力(见上游文档)。 - **存储** — SQLite / MySQL / PostgreSQL;可选 Redis(会话、缓存、加解密等按文档配置)。 逐模型、逐接口细节请查阅 **[API 文档](https://docs.newapi.pro/zh/docs/api)** 与 **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** 的发行说明。 --- ## 支持的语言 | 代码 | 语言 | |------|------| | `zh-CN` | 简体中文 | | `zh-TW` | 繁体中文 | | `en` | 英语 | | `fr` | 法语 | | `ru` | 俄语 | | `ja` | 日语 | | `vi` | 越南语 | | `id` | 印尼语 | | `ms` | 马来语 | | `th` | 泰语 | | `sw` | 斯瓦希里语 | --- ## 部署 > [!TIP] > **最新版 Docker 镜像:** `ghcr.io/fyinfor/token-factory:latest` ### 📋 部署要求 | 组件 | 要求 | |------|------| | **本地数据库** | SQLite(Docker 需挂载 `/data` 目录)| | **远程数据库** | MySQL ≥ 5.7.8 或 PostgreSQL ≥ 9.6 | | **容器引擎** | Docker / Docker Compose | ### ⚙️ 环境变量配置
常用环境变量配置 | 变量名 | 说明 | 默认值 | |--------|--------------------------------------------------------------|--------| | `SESSION_SECRET` | 会话密钥(多机部署必须) | - | | `CRYPTO_SECRET` | 加密密钥(Redis 必须) | - | | `SQL_DSN` | 数据库连接字符串 | - | | `REDIS_CONN_STRING` | Redis 连接字符串 | - | | `STREAMING_TIMEOUT` | 流式超时时间(秒) | `300` | | `STREAM_SCANNER_MAX_BUFFER_MB` | 流式扫描器单行最大缓冲(MB),图像生成等超大 `data:` 片段(如 4K 图片 base64)需适当调大 | `64` | | `MAX_REQUEST_BODY_MB` | 请求体最大大小(MB,**解压后**计;防止超大请求/zip bomb 导致内存暴涨),超过将返回 `413` | `32` | | `AZURE_DEFAULT_API_VERSION` | Azure API 版本 | `2025-04-01-preview` | | `ERROR_LOG_ENABLED` | 错误日志开关 | `false` | | `PYROSCOPE_URL` | Pyroscope 服务地址 | - | | `PYROSCOPE_APP_NAME` | Pyroscope 应用名 | `token-factory` | | `PYROSCOPE_BASIC_AUTH_USER` | Pyroscope Basic Auth 用户名 | - | | `PYROSCOPE_BASIC_AUTH_PASSWORD` | Pyroscope Basic Auth 密码 | - | | `PYROSCOPE_MUTEX_RATE` | Pyroscope mutex 采样率 | `5` | | `PYROSCOPE_BLOCK_RATE` | Pyroscope block 采样率 | `5` | | `HOSTNAME` | Pyroscope 标签里的主机名 | `token-factory` | 📖 **完整配置:** [环境变量文档](https://docs.newapi.pro/zh/docs/installation/config-maintenance/environment-variables)
### 🔧 部署方式 **Docker Compose:** 见上文 [快速开始](#快速开始)(克隆 → 编辑 `docker-compose.yml` → `docker-compose up -d`)。
备选:直接 docker run **使用 SQLite:** ```bash docker run --name token-factory -d --restart always \ -p 3000:3000 \ -e TZ=Asia/Shanghai \ -v ./data:/data \ ghcr.io/fyinfor/token-factory:latest ``` **使用 MySQL:** ```bash docker run --name token-factory -d --restart always \ -p 3000:3000 \ -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \ -e TZ=Asia/Shanghai \ -v ./data:/data \ ghcr.io/fyinfor/token-factory:latest ``` > **💡 路径说明:** > - `./data:/data` - 相对路径,数据保存在当前目录的 data 文件夹 > - 也可使用绝对路径,如:`/your/custom/path:/data`
宝塔面板 1. 安装宝塔面板(≥ 9.2.0 版本) 2. 在应用商店搜索 **TokenFactory** 3. 一键安装 📖 [图文教程](./docs/installation/BT.md)
### ⚠️ 多机部署注意事项 > [!WARNING] > - **必须设置** `SESSION_SECRET` - 否则登录状态不一致 > - **公用 Redis 必须设置** `CRYPTO_SECRET` - 否则数据无法解密 ### 🔄 渠道重试与缓存 **重试配置:** `设置 → 运营设置 → 通用设置 → 失败重试次数` **缓存配置:** - `REDIS_CONN_STRING`:Redis 缓存(推荐) - `MEMORY_CACHE_ENABLED`:内存缓存 --- ## 谱系 | 仓库 | 角色 | | --- | --- | | **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** | **上游** — New API(AGPL-3.0)。**非本 fork 专属问题**、功能设计与主社区请优先关注此处。 | | [One API](https://github.com/songquanpeng/one-api) | 同族谱系中更早的 MIT 许可实现。 | | [Midjourney-Proxy](https://github.com/novicezk/midjourney-proxy) | 可选 Midjourney 对接(详见上游文档)。 | 周边工具(如 [neko-api-key-tool](https://github.com/Calcium-Ion/neko-api-key-tool))见上游与社区说明。 --- ## 帮助 ### 📖 文档资源 | 资源 | 链接 | |------|------| | 📘 常见问题 | [FAQ](https://docs.newapi.pro/zh/docs/support/faq) | | 💬 社区交流 | [交流渠道](https://docs.newapi.pro/zh/docs/support/community-interaction) | | 🐛 反馈问题 | [问题反馈](https://docs.newapi.pro/zh/docs/support/feedback-issues) | | 📚 完整文档 | [官方文档](https://docs.newapi.pro/zh/docs) | ### 🤝 贡献指南 欢迎各种形式的贡献! - 🐛 报告 Bug - 💡 提出新功能 - 📝 改进文档 - 🔧 提交代码 --- ## 许可证 本项目(**TokenFactory**)采用 [GNU Affero 通用公共许可证 v3.0 (AGPLv3)](./LICENSE) 授权;后续修改与再衍生作品在 AGPL-3.0 下继续适用,除非您另行取得著作权人的商业许可。 **署名说明:** TokenFactory 派生自 [QuantumNous/new-api](https://github.com/QuantumNous/new-api)(New API),上游亦为 AGPL-3.0;项目链条中更早的基础为 [One API](https://github.com/songquanpeng/one-api)(MIT 许可证)。请保留上游与本仓库的版权声明、[`LICENSE`](./LICENSE) 及 [`NOTICE`](./NOTICE)。**AGPL 第 13 条:** 若您将修改版以网络服务形式向他人提供,须向其提供对应完整源代码(同等许可)。 如果您所在的组织政策不允许使用 AGPLv3 许可的软件,或您希望规避 AGPLv3 的开源义务,请发送邮件至:[support@quantumnous.com](mailto:support@quantumnous.com) ---
**TokenFactory** — 本 fork 提供的自托管 AI 网关发行版。 **上游:** **[QuantumNous/new-api](https://github.com/QuantumNous/new-api)** · **文档:** [docs.newapi.pro](https://docs.newapi.pro/zh/docs) · **本仓库:** [Issues](https://github.com/QuantumNous/token-factory/issues) New API 项目由 **QuantumNous** 与贡献者维护。JetBrains 通过免费 IDE 许可支持开源开发。