Hugging Face Hub 1.x:配置 HTTPX 下载代理
在 Transformers 下载之前配置 Hub 1.x 的客户端工厂或进程环境,并分别考虑异步与 Xet 两条路径。
在使用 huggingface_hub 1.x 的 Transformers 环境中,Hub 的 Python HTTP 传输层是 HTTPX。请在启动 pipeline 或模型加载器之前配置其同步客户端工厂:
import httpx
from huggingface_hub import set_client_factory
def make_hub_client():
return httpx.Client(
proxy='http://proxy.example:8080',
follow_redirects=True,
timeout=30,
)
set_client_factory(make_hub_client)
对于获准下载的公开模型,HTTP 代理列表可为这个 HTTP 代理 URL 提供候选。示例使用 1.0.0 API。请使用已安装的 Hub 主版本所要求的客户端类型;另一代实现可能使用其他 HTTP 库。
若要通过环境变量发现代理,请在启动 Python 之前设置 HTTP_PROXY 和 HTTPS_PROXY。HTTP 监听器可以承载发往 HTTPS 目标的请求。
同步工厂的适用范围是明确的。异步客户端使用 set_async_client_factory,而 Xet 传输使用独立后端,不消耗这个 Python 工厂。
在选定配置之前,先判断失败的环节——Hub 元数据、被重定向的内容还是 Xet 传输。已缓存的模型可以完全跳过这些请求。