1. 从一次“账单对不上”说起:New-API 渠道配置到底在解决什么
如果你正在自建 New-API 聚合网关,多半会遇到这样一个场景:上游接了好几家模型服务,客户端却只想用一个 Base URL 和一把 Key;月底对账时发现网关账面消耗和厂商账单差了一截;某条渠道突然限流,下游请求直接 500。这些问题的根子,基本都落在三件事上——渠道配置、模型倍率、负载均衡。
New-API 是一个 OpenAI 兼容 API 聚合网关,它把 DeepSeek、通义、智谱等各家格式各异的接口,统一转换成一套/v1/chat/completions标准接口对外提供服务。客户端(Cursor、Dify、LangChain)不用改代码,换模型只改模型名。它适合谁?适合需要统一管理多家上游 Key、做内部成本分摊、又不想让每个使用者直接接触厂商密钥的团队。
我这次实操的目标很明确:把上游 endpoint 和鉴权集中管理,同时用 TaoToken 的统一 Key/API 通道作为其中一条上游渠道接入,验证多渠道调度是否真的能按权重分发、故障时能否自动切换。下面把渠道分组、倍率表、权重设置逐项拆开,给出可复制的配置片段和一轮请求分发验证。
先理清核心链路:上游渠道(各家官方 Key 或统一通道)→ 网关中转 → 用户账号 → 账号下生成 API 密钥 → 客户端调用,扣账号钱包余额。理解这条链路,后面所有配置都不会迷路。
2. TaoToken 前置准备:统一 Key 与 API 通道怎么接进 New-API
在配置 New-API 渠道之前,先把上游侧准备好。TaoToken 提供统一的 API 通道,官网入口是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址为 https://taotoken.net/api (这个地址不加 UTM 参数,直接用于程序调用)。
你需要先拿到一把可用的 Key。登录后进入控制台,在 API Keys 页面创建密钥:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。创建时建议给密钥起一个能识别用途的备注,比如newapi-upstream,方便后续在 New-API 渠道里对应。密钥只在创建时完整展示一次,复制后妥善保存。
拿到 Key 之后,先别急着往 New-API 里填,用一条 curl 确认通道本身是通的:
curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoToken密钥" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "ping"}] }'如果返回正常的choices结构,说明 Key 和通道都没问题。这一步很关键——很多人把上游问题带进 New-API 里排查,结果绕了一大圈才发现是 Key 本身失效。先隔离验证,能省掉后面一半的排错时间。
关于模型 ID,TaoToken 的模型对话页可以查看当前可用模型清单:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。记下你要在 New-API 里映射的模型名,比如claude-sonnet-4-5、gpt-4o这类,后面配置渠道勾选模型时会用到。
如果你后续要做长期编码或 Agent 类调用,可以了解下 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ,它更适合高频、稳定的编码场景。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,遇到字段格式问题可以对照查。
前置准备清单就三样:一把 TaoToken Key、确认通道可用的 curl 结果、要映射的模型 ID。齐了再进 New-API。
3. 可复制配置:渠道分组、倍率表与权重设置
这一节是全文的核心,给出可以直接抄的配置。假设你的 New-API 部署在内网http://192.168.1.133:60002,下面所有操作都在这个网关的管理后台完成。
3.1 渠道配置片段(JSON 形式)
New-API 的渠道本质是一条上游连接记录。以 TaoToken 作为上游为例,关键字段如下。不同版本 UI 字段名略有差异,但语义一致:
{ "name": "taotoken-claude", "type": "openai", "base_url": "https://taotoken.net/api", "key": "sk-你的TaoToken密钥", "models": ["claude-sonnet-4-5", "claude-haiku-4-5"], "group": "default", "weight": 3, "priority": 10, "status": 1 }逐字段说明:type选openai是因为 TaoToken 走 OpenAI 兼容协议;base_url填https://taotoken.net/api,注意不要多加/v1,New-API 会自己拼接;models是这条渠道对外提供的模型列表,必须和你在 New-API 模型管理里启用的模型名一致;weight是负载均衡权重,数值越大分到的请求越多;priority用于故障切换的优先级,数值小的优先。
如果你要接多家上游做冗余,就复制这段,改name、base_url、key和weight。比如再配一条官方 DeepSeek 渠道,weight设 1,TaoToken 设 3,那么大约 75% 的请求走 TaoToken,25% 走 DeepSeek。
3.2 模型倍率表
倍率是 New-API 里最容易理解错的概念。它不是“相对官方价格的倍数”,而是每 1000 token 的记账单价。填 1 代表 1 元/1000 token。扣费公式:
消耗金额 = (输入 token × 输入倍率 + 输出 token × 输出倍率) ÷ 1000自用场景下,把倍率填成上游官方千 token 单价,网关账面就尽量贴近上游账单。对外分发场景,可以填大于官方的数值实现加价。默认值只是参考,不会自动跟随厂商调价,必须手动修正。
| 模型 | 输入倍率 | 输出倍率 | 说明 |
|---|---|---|---|
| claude-sonnet-4-5 | 0.003 | 0.015 | 按上游千 token 单价填写 |
| claude-haiku-4-5 | 0.0008 | 0.004 | 轻量模型,适合高频调用 |
| gpt-4o | 0.005 | 0.015 | 多模态场景 |
| deepseek-chat | 0.001 | 0.002 | 成本敏感型任务 |
注意:倍率只影响网关本地记账,不能改变厂商真实扣费,两者之间会存在少量 token 统计偏差,这是正常的。对账时以厂商账单为准,网关账面用于内部分摊。
3.3 权重与故障切换设置
负载均衡和故障切换都依赖“同一模型有多条渠道”。只有多条渠道勾选了相同模型,网关才会在它们之间分发。
权重轮询的逻辑是:请求按weight比例分配。故障切换的逻辑是:某条渠道出现超时、限流、密钥失效时,网关自动把请求转发到其他可用同模型渠道,下游无感知。priority决定切换顺序,weight决定正常时的流量比例。
配置建议:主力渠道weight设高、priority设小;备用渠道weight设低、priority设大。这样正常时主力扛量,主力挂了备用顶上。
3.4 账号与 API Key 关联
API Key 隶属于用户账号,扣费扣所属账号的钱包余额,密钥本身没有独立钱包。推荐流程是:管理员先创建子账号并分配额度,使用者登录自己账号,自行生成 API Key。不推荐管理员生成密钥再分发,那样密钥管理权在管理员手里,既不安全也不方便用户自主管理。
同一账号可以创建多个 API Key,共享该账号钱包余额,每个密钥还能单独设置消费上限。调用日志里可以看到密钥归属的用户 ID,方便追责和分摊。
4. 验证请求:一轮分发测试与失败重试观察
配置完不验证,等于没配。这一节给出一轮完整的请求分发验证,以及故障切换的观察方法。
4.1 基础连通测试
先用 curl 打一条请求,确认网关到上游整条链路是通的:
curl http://192.168.1.133:60002/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的网关密钥" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "做接口测试"}] }'返回正常choices就说明链路通了。注意这里的sk-是 New-API 生成的网关密钥,不是 TaoToken 的 Key,两者别搞混。
4.2 分发验证:连续打 20 条看比例
要验证权重是否生效,连续发多条请求,然后去【使用日志】里看每条请求命中了哪条渠道。写个小循环:
for i in $(seq 1 20); do curl -s http://192.168.1.133:60002/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的网关密钥" \ -d '{"model":"claude-sonnet-4-5","messages":[{"role":"user","content":"test"}]}' \ -o /dev/null -w "%{http_code}\n" done20 条打完,进【使用日志】按渠道筛选。如果 TaoToken 权重 3、DeepSeek 权重 1,理论上大约 15 条走 TaoToken、5 条走 DeepSeek。实际会有波动,但比例大致对得上就说明权重生效了。
4.3 故障切换观察
想验证自动切换,可以临时把主力渠道的 Key 改错,或者把status置为禁用,然后再打请求。正常情况下,请求不会报错,而是被转发到备用渠道。日志里会显示命中了备用渠道,下游客户端完全无感知。
这一步建议在测试环境做,别在生产上直接改主力渠道。观察完记得把配置改回来。
4.4 对接客户端
验证通过后,把网关地址填进客户端:
- Base URL:
http://192.168.1.133:60002/v1 - API Key:网关生成的
sk-密钥 - Model:已启用的模型名,如
claude-sonnet-4-5
Cursor、Dify、LangChain 都是这套填法。Dify 里选 OpenAI 兼容供应商,把 Base URL 换成网关地址即可。
5. 本篇常见错排查:401、local proxy failed 与 reading choices
配置过程中最容易撞上的几类报错,逐个拆。
401 Unauthorized:九成是 Key 填错或没带。检查三处——客户端填的是不是网关sk-密钥;New-API 渠道里填的是不是 TaoToken 的 Key;请求头Authorization: Bearer有没有漏。如果渠道测试成功但客户端 401,问题在客户端侧;如果渠道测试就 401,问题在上游 Key。
local proxy failed / connection refused:网关到上游连不通。先确认base_url没写错,TaoToken 是https://taotoken.net/api,不要多加/v1。再确认网关服务器本身能访问外网。内网部署的网关如果没配好出网,所有上游都会连不上。
reading choices 报错 / 返回结构异常:通常是上游返回了非标准结构,或者模型名对不上。检查渠道勾选的模型和请求里的model是否一致。如果用了 TaoToken 的 Claude 模型,确认模型 ID 拼写正确,去模型对话页核对:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。
OAuth / 鉴权格式错误:有些上游要求特定的鉴权头格式。TaoToken 走标准 Bearer,如果报鉴权格式错,检查是不是把 Key 填到了错误的字段,或者type选错了。
模型不存在:渠道没勾选该模型,或模型管理页没启用。两处都要确认。
账面金额和官方账单对不上:核对模型倍率配置。token 统计存在少量偏差属于正常,倍率填错才是大问题。
外网访问失败:192.168.1.133是内网地址,只有局域网设备能访问。需要外网访问就做公网部署或内网穿透。
排错的核心入口是【使用日志】,它会显示每次调用的 token、消耗和上游返回的原始报错。遇到问题先看日志,比盲猜快得多。
6. 把统一 Key 接入长期用起来:CTA 与后续维护
渠道配好、倍率填对、权重设好之后,这套多渠道路由方案就能稳定跑了。日常维护主要盯三件事:上游调价时手动更新倍率、渠道失效时看日志定位、余额不足时及时充值。
如果你还没准备好上游 Key,可以从 API Keys 页面创建:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。接入过程中遇到字段或格式问题,对照接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。想先验证模型效果,用模型对话页试跑:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。长期做编码或 Agent 调用,Coding Plan 更合适:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite 。
最后留一个实操习惯:每次改完渠道或倍率,都打一轮 20 条请求验证分发比例,再去日志里核对。配置改动不验证,等于给自己埋雷。这套流程跑顺之后,多渠道路由的维护成本会低很多。