 rui40000andClaude Opus 5
|
205a7c0e31
|
越光 / ZenMux 节点新增网络自动重连,应对 SSL 断连等链路抖动
线上跑批时最常见的失败不是参数错,而是链路抖动,典型报错是
SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol'))。
此前这两个节点只有针对 HTTP 400 的「自适应参数重试」(业务层),
网络异常直接落到 except ConnectionError 返回错误字符串——而 SSLError
正是 ConnectionError 的子类,等于一次失败就放弃。
新增 max_retries(默认 3)与 timeout(默认 180)两个参数:
会重连:SSL 握手被打断、连接被重置、连接/读超时、响应体截断
(ChunkedEncodingError / JSONDecodeError),以及 429 限流与 5xx 临时故障。
不重连:参数类 400、鉴权类 401/403、404——重试结果相同,只会拖慢报错。
退避 1s→2s→4s→8s→16s 指数增长并叠加 ±25% 抖动。抖动是必要的:一条
工作流里常有多个 API 节点同时失败,无抖动会让它们在同一毫秒一起重连,
把刚缓过来的服务端再打垮一次。服务端给了 Retry-After 时以它为准。
与既有的自适应参数重试分属两层、互不消耗额度;参数被剔除后的 payload
在后续重连中保留,不会重蹈覆辙。HTTPError 报错信息补上已重连次数,
以免用户误以为没有重试。
mock 验证 24 项全通过:失败序列后成功、重试耗尽、max_retries=0/5、
退避递增与抖动、Retry-After、429/5xx/401/404 分流、读超时、响应体截断、
连接重置、参数自适应不受影响、旧工作流不传新参数的向后兼容、ZenMux 同样生效。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-19 09:47:47 +08:00 |
|
 rui40000andClaude Opus 4.8
|
cc6a6e3400
|
feat: 新增越光 API 连接节点(OpenAI 兼容,25 个模型内置价格)
参照 ZenMux 节点的架构编写,参数、输出与容错行为保持一致,便于互换。
端点 https://llm.ai-nebula.com/v1/chat/completions
与 ZenMux 的三点差异:
- 模型清单内置在 yueguang/model_registry.py,不做在线快照:越光没有
可枚举的模型接口,清单与价格来自官方规范文档。少一个联网环节,
也不会因拉取失败导致下拉变空
- model id 不带厂商前缀(gpt-4o 而非 openai/gpt-4o),下拉靠排序聚类,
搜索时输 gpt/claude/deepseek/kimi 过滤
- 默认 deepseek-v4-flash(全表最便宜 $0.1/$0.3,官方示例也用它),
默认值便宜可避免误触发产生意外费用
25 个模型的价格已按文档录入并逐项校验(标签解析、价格、厂商三项一致性
全部通过)。usage_stats 比 ZenMux 多一行厂商,价格换算经手算对照无误。
沿用的实战经验:base_url 默认值不带 ://(前端会吞协议片段)、
自适应参数重试(弃用 temperature / 需 max_completion_tokens 的模型)、
VALIDATE_INPUTS 宽松放行避免价格变动使旧工作流失效。
所有 19 个参数均带中文 tooltip。
验证:链路已打通(认证被接受、响应能正确解析),但文档提供的 key
余额为 0,返回 403「用户额度不足」,故未取得实际回复内容。
换有额度的 key 即可使用。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-30 18:19:39 +08:00 |
|