OctaFuse Gateway 2.8.0 重点改善自部署用户最常遇到的几类配置:订阅套餐和加油包如何同时生效,路由协议应该怎么选,百炼图片模型如何复用 OpenAI 调用方式,以及怎样在管理后台验证实时语音、配置峰谷价格。

升级后,大部分已有应用不需要修改请求地址。主要变化集中在管理后台和计费能力:管理员可以更直观地配置额度、路由和价格,门户也能获得当前与后续时段的价格信息。

一句话看懂 2.8.0:

订阅额度和加油包可以同时使用,路由协议更容易配置,图片、语音和峰谷价格也更容易接入与验证。

01|一个用户同时拥有订阅额度和加油包

如果你通过 OctaFuse 对外提供付费服务,通常既有按月重置的订阅套餐,也有用户临时购买的加油包。2.8.0 将这两类额度分开保存,因此可以同时启用:

额度类型 适合场景 是否随周期重置
周期额度 月度订阅、团队配额、按周期赠送的额度 是,可按日、周或月重置
永久额度 加油包、充值、注册赠额、退款 否,不随订阅周期清零

扣费时会先使用周期额度,不足的部分再从永久额度扣除。例如,本月套餐只剩 3 元、加油包还有 20 元,一次调用需要 5 元时,系统会先扣除 3 元套餐额度,再扣除 2 元加油包余额。

因此,订阅额度用完或重置为 0 后,只要加油包还有余额,用户仍然可以继续调用。对话、图片、音频和智能体工具都会使用同一套余额判断方式。

管理员可以在用户(Users)详情页分别查看周期额度,以及永久额度的累计发放、累计消费和当前余额。套餐额度继续按原有周期配置;如果已经接入自己的门户,充值或购买加油包成功后应调用新的加额接口:

POST /api/admin/users/:id/wallet/credit
{
  "amount": 50,
  "kind": "topup",
  "external_ref": "order-20260830-001"
}

external_ref 填写支付订单号或业务流水号。即使支付平台重复回调,同一用户、同一业务编号也只会增加一次余额。用户详情仍允许管理员直接修正永久额度,但正常的购买流程不要再通过增加周期额度来发放。

请求日志和审计日志会分别记录本次消费来自周期额度还是永久额度,方便核对套餐扣费、加油包消费和周期重置。

OctaFuse 用户详情分别管理周期额度与永久额度

周期额度可以按日、周或月重置,永久额度不会随订阅周期清零。两类额度分开保存、同时参与余额判断。

02|配置路由时,不再猜测协议应该怎么组合

一条路由实际上包含两个方向:应用使用什么方式请求 OctaFuse,以及 OctaFuse 使用什么方式请求供应商。例如,客户端可以使用 OpenAI 图片接口,而上游实际使用的是百炼原生图片接口。

2.8.0 将这些转换关系整理为统一的“协议适配器”。创建或编辑路由(Routes)时,可以按下面的方式配置:

  1. 选择客户端使用的模型。
  2. 选择实际提供服务的供应商。
  3. 从可用列表中选择“客户端请求 → 实际上游”的协议适配器。
  4. 确认系统自动填入的客户端协议、客户端操作、上游协议和上游操作。
  5. 保存后先在调试台验证单条路由,再通过模拟器验证完整代理链路。

管理后台会根据模型和供应商端点过滤不兼容的选项,减少路由保存后才发现协议不匹配的情况。后续 OctaFuse 增加新的图片、音频、视频或向量协议时,也会沿用相同的配置方式。

OctaFuse 路由编辑器通过协议适配器确定客户端入口与实际上游

选择协议适配器后,客户端协议、客户端操作、上游协议和上游操作会自动匹配。图中同一个 OpenAI 模型可以选择 Chat 或 Responses 请求入口。

03|用 OpenAI 图片接口调用四款百炼模型

Qwen Image 3.0、Qwen Image 3.0 Pro、Wan 2.7 Image 和 Wan 2.7 Image Pro 已经在 2.7.0 加入模型目录,但当时只能使用百炼原生接口。2.8.0 补齐了 OpenAI 图片接口到百炼图片接口的转换。

完成配置后,已有应用仍然调用:

POST /v1/images/generations

OctaFuse 会在内部完成请求和响应转换:

