Monoize
仪表盘

Provider 与 Channel

用 Group 内有序的 Provider 和内嵌 Channel 定义上游路由。

概念

  • Provider(服务提供者) 属于一个 Group。它定义路由顺序、默认价格、健康策略和有序的变换链。
  • Channel(通道) 是 Provider 唯一的上游端点。它保存上游类型、Base URL、凭据、模型映射和超时。

请求先选择 Provider,再在其中选择 Channel。选择规则参见路由与可靠性。

Provider 列表

创建 Provider

  1. 在侧边栏打开服务提供者。
  2. 点击创建按钮并输入名称。
  3. 选择一个 Group,并配置内嵌 Channel。
  4. 确认 Provider 和 Channel 名称可以显示在公开页面中。
  5. 默认值不合适时,设置 channel_max_retries 和 channel_retry_interval_ms。
  6. 除非有明确理由,保持 circuit_breaker_enabled 开启。

配置 Channel

  1. 打开 Provider 并选择 Channel。
  2. 选择上游类型:responses、chat_completion、messages、gemini、openai_image、replicate、seedance 或 minimax_video。
  3. 填写上游 Base URL 和 API 密钥。
  4. 可选:设置 proxy_url,覆盖进程级上游代理。

之后编辑 Channel 时,API 密钥留空则保持原有密钥不变。

如果图片模型的上游要求使用 Images API,请将该模型的 API 类型覆盖设为 openai_image。带用户图片的请求使用 /v1/images/edits,包括流式请求。内嵌图片使用 multipart 上传。URL 或文件 ID 引用使用 JSON;请确认上游支持对应的引用类型。

会话缓存请求头

在 Channel 上设置自动会话亲和,即可在每个转发请求上发送稳定的会话标识。

该设置为 null 时,Monoize 对以下 Base URL 自动开启:

  • Cloudflare Workers AI:https://api.cloudflare.com/client/v4/accounts/{account_id}/ai(可选 /v1)
  • OpenCode Zen 或 OpenCode Go:https://opencode.ai/zen 及其子路径

开启后,Monoize 用同一值发送这两个请求头:

  • x-session-affinity
  • x-opencode-session

取值顺序:Channel 自定义请求头中的上述任一名称、客户端请求头(session_id、session-id、x-session-id、x-opencode-session 或 x-session-affinity)、请求体中的会话标识、prompt_cache_key,最后是会话头部的哈希。

OpenCode Go 用 x-opencode-session 将会话绑定到提示缓存。缺少该请求头的请求可能失败。

对 OpenCode Zen 或 OpenCode Go 的存活探测:当 Channel 自定义请求头未设置这两个名称时,发送字面值 mono-probe。

测试 Channel

打开 Channel,运行顺序测试或并发测试。

测试会发送一次短流式补全,输出上限为 16 个 token。仅 HTTP 2xx 不够。流必须到达协议终结事件。

对 Responses Channel,response.completed 算通过。没有 error 对象的 response.incomplete 也算通过。推理模型可能打满 16 token 上限并返回 incomplete。该结果仍表示 Channel 可达。

映射模型

内嵌 Channel 列出它服务的逻辑模型。模型映射包含:

  • redirect:真实的上游模型名。留空则按逻辑名原样发送。
  • 价格 Profile 模式:继承 Provider 默认值、覆盖默认值或设为未定价。
  • 可选倍率覆盖。未设置时继承 Provider 倍率。

只有当 Channel 已启用且模型映射具有完整价格时,该模型才会路由到这个 Provider。

出现定价警告时仍可保存 Provider。检查每条警告中的逻辑模型和缺失 usage class。发送流量前添加缺失费率。

Provider 变换

Provider 可以持有一组有序的变换规则。它们在 Provider 选定之后、上游编码之前,作用于同步推理请求。视频任务不执行变换。参见变换。

批发 Provider

agent(代理)分组服务代理账户,不持有普通 Provider。

  1. 先创建一个 agent 类别的 Group:可在服务提供者页把目录范围切换到 agent 后创建,也可在没有代理分组时直接在批发对话框内创建。
  2. 点击添加批发 Provider。
  3. 选择一个属于 standard、enterprise 或 private 类别的现有 Provider 作为源。
  4. 系统一次性复制源 Channel 配置和模型映射。复制后彼此独立,源的变化不会同步。
  5. 每个模型的倍率默认等于源倍率。保存前可修改任意倍率,之后也可用普通 Provider 编辑器修改。
  6. 批发 Provider 复用源的 Billing Profile,用自己的倍率决定批发价格。

只有代理账户能看到代理分组、在其中创建 API key 并使用其倍率。代理账户的模型市场与其他类别遵循同一套规则。

分组

每个 Provider 只属于一个 Group。API 密钥只会路由到其允许 Group 中的 Provider。使用 Group 区分用户等级或环境。

创建或重命名 Group 时确认公开显示。公开模型广场和状态页会显示已确认的 Group、Provider 和 Channel 名称。

视频 Channel

选择 seedance 或 minimax_video。Seedance 的 Base URL 为 https://ark.cn-beijing.volces.com/api/v3。MiniMax 的 Base URL 为 https://api.minimax.io。

点击从上游获取,选择要导入的视频模型。Seedance 使用 /api/v3/models。MiniMax 中转站使用兼容 OpenAI 的 /v1/models 接口。此操作只读取模型列表,不生成视频。上游不提供模型列表时,手动添加模型映射。将 redirect 设为上游模型 ID。以 MiniMax-H3 开头的模型使用 v2,其余 MiniMax 模型使用 v1。视频 Channel 不执行补全文本探测或 URP transforms。

打开模型元数据 → 计费 Profile → 视频任务定价,点击添加视频费率。

  1. 输入 Billing Profile 名称。可选择现有名称,也可创建新 Profile。
  2. 输入上游模型 ID 或匹配模式。按需限制 Channel 协议。
  3. 选择 CNY 或 USD,填写每任务价格、优先级和启用状态。
  4. 保存费率。在 Provider 或模型映射中选择此 Profile。

价格最多支持 9 位小数,允许为 0。切换货币会清空价格,请重新输入对应货币金额。 时长和分辨率不改变此固定单价。最终价格另乘 Provider 或模型倍率。 创建时预留费用,成功后结算一次。确认失败或提交前取消时,退还一次。 结果未知时保留预留费用,等待管理员核查。不要通过新建任务来重试结果未知的提交。 使用带 Idempotency-Key 的 POST /v1/videos 创建任务,再轮询 GET /v1/videos/{id}。参见 API 接口。

截图中的价格仅为示例,不代表上游价格。

视频固定任务定价

也可使用管理 API。使用管理员会话,通过 PUT /api/dashboard/billing-rates/{id} 创建 Billing Profile 的计量费率。以下示例为每个成功任务一元人民币,另乘 Provider 倍率:

{
  "pricing_profile": "video-fixed",
  "model_pattern": "*",
  "rate_kind": "meter",
  "usage_class": "video_generation",
  "unit": "request",
  "unit_price_nano": "1000000000",
  "unit_price_currency": "CNY",
  "enabled": true
}

为 Provider 或模型映射选择该 Profile。不要设置上下文、服务等级和缓存 TTL。match_json 使用空对象。人民币费率需要汇率快照。缺少价格时不能提交任务。

任务执行期间保留原 Channel 的凭据和 Base URL。任务始终绑定原上游账户。修改模型映射或价格只影响新任务。

视频 Channel 配置

本页目录