ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

NewAPI网关部署与企业Token监管实操指南:TaoToken统一Key接入配置

2026/9/27 19:55:11 拓冰建站 浏览量
NewAPI网关部署与企业Token监管实操指南:TaoToken统一Key接入配置 1. 企业多团队共用 API 的真实痛点如果你所在的公司有研发一部、产品二部、算法组、外包团队同时要用大模型大概率会遇到这几个问题采购回来的 API Key 散落在各个负责人手里谁用了多少 Token 完全靠自觉某个团队把 Key 泄露出去账单暴涨却查不到源头不同项目组调用同一个模型但计费口径、模型命名五花八门月底对账像破案。NewAPI 网关就是来解决这类问题的。它本身是一个开源的 OpenAI 兼容网关能把上游各家模型厂商的 Key 统一收口再按分组、令牌、配额的方式分发给内部用户同时记录每一次调用的 Token 消耗。适合谁适合有 5 人以上团队、需要做 API 成本归因和权限隔离的技术负责人或运维同学。这篇聚焦两件事一是用 Docker Compose 把 NewAPI 网关在企业内网跑起来二是把 TaoToken 的统一 Key 接进网关让多团队共用一套入口。整个过程我会给出可直接复制的docker-compose.yml骨架、settings.json/config.toml示例以及启动后验证 Token 计量和限额是否生效的具体命令。踩过的坑我也会标出来比如端口映射、模型映射写错导致 404、令牌配额单位看错这类高频问题。2. TaoToken 前置准备统一 Key 与接入信息在把网关跑起来之前先把上游的接入信息准备好。TaoToken 在这里扮演的是「统一 Key 提供方」的角色——你从它这里拿到一个 Key 和 Base URL填进 NewAPI 的渠道配置里网关就能通过它去调用背后的模型。需要提前确认三样东西第一是 API Key。登录控制台后在 API Keys 页面创建建议按「网关专用」命名方便后续审计时区分是网关在调用还是个人在调用。创建入口在 https://taotoken.net/api-keys 创建后只显示一次记得立刻复制保存。第二是 Base URL。TaoToken 的 API 端点是https://taotoken.net/api注意这里不要加任何 UTM 参数直接用它作为渠道的代理地址即可。NewAPI 里填的 Base URL 要精确到版本路径OpenAI 兼容模式通常填https://taotoken.net/api/v1Claude 模式填https://taotoken.net/api具体以你选的渠道类型为准。第三是模型清单。在 https://taotoken.net/doc 里能看到当前支持的模型 ID比如glm-4.7、kimi-k2.5这类。这些真实 ID 后面要填进 NewAPI 的模型映射右侧写错了会直接返回模型不存在。提示企业场景建议单独申请一个「网关专用 Key」不要和个人开发用的 Key 混在一起。这样在 TaoToken 侧的用量统计里网关消耗和个人消耗是分开的对账时省事。如果你还想先验证一下 Key 能不能通可以打开 https://taotoken.net/model-conversation 用模型对话页面发一条测试消息确认返回正常再往下走。这一步能排除掉 Key 本身无效、余额不足这类低级问题。3. Docker Compose 部署 NewAPI 网关3.1 前置条件与目录准备一台 Linux 服务器Ubuntu 22.04 或 CentOS 7 都行已经装好 Docker 和 Docker Compose 插件。配置建议最低 4 核 8G因为 postgres 和 Redis 会一起吃内存。磁盘留 40G 以上日志和调用记录会持续增长。先建目录并拉代码mkdir -p /opt/newapi cd /opt/newapi git clone https://github.com/QuantumNous/new-api.git . git checkout v1.0.0-rc.4版本号以仓库最新 release 为准这里只是示例。checkout 完先别急着up下一步要改配置。3.2 可复制的 docker-compose.yml 骨架项目自带的 compose 文件已经包含 postgres、Redis、NewAPI 三个服务但默认密码是 123456端口也未必符合你的内网规划。下面是我调整过的骨架你可以直接覆盖version: 3.8 services: new-api: image: calciumion/new-api:latest container_name: new-api restart: always ports: - 3000:3000 environment: - SQL_DSNpostgresql://newapi:YourStrongPasspostgres:5432/newapi - REDIS_CONN_STRINGredis://redis:6379 - TZAsia/Shanghai depends_on: - postgres - redis volumes: - ./data:/data postgres: image: postgres:15 container_name: new-api-pg restart: always environment: - POSTGRES_USERnewapi - POSTGRES_PASSWORDYourStrongPass - POSTGRES_DBnewapi volumes: - ./pgdata:/var/lib/postgresql/data redis: image: redis:7-alpine container_name: new-api-redis restart: always volumes: - ./redisdata:/data几个关键点SQL_DSN里的密码要和 postgres 服务的POSTGRES_PASSWORD完全一致否则网关起不来会一直重连数据库端口映射3000:3000左边是宿主机端口内网如果走 80 就改成80:3000TZ设成上海时区不然日志时间对不上排查问题时很痛苦。改完执行docker compose up -d docker compose ps三个服务都显示running或healthy才算成功。如果 new-api 反复重启先看日志docker logs --tail100 new-api常见报错是password authentication failed那就是 DSN 密码和 postgres 密码不一致。3.3 初始化与基础安全设置浏览器访问http://服务器IP:3000首次进入是初始化引导设置管理员账号密码。这个密码后面所有管理操作都要用记牢。初始化完成后按企业内网的要求做几项收紧在「系统设置」→「速率限制设置」里启用用户模型请求速率限制限制周期 1 分钟每周期最多请求次数按团队规模设50 次是个保守起点。在「系统设置」→「系统设置」的登录注册处关闭「允许通过免密码进行注册」和「允许新用户注册」。企业内网账号统一由管理员创建不允许自助注册。在「系统设置」→「顶栏管理」里关闭模型广场和关于页面减少普通用户误操作入口。绘图功能如果不用在「绘图设置」里全部关掉。4. TaoToken 统一 Key 接入配置4.1 添加渠道并填入 TaoToken Key管理员登录后进入「渠道」页面点新建。服务商类型选 OpenAI 或 Claude取决于你打算用哪种接入方式。名称按来源构建比如taotoken-gw-01方便后面识别。密钥字段填入你在 TaoToken 创建的网关专用 Key。高级配置里的 Base URL 必须填OpenAI 兼容模式填https://taotoken.net/api/v1Claude 模式填https://taotoken.net/api。模型列表里手动勾选或输入你要开放的模型 ID比如glm-4.7、kimi-k2.5。保存后可以点渠道旁边的测试按钮返回成功说明 Key 和地址都对。4.2 模型映射统一内部叫法企业内部通常不希望用户直接看到上游那串原始模型 ID而是用统一命名。NewAPI 的模型映射就是干这个的。编辑渠道 → 高级配置 → 模型映射填入 JSON{ corp-glm-4.7: glm-4.7, corp-kimi-k2.5: kimi-k2.5, corp-kimi-k2.6: kimi-k2.6 }左边是用户调用时传的模型名右边是 TaoToken 侧的真实模型 ID。注意右侧必须是真实存在的 ID写错会返回模型不存在。映射只在当前渠道生效不同渠道可以有不同的规则。4.3 分组与令牌分发在「系统设置」→「分组与模型定价设置」里添加部门分组比如「研发一部」「产品二部」。倍率都按 1 设计避免内部结算时还要换算。然后创建令牌。进入「令牌管理」按使用人命名比如「张三-研发一部」。令牌分组选对应部门过期时间按需设配额上限初始给一个合理值模型限制选「所有配置模型」。令牌创建后只显示一次复制给对应同事。4.4 客户端接入示例OpenCode 用户修改~/.config/opencode/opencode.jsonc{ provider: { corp: { name: corp, npm: ai-sdk/openai-compatible, models: { corp-glm-4.7: { limit: { context: 200000, output: 65536 }, name: corp-glm-4.7 } }, options: { baseURL: http://你的服务器IP:3000/v1, apiKey: 在NewAPI创建的令牌 } } }, $schema: https://opencode.ai/config.json }Claude Code 用户修改~/.claude/settings.json{ env: { ANTHROPIC_DEFAULT_HAIKU_MODEL: corp-glm-4.7, ANTHROPIC_DEFAULT_SONNET_MODEL: corp-kimi-k2.5, ANTHROPIC_AUTH_TOKEN: 在NewAPI创建的令牌, ANTHROPIC_BASE_URL: http://你的服务器IP:3000, API_TIMEOUT_MS: 3000000 } }Base URL 指向网关地址不是 TaoToken 地址。这一点容易搞混——网关才是统一入口TaoToken 是网关背后的上游。5. 验证请求与 Token 计量生效配置完别急着交付先做一轮验证。用 curl 直接打网关的 OpenAI 兼容接口curl http://你的服务器IP:3000/v1/chat/completions \ -H Authorization: Bearer 你的令牌 \ -H Content-Type: application/json \ -d { model: corp-glm-4.7, messages: [{role: user, content: 只回复两个字收到}] }返回里应该有正常的choices结构。如果返回 404 且提示模型不存在检查模型映射右侧的真实 ID 是否写对如果返回 401检查令牌是否复制完整。调用成功后回到 NewAPI 后台「使用」页面应该能看到刚才这条调用记录时间、用户、模型、Token 消耗量、配额扣减详情都在。这一步是验证 Token 计量生效的关键——如果记录里 Token 消耗是 0说明上游返回的 usage 字段没被正确解析需要检查渠道类型是否选对。再验证限额把某个令牌的配额上限临时改成一个很小的值比如 1000 Token然后连续调用几次观察是否在超出后被拒绝。返回 429 或配额不足提示说明限额生效。6. 本篇常见错排查网关启动后访问 502多半是 new-api 容器没起来docker logs new-api看是不是数据库连接失败。DSN 密码和 postgres 密码不一致是最常见原因。调用返回模型不存在模型映射右侧写错了或者渠道的模型列表里没勾选这个模型。右侧必须是 TaoToken 侧真实存在的 ID可以在渠道的模型下拉列表里核对。Token 消耗显示为 0渠道类型选错了。OpenAI 兼容接口和 Claude 接口返回的 usage 结构不同选错会导致解析不到。确认你填的 Base URL 和渠道类型匹配。令牌配额扣减不对检查模型定价设置里的倍率如果倍率不是 1扣减量会按倍率放大。内部结算建议统一倍率为 1。客户端连不上网关Base URL 末尾的/v1有没有漏。OpenAI 兼容模式需要/v1Claude 模式不需要。另外确认客户端所在网络能访问网关的宿主机端口。排障过程中如果怀疑是上游 Key 的问题可以到 https://taotoken.net/api-keys 确认 Key 状态和余额接入配置的细节可以对照 https://taotoken.net/doc 里的说明逐项核对。长期做编码和 Agent 场景的团队可以考虑用 Coding Plan 把配额和模型绑定得更细入口在 https://taotoken.net/coding-plan 。