跳到主要内容

配置中心

管理台左侧 配置中心 是日常使用的入口:先配提供商和密钥,再挂模型,最后到 路由与虚拟密钥 对外暴露逻辑模型名。保存后即时生效,不必重启进程。

推荐顺序:

  1. 新增提供商(Base URL、可选代理、可选请求头)
  2. 在该提供商下新增密钥
  3. 新增模型并绑定密钥
  4. 到「路由」页创建逻辑模型名
  5. 到「虚拟密钥」页发一张调用凭证

配置中心有两个 Tab:提供商(实体 CRUD)和 请求头模板(全局模板库)。

提供商

一个提供商对应一个上游 API 入口,例如智谱、OpenRouter、自建 vLLM。

字段说明
名称唯一标识,后面 provider/model 直达语法用的就是这个名字
Base URL上游根地址,必须以 http://https:// 开头,例如 https://open.bigmodel.cn/api/paas/v4
代理 URL可选。该提供商的出站请求走这个代理,留空则直连
首字响应超时单次尝试等到上游首字节的上限,默认 120000 ms
备注仅展示
请求头设置调用上游时覆盖的客户端身份头,见下文

同一个提供商下可以挂多把密钥、多个模型。拉模型列表(「获取模型」)也会带上该提供商的代理和请求头,预览与真实转发一致。

如何配置代理

代理配在提供商上,不配在模型和路由上。只有这个提供商的出站请求(对话转发、拉模型列表、探测)会走代理,其他提供商不受影响。

支持的格式:

http://127.0.0.1:7890
http://user:pass@127.0.0.1:7890
https://proxy.example.com:8443
socks5://127.0.0.1:1080
socks5://user:pass@127.0.0.1:1080

需要认证时,账号密码写进 URL。用户名或密码里有特殊字符时,分别做 URL 编码

字符编码
@%40
:%3A
/%2F
#%23

例如密码是 p@ss:word,应填:

http://user:p%40ss%3Aword@127.0.0.1:7890

留空 = 直连。URL 非法时也会退回直连,不会中断请求。改完代理后保存即可,网关会刷新该提供商的 HTTP 客户端缓存。

请求头模板和请求头设置

要解决什么问题

不少上游会看客户端身份头,例如:

  • OpenRouter 用 HTTP-Referer / X-Title 做应用排行
  • 部分网关按 User-Agent 区分 Claude Code、Cursor 等客户端
  • Anthropic 相关端点可能要求 Anthropic-Beta

OmniGate 出站时默认不会把客户端的全部请求头原样转给上游(认证头由网关自己写)。请求头设置用来补上这些身份头。

两层关系

位置作用
配置中心 → 请求头模板全局模板库。只是草稿,不会直接打到上游
提供商编辑 → 请求头设置真正生效的头。可手填,也可「从模板插入」

插入是复制,之后改模板不会回写已经配好的提供商,改提供商也不会改模板。

怎么用

  1. 打开配置中心第二个 Tab「请求头模板」,添加一组,例如名称为 claude-code,填 User-AgentX-Title
  2. 保存模板
  3. 编辑提供商,在「请求头设置」里选中该模板,点「插入」
  4. 按需要再改几行,保存提供商

模板名只是方便辨认,例如 openrouter-appclaude-code

生效规则

  • 提供商配了请求头:出站按这组头覆盖(拉模型列表同样生效)
  • 提供商留空:透传入站白名单身份头,目前包括 User-AgentX-AppX-TitleHttp-RefererAnthropic-BetaAnthropic-Dangerous-Direct-Browser-Access,以及 X-Stainless-*(OpenAI SDK 埋点头)
  • 认证和传输控制头不能改:AuthorizationX-Api-KeyHostContent-LengthContent-TypeAccept-Encoding。模板和提供商里填这些会被拒绝

流式请求的 Accept 在模拟头之后写入,不会被模板盖掉。

密钥

密钥挂在提供商下,明文存在本地 SQLite,界面默认脱敏,可显式查看。

  • 名称在同一提供商内唯一,日志和统计用这个名字回显
  • 模型通过「绑定密钥」选用哪些 key;同一模型可绑多把,并给每把设权重(等权则轮询)
  • 熔断粒度是 模型 × 密钥:某把 key 在某个模型上 401/403 会被禁,不影响它在别的模型上的使用

至少要有一把密钥,才能点「获取模型」从上游 /v1/models 拉列表。

模型

模型是真实上游模型,不是客户端看到的名字。客户端名字在 路由 里配。

字段说明
真实模型名发给上游的 model 字段,如 glm-4.6
模型类型chat / embedding / rerank / image / tts / stt / video,决定挂哪类代理端点
上游协议仅 chat 可选:completionsresponsesmessages。非 chat 一律按对应格式直通,不做跨厂商转换
自定义 API 路径完整 URL。留空则用「Base URL + 协议默认路径」
请求体覆盖JSON 对象,合并进转换后的请求体,见下文
计费按量(输入 / 缓存 / 输出,每 1M token)或按次;币种 $ / ¥,入库统一折美元
绑定密钥至少绑一把才能转发

「获取模型」会按提供商的 Base URL、代理、请求头去拉上游模型列表,点选即可填入真实模型名。

自定义 API 路径

默认路径由类型和协议决定,例如 chat + completions 走 {base_url}/chat/completions。上游如果路径不规则,把 完整 URL 填进「自定义 API 路径」,例如:

https://api.example.com/v1/custom/chat

只填路径、不填完整 URL 不会按相对路径拼接,请写绝对地址。

请求体覆盖是什么

请求体覆盖是模型上的一段 JSON 对象,在协议转换完成、真实模型名写入之后,再按顶层键合并进即将发给上游的 body。同名字段以覆盖为准,客户端带来的值会被换成这里的值。

典型用途:

  • 强制采样参数:{"temperature": 0.2, "max_tokens": 2000}
  • 补厂商私有字段,客户端不必每次都带
  • 生图模型预设 size / quality
{"temperature": 0.2, "max_tokens": 4096}

生图示例:

{"size": "4K"}

注意:

  • 必须是 JSON 对象,保存时会校验;运行时如果解析失败则忽略这段覆盖
  • 只做顶层合并,不会递归进 messages 这类嵌套结构
  • 覆盖发生在 model 改写成真实模型名之后。如果你在覆盖里再写 "model": "xxx",会把网关刚写好的真实模型名盖掉,一般不要这么做
  • 路由表里没有这项配置;覆盖只作用在被选中的那个物理模型

配完模型后,到 路由与虚拟密钥 把它挂到逻辑名后面,客户端才能用。