覆盖模型 客户端请求入口 选择的协议适配器 实际上游能力
Qwen Image 3.0 / Pro OpenAI 图片生成 dashscope-image-qwen 百炼多模态图片生成
Wan 2.7 Image / Pro OpenAI 图片生成 dashscope-image-wan 百炼多模态图片生成

推荐按以下顺序配置:

  1. 从模型目录导入需要使用的千问或万相图片模型。
  2. 在百炼供应商中确认已经配置多模态图片生成端点。
  3. 创建路由,并为千问选择 dashscope-image-qwen,或为万相选择 dashscope-image-wan
  4. 在调试台(Playground)确认供应商能够返回图片。
  5. 在模拟器(Simulator)使用 OpenAI 图片端点测试用户密钥、路由、计费和请求日志。

应用不需要重新实现百炼原生协议,也不需要直接使用供应商的真实接口地址。例如,可以继续发送常见的 OpenAI 图片请求:

{
  "model": "qwen-image-3.0",
  "prompt": "水彩风格的海边灯塔",
  "n": 1,
  "size": "1024x1024"
}

千问一次支持生成 1–6 张图片,万相支持 1–4 张。未填写 n 时,OctaFuse 默认只生成 1 张,避免万相按照上游默认值一次生成 4 张而产生额外费用。

默认响应返回图片地址;需要 Base64 时,可以传入 response_format=b64_json。费用会按照实际成功返回的图片数量计算,千问 Pro 的 1K、2K 档位也会按照上游返回的实际图片类型计费。

需要注意的是,部分百炼套餐不能从基础地址自动得到图片生成地址。遇到路由中没有可选适配器,或调试台提示图片端点不可用时,请先在供应商配置中显式填写 images.generations.multimodal

04|在 Node/Docker 管理后台直接测试实时语音

使用 Node 或 Docker 部署管理后台时,现在可以直接在调试台测试百炼实时语音识别。打开推理 → 调试台(Inference → Playground),选择对应的实时语音路由后:

  1. 输入来源选择“浏览器麦克风”。
  2. 允许浏览器使用麦克风。
  3. 开始录音并观察连接状态和识别结果。
  4. 测试完成后主动停止会话。

调试台用于检查某一条供应商路由能否正常识别,不扣用户额度,也不写请求日志。确认上游可用后,再到模拟器使用真实用户密钥测试完整代理链路,检查鉴权、路由、计费和日志。

模拟器原本已经支持实时语音,本版进一步优化了默认麦克风选择、原始 PCM 文件上传和路由匹配。代理服务也增强了实时连接建立和异常关闭处理,降低会话刚开始时丢失音频或事件的概率。

OctaFuse 为百炼语音模型提供透传、实时识别和 OpenAI 文件转写适配器

同一个百炼语音模型会根据供应商端点列出可用适配器,可以选择百炼原生透传,也可以选择从 OpenAI 文件转写转换到百炼多模态语音识别。

05|分别配置供应商峰谷价和实际销售价

供应商的官方峰谷价格与运营侧设置的折扣或加价是两件事。2.8.0 可以在模型中保存供应商官方时段,再在路由中设置用户计费和供应成本倍率,避免把两层价格混在一起。

一次请求的路由价格可以理解为:

目录标准价 × 模型官方时段倍率 × 路由时段倍率

配置时可以按下面的顺序进行:

  1. 在模型计价中填写供应商官方峰谷时段和倍率。
  2. 在路由中设置默认的用户计费倍率与供应成本倍率。
  3. 如需按时段调整销售价格,在路由的相同时间窗口中填写对应倍率。
  4. 保存前查看实际价格预览,确认高峰、低谷和星期配置符合预期。

模型已经配置官方时段时,路由会沿用相同的起止时间和星期,只需要调整倍率,避免模型高峰与路由高峰错位。模型没有官方时段时,路由仍然可以独立增加分时规则。

门户调用 /v1/models 或公开的 /catalog/models 后,可以直接读取每个路由组当前生效的综合倍率、后续峰谷窗口和业务时区。因此,用户可以在选择模型时看到“现在是什么价格、下一个价格什么时候开始”,不再需要门户自行解析多套配置。

用户级模型折扣继续叠加

2.7.0 已经支持在用户详情中为指定模型设置专属折扣或加价,这项能力在 2.8.0 中继续生效。最终向用户收取的费用可以理解为:

