在使用 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 传输。已缓存的模型可以完全跳过这些请求。

相关文章