mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-11-04 22:55:03 +08:00
chore(deps): httpx 全面迁移到 httpx2,SOCKS5 改用原生代理,升级 LLM SDK 大版本
- 依赖 httpx[socks] 换为 httpx2[socks]>=2.15,移除 httpx-socks / python-socks 及其 mypy 覆盖 - backend/src、ab_sdk、e2e 与单元测试统一使用 httpx2(异常类与 httpx 不通用) - request_url 与 LLM 客户端工厂合并为 proxy_url(),SOCKS5 走 httpx2 原生代理(主机名由代理解析) - 保留 #1104 过期连接池替换:httpcore2 2.15.1 的 start_tls 失败路径仍会泄漏隧道 - 日志同时压低 httpx2 与 httpx(google-genai、mcp 仍依赖旧 httpx) - openai 3.35.1 / anthropic 1.15.0 / google-genai 2.31.0;结构化解析改用 chat.completions.parse - ab_sdk 升到 0.6.0,客户端类型改为 httpx2.AsyncClient,同步插件文档
This commit is contained in:
@@ -27,6 +27,7 @@ class MyPlugin(Plugin):
|
||||
## Notes
|
||||
|
||||
- `ProviderInfo` drives the frontend form and the provider list. `auth_kind` is `api_key`, `oauth` or `device_code`.
|
||||
- An adapter gets the model name, key, `base_url`, timeout and a proxy-aware httpx client factory through `AdapterContext`. It does not read the global configuration.
|
||||
- An adapter gets the model name, key, `base_url`, timeout and a proxy-aware httpx2 client factory through `AdapterContext`. It does not read the global configuration.
|
||||
- The factory returns an `httpx2.AsyncClient` (since SDK 0.6; before, it was `httpx`). To catch network errors, use `httpx2.HTTPError` and related classes. The `httpx` exception classes do not catch its errors.
|
||||
- A subscription-type provider (`oauth` / `device_code`) implements the auth flow hooks (`AuthChallenge`, `TokenSet`). When the credentials are no longer valid and the refresh fails, raise `AuthExpiredError`. AB then trips the breaker for this provider and sends an `llm_auth_failure` event.
|
||||
- Existing LLM plugins in the `plugin.json` format (released as `llm-plugins`) still work. New plugins use `plugin.toml` and this extension point.
|
||||
|
||||
Reference in New Issue
Block a user