fix: 移除afw-proxy(已废弃试验)+ocg-key顺序由/api/keys配额动态决定

- afw-proxy是早期试验代理,老爸确认已废弃,不入链
- ocg-key*按AgentsMeeting/api/keys健康度排序,session_expired跳过
This commit is contained in:
hmo
2026-07-23 16:47:28 +08:00
parent eddbee968c
commit e59c1bcc53
+21 -5
View File
@@ -98,13 +98,29 @@ def _build_chain() -> list[tuple[str, str, str]]:
2026-07-23 修复:原白名单只有 deepseek/volcengine/opencode-go* 2026-07-23 修复:原白名单只有 deepseek/volcengine/opencode-go*
但 config 里只有 deepseek(402欠费)→ 全链死 → 模型无响应。 但 config 里只有 deepseek(402欠费)→ 全链死 → 模型无响应。
现按实际存活度排序:sense-nova(实测可用+支持tools)→ deepseek → 现按实际存活度排序:sense-nova(实测可用+支持tools)→ deepseek → ocg-key*。
afw-proxy(本地代理,活着时优先)→ ocg-key*Windows IP 当前403,恢复即可用)。 afw-proxy 是已废弃的本地试验代理,不入链——老爸 2026-07-23 确认)
ocg-key* 顺序由 AgentsMeeting /api/keys 的配额状态动态决定(session_expired 跳过)。
模型名:options.model 优先,否则取 provider models 字典第一个 key。 模型名:options.model 优先,否则取 provider models 字典第一个 key。
""" """
priority = ["sense-nova", "deepseek", "afw-proxy", # 从 AgentsMeeting /api/keys 拉 ocg key 健康度(246 本地视角)
"ocg-key6", "ocg-key5", "ocg-key4", "ocg-key3", "ocg-key2", "ocg-key1", _key_order = []
"volcengine", "opencode-go", "opencode-go-new"] try:
import urllib.request as _ur
_resp = _ur.urlopen("http://192.168.1.246:5803/api/keys", timeout=5)
_kd = json.loads(_resp.read())
for _k in _kd.get("keys", []):
if _k.get("session_expired"):
continue # 过期key直接跳过
_key_order.append(_k["key_id"])
except Exception:
pass # API 不可用则按静态顺序
_ocg_static = ["ocg-key6", "ocg-key5", "ocg-key4", "ocg-key3", "ocg-key2", "ocg-key1"]
_ocg_sorted = ([k for k in _key_order if k in _PROVIDERS] or _ocg_static)
priority = ["sense-nova", "deepseek"] + _ocg_sorted + \
["volcengine", "opencode-go", "opencode-go-new"]
chain = [] chain = []
for key in priority: for key in priority:
prov = _PROVIDERS.get(key) prov = _PROVIDERS.get(key)