OctaFuse Gateway 2.14.0:图像与语音接入扩展、用户分组折扣与后台配置升级

OctaFuse Gateway 2.14.0 新增了多平台图片与语音接入:使用 OpenAI 接口的客户端,可以通过转换路由调用 MiniMax、Seedream 和 Gemini 的相应能力,也能传入厂商特有参数。

这次还补上了按路由组设置用户折扣和价格预览。后台配置改为逐项保存,修改用户资料时也不再写回旧的消费数据。

01|图像与语音接入扩展

客户端支持 OpenAI 接口,上游却要求另一种协议时,可以在 OctaFuse 中配置转换路由,由网关转换请求和响应。2.14.0 新增和扩展的接入如下:

上游 本次接入变化 客户端调用方式
MiniMax 新增文件转写、语音合成和图片生成适配器 使用 OpenAI 转写、语音合成或生图接口,也可调用 MiniMax 原生入口
Seedream 新增火山方舟与 BytePlus 共用的专用生图适配器 使用 OpenAI 生图接口,或调用新增的原生生图入口
Gemini 图片模型 补齐原生图片请求处理,新增 OpenAI 生图转换 使用 OpenAI 生图接口,或沿用 Gemini 原生入口;上游支持 Gemini API 和 Vertex AI
百炼 补充原生语音合成、异步文件转写与任务查询,完善多模态分流和 Qwen-TTS-Realtime 会话透传 按所需能力配置原生路由,原有 OpenAI 转换路由仍可使用

接入时,先配置供应商端点,再导入模型、建立路由。编辑器会按供应商协议和模型名筛选适配器;调用指南列出客户端入口、字段转换、计费方式、限制和 SDK 示例。

各适配器的支持范围不同:

  • Gemini :OpenAI 生图转换支持参考图和尺寸映射,但只支持单张、非流式、b64_json 响应,不支持 /v1/images/edits。需要流式或 Gemini 原始响应时,使用原生入口。
  • Seedream :OpenAI 转换返回非流式 JSON,原生入口支持 JSON 和 SSE。支持组图的型号可用 n 请求多张,5.0 Pro / Flash 则只能为 1。
  • MiniMax:文件转写不支持流式,单文件上限为 25MB;同步语音合成支持非流式和 SSE。

MiniMax 转写按时长、语音合成按上游返回的字符用量计费,MiniMax 和 Seedream 生图按成功张数计费。Gemini 图片请求按文本、图片等用量分项计费;没有返回有效图片、客户端取消或网关超时的 Gemini 生图请求,不扣 Gateway 用户额度。MiniMax 返回业务错误时,即使 HTTP 状态成功,也按失败处理。

厂商特有参数也能传入

图片比例、分辨率、语音情绪等参数往往不在 OpenAI 标准字段里。2.14.0 允许 OpenAI 图像生成、图像编辑、语音合成和转写请求携带额外字段,按上游原生结构合并到请求体。

例如,调用 MiniMax 语音合成路由时,用 OpenAI SDK 的 extra_body 设置情绪、音高和语言:

python 复制代码
client.audio.speech.create(
    model="minimax-speech-2.8-hd",
    input="你好,欢迎使用 OctaFuse。",
    voice="male-qn-qingse",
    extra_body={
        "voice_setting": {"emotion": "happy", "pitch": 2},
        "language_boost": "Chinese",
    },
)

model 填 Gateway 中已配置的模型 ID,voice 填 MiniMax 音色 ID。额外字段需符合对应厂商的格式;路由池包含多种协议时,要确认每个候选上游都能接受这些字段。

额外字段总量不能超过 32KB,模型名以及适配器用于计费和解析响应的关键字段不能被覆盖。路由默认值和强制覆盖仍按原有规则生效;百炼语音合成的 input.* 参数仍需写在路由请求参数中。

配好后直接验证结果

调试台(Playground)和模拟器(Simulator)支持调用新增的原生入口,编辑 Gemini 生图请求、预览图片,以及播放 MiniMax 非流式响应中的音频。生图样例按模型选择最低分辨率档位,避免使用不支持的尺寸。

MiniMax 原生语音合成设置 stream: false 后,返回的音频可直接播放或下载。

调试台只验证所选上游,不扣 Gateway 用户额度,但仍可能产生供应商调用费用。要检查鉴权、选路和实际扣费,使用模拟器或真实客户端。

02|用户分组折扣

日常使用和限时活动共用一个模型时,可能需要给同一用户不同的价格。此前用户倍率只按模型设置;2.14.0 可以进一步区分路由组。

在用户详情的"额度与计费"中,为模型添加分组倍率即可:

配置范围 用户倍率
default 分组 0.8
campaign 分组 0.5
其他分组(* 兜底) 0.9

按表中配置,campaign 使用 0.5,default 使用 0.8,其余分组使用 0.9。既没有匹配的分组,也没有 * 兜底时,沿用原路由计费。

用户倍率仍与路由有效倍率组合,不直接等于最终折扣。路由倍率为 0.6、用户倍率为 0.5 时,"相乘"模式得到 0.3,"取较小值"模式得到 0.5。只调整用户费用,供应成本不变。