目录标准价 × 模型官方时段倍率 × 路由用户计费倍率 × 用户专属模型倍率

例如,在用户详情的模型计费倍率(Charged cost factors)中为某个模型填写 0.8,表示该用户使用这个模型时享受八折;填写 0 表示该模型不向此用户计费;没有单独设置的模型保持正常价格。用户倍率只影响最终向用户收取的费用和额度消耗,不会改变供应商成本。

OctaFuse 在用户详情中为不同模型设置专属折扣

管理员可以为当前用户逐个添加模型倍率。图中的 0.9 表示九折,0.8 表示八折;未添加的模型保持正常价格。

/v1/models/catalog/models 展示的是模型目录与路由共同计算的公开价格,不包含某个用户的专属倍率。用户级折扣只在实际扣费时叠加,避免公开模型列表混入个人价格。

OctaFuse 在模型目录中配置供应商官方峰谷时段

DeepSeek V4 Flash 以低谷价作为目录标准价,工作日 09:00–12:0014:00–18:00 的官方倍率设为 2;其他时间自动使用目录标准价。

OctaFuse 路由同时展示模型官方时段、路由倍率与实际价格

左侧只读展示模型目录中的官方时段和对应价格,右侧设置路由的用户计费与供应成本倍率,并即时预览每个时段的实际价格。

06|其他日常使用优化

本次更新还包含几项管理和模型目录改进:

  • 新增 hy4-previewqwen3.8-flashglm-5.3-flash 模型预设。
  • 从目录导入模型时不再自动写入 model_tags,标签由管理员在导入后按供应商、套餐或用途维护。
  • 已经导入数据库的模型不会被后续静态目录更新覆盖。
  • Chat、Messages、Gemini、Audio 和 Responses 的客户端入口保持不变,已有应用不需要因为本次协议转换优化修改调用方式。

升级到 2.8.0

本版本包含数据库迁移 0027,支持 D1、PostgreSQL 和 MySQL。迁移会增加永久额度、加额防重复和永久额度扣费日志所需字段,并将符合条件的历史剩余额度迁入永久额度。

2.8.0 的上线顺序与通常的“先迁移、后启动”不同,请按以下顺序执行:

  1. 先部署同为 2.8.0 的代理服务(Proxy)和管理后台(Admin),新字段缺失时会按 0 处理。
  2. 运行迁移任务(migrate Job),应用数据库迁移 0027。
  3. 确认迁移结果后,再让门户改用 POST /api/admin/users/:id/wallet/credit
  4. 停止通过累加 budget_max 发放充值或购买额度。

升级前可以运行仓库中的 0027 只读审计脚本,预先查看哪些历史余额会迁入永久额度。升级后建议按照实际使用路径逐项检查:

  • 周期额度和永久额度是否按预期拆分,历史余额回填是否正确。
  • 同一 external_ref 重复加额时不会增加两次余额。
  • 套餐额度优先扣除,额度不足时能够继续使用加油包余额。
  • 路由编辑器能正确展示“客户端请求 → 实际上游”的协议适配器,千问和万相生图可以通过 OpenAI 图片端点正常返回并准确计费。
  • Docker 管理后台可以使用浏览器麦克风建立实时语音连接,模拟器也能正确选择路由并测试麦克风或 PCM 音频。
  • /v1/models/catalog/models 返回的当前倍率、峰谷窗口和时区符合模型、路由配置。
  • 已配置用户专属模型倍率的账号,能够在峰谷时段价格基础上继续得到正确的折扣或加价。
  • 既有 Chat、Messages、Gemini、Images、Audio 和 Responses 调用仍可正常工作。

升级前可查看 GitHub Release v2.8.0完整更新记录

小结

2.8.0 更适合直接部署 OctaFuse 并对外提供服务的团队:可以用周期额度管理订阅、用永久额度发放加油包;可以在路由中直接选择协议转换关系;也可以更清楚地配置和展示模型峰谷价格。

同时,四款百炼图片模型可以复用 OpenAI 图片端点,Node/Docker 管理后台也能直接验证实时语音识别。已有应用大多不需要修改调用方式,升级后的工作主要集中在重新核对额度、路由和价格配置。

如果 OctaFuse 对你的项目有帮助,欢迎在 GitHub 上点一个 Star。你的关注和反馈,会帮助我们继续完善路由、协议适配与自托管体验。