这是一个用于 CLI Proxy API Management Center 的油猴脚本。
它可以读取你选择的 YAML 配置文件,依次检测其中的 OpenAI 兼容提供商,并根据检测结果自动同步管理中心里的开关状态:
脚本还支持:
Chrome 浏览器需要安装以下任意一种用户脚本扩展:
安装完成后,将本脚本添加到扩展中并启用。
脚本会读取 YAML 文件中的:
openai-compatibility:
配置示例:
openai-compatibility:
- name: provider-1
base-url: https://api.example.com/v1
api-key-entries:
- api-key: sk-your-api-key
models:
- name: model-name
disabled: true
每个提供商至少应包含:
| 配置项 | 用途 |
|---|---|
name |
提供商名称,用于和管理中心列表匹配 |
base-url |
提供商 API 地址 |
api-key-entries |
一个或多个 API Key |
models |
可用于测试的模型 |
disabled |
当前配置中的停用状态 |
脚本主要检测 openai-compatibility 下的提供商,其他类型的配置不会参与检测。
YAML 中的:
name: provider-1
必须能够匹配管理中心“AI 提供商”列表里的名称。
如果名称不一致,脚本虽然能完成网络检测,但无法找到对应的页面项目,也就无法自动开启或关闭。
YAML 文件中包含完整 API Key,请注意:
YAML 文件由浏览器脚本在本地读取。脚本不会把完整密钥写入日志或保存到浏览器存储中。
检测请求会将相应密钥发送至 YAML 中配置的 base-url。
进入 CLI Proxy API Management Center,然后打开:
AI 提供商
请确认浏览器地址末尾类似:
#/ai-providers
检测必须在该页面进行,脚本才能找到并修改对应提供商的开关。
检测请求本身不依赖列表页面,但自动开启和关闭功能依赖页面中的提供商列表。
在脚本面板中点击选择文件按钮,然后选择你的提供商 YAML 配置文件。
脚本解析成功后,会显示:
如果提示未找到提供商,请检查 YAML 中是否存在:
openai-compatibility:
“从第几项开始”决定本次检测从 YAML 提供商列表中的哪一项开始。
例如:
从第 1 项开始
表示检测全部提供商。
如果填写:
69
则跳过前 68 项,从第 69 项开始。
序号以 YAML 中 openai-compatibility 的实际排列顺序为准,并且从 1 开始计算。
点击:
开始检测
开始前会弹出确认框,提醒你确保已经打开“AI 提供商”列表。
检测期间,脚本会逐个处理提供商:
检测过程中可以切换到其他浏览器标签页,但不建议执行以下操作:
后台标签页可能被浏览器限速,检测速度可能变慢,这是正常现象。
脚本会将每个提供商归为三种结果。
表示至少有一个 API Key 已确认可用。
脚本会尝试将该提供商设置为:
开启
可能的日志示例:
[成功] #12 provider-1
至少一个 API Key 检测可用
操作:已开启
如果提供商原本已经开启,脚本不会重复切换。
表示脚本已经得到明确结果,并且所有 API Key 都确认不可用。
常见情况包括:
401 Unauthorized:API Key 无效;403 Forbidden:密钥或账号被明确拒绝;脚本会尝试将该提供商设置为:
关闭
可能的日志示例:
[失败] #13 provider-2
全部 API Key 均明确无效
操作:已关闭
“异常”表示检测没有得到足够明确的结果,脚本暂时无法判断提供商是否可用。
常见情况包括:
429 Too Many Requests;502 Bad Gateway;503 Service Unavailable;异常可能只是临时网络波动,并不代表 API Key 已失效。因此脚本会:
保持原状态
不会自动开启或关闭。
可能的日志示例:
[异常] #14 provider-3
请求超时,暂时无法判断是否可用
操作:保持原状态
建议稍后单独重新检测异常项目。
一个提供商可以配置多个 API Key。
脚本按以下规则汇总结果:
| Key 检测情况 | 提供商最终结果 | 开关操作 |
|---|---|---|
| 至少一个成功 | 成功 | 开启 |
| 全部明确失败 | 失败 | 关闭 |
| 没有成功,但存在超时、429、5xx 等 | 异常 | 保持原状态 |
| 部分失败、部分异常 | 异常 | 保持原状态 |
| 部分成功、部分失败 | 成功 | 开启 |
| 部分成功、部分异常 | 成功 | 开启 |
例如,一个提供商有三个 Key:
Key 1:401
Key 2:超时
Key 3:403
最终结果是“异常”,因为虽然两个 Key 明确失败,但还有一个 Key 因超时无法判断。
如果结果是:
Key 1:401
Key 2:403
Key 3:401
则最终结果为“失败”,脚本会关闭该提供商。
脚本每完成一个提供商,都会保存“下一项应该从哪里开始”。
例如,已经完成第 68 项,则保存的断点为:
69
断点只保存:
不会保存 YAML 内容或 API Key。
点击:
获取上次断点
脚本会读取同一 YAML 文件上次保存的位置,并填入“从第几项开始”。
例如,上次在第 68 项后停止:
从第 69 项开始
需要注意:
“获取上次断点”只负责填写序号,不会立即开始检测。
获取断点后,还需要点击:
开始检测
也可以直接在开始位置中输入数字。
例如:
69
然后点击“开始检测”,即可从 YAML 第 69 个提供商开始。
如果希望重新检测全部提供商,请输入:
1
以下情况可能导致脚本无法识别断点:
localhost 和 127.0.0.1 之间切换;此时可以根据上一份日志,手动输入开始序号。
日志区域包含以下筛选按钮:
全部 (69)
成功 (6)
失败 (53)
异常 (10)
括号内数字表示当前日志数量。
显示所有检测结果。
按钮说明:
显示本次检测中的全部成功、失败和异常结果
只显示已确认可用的提供商。
按钮说明:
至少一个 API Key 已确认可用,提供商将被开启
只显示所有 API Key 都明确不可用的提供商。
按钮说明:
所有 API Key 均明确失败,提供商将被关闭
只显示暂时无法确定状态的提供商。
按钮说明:
检测遇到超时、429、5xx 或网络错误等情况,保持原开关状态
筛选只影响日志显示,不会改变检测结果、进度或页面开关。
点击日志区域右侧的:
导出
可以将检测日志导出为 CSV 文件。
导出文件一般包含:
导出功能会按照当前筛选条件导出:
| 当前筛选 | 导出内容 |
|---|---|
| 全部 | 导出全部检测结果 |
| 成功 | 只导出成功项 |
| 失败 | 只导出失败项 |
| 异常 | 只导出异常项 |
例如,要导出需要人工复查的项目:
CSV 可以使用以下软件打开:
如果 Excel 打开后中文乱码,请在导入时选择:
UTF-8
如果当前筛选条件下没有日志,导出按钮不会生成空文件,并会给出提示。
点击:
清空
会清除面板中当前已显示和记录的检测日志,并将筛选数量归零。
清空日志不会:
如果仍在检测中,后续完成的项目会继续产生新日志。
检测过程中可以点击:
停止
脚本会弹出确认框。
停止通常不会强行中断当前已经发出的 HTTP 请求,而是在当前项目处理完成或请求结束后,不再进入下一项。
因此点击停止后,可能需要等待数秒才会真正显示:
已停止
停止时会保留断点。下次可以:
按住面板顶部标题栏,可以将面板拖动到其他位置。
面板位置会保存在当前浏览器中,下次打开页面时自动恢复。
点击标题栏右侧的折叠按钮:
−
可以收起面板内容,只保留标题栏。
折叠后按钮会变为:
+
点击即可重新展开。
拖动和折叠不会影响正在进行的检测。
如果只做网络检测,不需要。
但是本工具还需要自动开启或关闭页面里的提供商,所以使用完整功能时,必须打开:
AI 提供商
地址末尾通常是:
#/ai-providers
检测期间不要切换到日志、配置、授权文件等其他管理页面。
可以。
当前管理中心标签页可以在后台运行,但浏览器可能对后台页面限速,因此检测会变慢。
不要关闭、刷新当前标签页,也不要让电脑休眠。
可能原因:
建议:
name 与页面名称一致;常见原因:
/models 接口;异常项目不会自动关闭,可以稍后重新检测。
429 Too Many Requests 表示请求过于频繁或暂时被限流,不能证明 API Key 已经失效。
为了避免误关正常提供商,脚本会将其归为异常并保持开关状态。
这些一般是上游服务临时故障,不代表密钥永久失效。
稍后重新检测可能恢复正常,因此不会直接关闭。
余额不足并不一定表示 API Key 无效,充值后可能恢复。
默认情况下,脚本将 402 Payment Required 归为异常,避免自动关闭。如果脚本配置被修改为“余额不足算失败”,其行为可能不同。
序号基于 YAML 文件中:
openai-compatibility
数组的顺序,不一定等于页面当前显示的行数。
页面可能受到以下因素影响:
有可能。
如果搜索后页面隐藏或卸载了部分提供商行,脚本可能找不到对应项目。
开始前建议:
可能原因:
建议停用所有旧版本,只保留最新脚本,并使用断点继续。
/models 成功是否一定代表模型能正常聊天?不一定。
默认配置通常是 /models 成功就判定密钥可用,这样速度快、消耗低。
如果启用了严格聊天测试,脚本还会向 /chat/completions 发送最小请求。这种方式更准确,但可能:
默认只请求 /models 时,通常不会产生模型调用费用。
如果回退到或强制使用 /chat/completions,可能产生少量费用,具体取决于服务商计费规则。
检测完成后建议按以下顺序处理:
点击:
失败
检查被关闭的项目,必要时导出 CSV。
失败项目通常需要:
点击:
异常
异常项目建议稍后重新检测,不要直接批量删除。
可按以下方式处理:
建议每次检测完成后导出“全部”结果,作为本次检测记录。
如需人工复查,再单独导出“异常”。
为了降低误判和误操作风险,建议:
如果你已经熟悉工具,可以按照下面的简化流程操作:
1;检测前打开 AI 提供商页面。
失败会关闭;异常不会修改开关。
中断后先获取断点,再点击开始检测。