分组倍率适用于文本、图片、音频扣费和模型列表的折扣展示。原有数字倍率继续对全部分组生效,无需改写。

图中默认倍率为 ×1,default 分组单独设置为 ×0.4。

保存后,在用户详情的"模型列表"中查看该用户可见的模型,核对各分组的目录、路由和合成倍率。

图中目录倍率为 ×2,default 和 free 分组分别展示路由与合成倍率。

预览只读取已保存的配置,不发起模型调用,也不消耗用户 RPM。默认显示 default、free 分组的文本模型,可按类型、分组和模型筛选,每次最多返回 40 个。门户也可通过只读接口 GET /api/admin/users/:id/models 获取结果。

03|后台配置升级

管理员编辑资料期间,用户可能仍在调用模型。此前保存整份表单可能把页面加载时的旧消费值写回去,覆盖新增消费。2.14.0 只提交修改过的字段,调整邮箱、限流或倍率不会影响最新用量。

用户详情分为"概览""额度与计费""模型列表""活动记录"。修改额度重置周期或时间,不再自动清零本周期已消费额度;需要修正消费值时,须单独修改对应字段。离开未保存的页面时会提示确认。

网关配置页按卡片独立保存。例如调整业务时区时,其他卡片中的草稿不会一起提交。卡片会标记未保存的修改,也可单独撤销。

04|其他更新

场景 本次变化
供应商预设 新增按量付费的"千问 AI 平台"和 MiniMax 国际站,更新千问 Token Plan 地址;按各平台能力补充 Responses、Anthropic、图像和音频端点,修正 LongCat Chat 地址。
端点配置 仅支持部分 OpenAI 能力的模板改为列出具体端点,不再用 Base 推导未确认支持的接口;百炼端点说明补充了 Base 与套餐专用端点的区别。
新增模型预设 新增 Claude Haiku 5.5、Gemini Nano Banana 2.1,以及 MiniMax ASR 1.0、Speech 2.8 HD / Turbo、Image 01 / 01 Live,补齐对应模态和计价配置。
价格与计价修正 修正 Claude Sonnet 5.5 缓存读取价格、Seedream 5.0 Pro 分辨率价格档位和 Grok Imagine Image 2.0 计价;OpenAI 生图未传 size 时,可用扩展字段 resolution 选择计价档位。
参数排查 多模态请求日志补充额外字段和被恢复的受保护字段记录,便于确认参数最终如何处理;data URL 内容会脱敏。
供应商卡片 未配置密钥或待确认的卡片不再显示"点击前往";导入和编辑弹窗仍可打开对应平台。

预设导入不会覆盖已有的同 ID 模型,也不会改写既有供应商端点。新地址和修正价格需核对上游后手动更新。

升级到 2.14.0

从 2.13.0 升级没有新增数据库结构迁移或必填配置。先备份数据库,再统一更新 Proxy、Admin 和 migrate 镜像;更早版本仍需按顺序执行未应用的迁移。所有 Proxy 升级后,再启用新协议或分组倍率。

升级时检查以下配置:

  1. 新多模态路由 :MiniMax 图像与音频需配置 minimax.base,Seedream 专用适配器需配置 volcengine.base,Gemini 图片转换需有效的 Gemini 端点,再导入模型并配置路由。已有 OpenAI 透传 Seedream 路由可以继续使用,无需强制切换;新增协议不代表视频、音乐等能力也已支持。
  2. 百炼生图尺寸 :dashscope-image-qwen 和 dashscope-image-wan 不再自动将 1024x1024 改成 1024*1024,而是原样传给上游。依赖旧转换的客户端或路由参数需要调整,按对应型号要求使用 1K、2K 或 宽*高 等取值。
  3. 存量端点与价格:已导入的数据不会自动更新。如果供应商仍通过 Base 声明了实际不支持的接口,应改为具体端点。Anthropic 和 Google 的 CNY 预设是 USD × 7 的换算占位价,不是独立人民币刊例。
  4. 外部系统读取倍率 :原有数字配置保持兼容。使用新分组配置后,直接读写 charged_cost_factors 的业务系统需兼容对象值;解析计价审计时,需允许新增的 user_charged_factor_route_group 分组键。

本次升级无需执行 scripts/db/migrate-image-billing-modes.mjs。如需使用,该脚本会修改多个指定模型的计价配置和价格,应先备份并检查 --dry-run;它不用于更新 Sonnet 缓存价格。

升级后,分别测试转换路由和原生路由,核对图片或语音用量与扣费,再检查分组折扣、兜底结果和配置保存。MiniMax 原生转写仍整段缓冲,不实时下发 SSE;无法读取时长时按文件估算计费。

完整变更与升级说明见 GitHub Release v2.14.0 和 更新记录。

如果 OctaFuse 对你的项目有帮助,欢迎在 GitHub 上点一个 Star,也欢迎反馈多模态接入、分组折扣和后台配置中遇到的问题。