首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

OpenAI:迁移到 HTTPX2

2026-08-28 1 阅读 约10分钟阅读 tosh
分享:
字号:
OpenAI Python SDK 现在使用 HTTPX2 作为其同步和异步 HTTP 客户端。 HTTPX2 随 openai 自动安装;以前的httpx包不是。本指南解释了与 SDK 的 HTTP 层交互的应用程序发生了哪些变化。如果您使用 SDK 的默认 HTTP 客户端如果您构建 OpenAI 或 AsyncOpenAI 客户端而不提供 http_client ,则现有的 API 调用、解析的响应模型、流式 API、身份验证、重试和数字超时将继续工作: from openai import OpenAI client = OpenAI ( timeout = 30.0 ) response = client 。回应。 create ( model = "gpt-5.5" , input = "Hello" ) 不需要 HTTPX2 额外或单独安装:如果您的应用程序导入 httpx 只是因为早期 SDK 传递安装了它,请添加您自己的 httpx 依赖项或将这些导入迁移到 httpx2 。安装 SDK 不再为您安装 httpx。 TLS 证书和信任存储 HTTPX2 更改了默认 TLS 信任存储,包括使用 SDK 的默认 HTTP 客户端的应用程序。 HTTPX 之前根据 certifi 提供的 CA 捆绑包验证了证书。 HTTPX2 相反使用操作系统信任存储,并且 SDK 不再安装 certifi 。这可能会破坏没有系统 CA 证书的最小容器映像、使用企业 TLS 检查代理的环境以及依赖于自定义或修改的证书包的部署中的证书验证。在操作系统信任存储中安装所需的 CA 证书,或配置显式证书捆绑包:export SSL_CERT_FILE=/path/to/ca-bundle.pem 或者,配置受信任 CA 证书的目录:export SSL_CERT_DIR=/path/to/ca-directory 当 trust_env=True (默认值)时,将遵循这些环境变量。要显式控制自定义客户端上的信任,请通过 verify 传递 ssl.SSLContext : import ssl from openai import OpenAI , DefaultHttpx2Client ssl_context = ssl 。 create_default_context ( cafile = "/path/to/ca-bundle.pem" ) client = OpenAI ( http_client = DefaultHttpx2Client ( verify = ssl_context )) 使用 DefaultAsyncHttpx2Client(verify=ssl_context) 进行等效的异步配置。 SDK 的 aiohttp 传输使用相同的 HTTPX2 TLS 设置。如果您提供自定义 HTTP 客户端,请使用 HTTPX2 客户端和 HTTPX2 配置对象。 SDK 提供了保留其建议超时、连接池和重定向默认值的帮助程序: import httpx2 from openai import OpenAI , AsyncOpenAI , DefaultHttpx2Client , DefaultAsyncHttpx2Client proxy_client = OpenAI ( http_client = DefaultHttpx2Client ( proxy = "http://proxy.example.com:8080" )) Transport_client = OpenAI ( http_client = DefaultHttpx2Client ( Transport = httpx2 . HTTPTransport ) ( local_address = "0.0.0.0" ), timeout = httpx2 . Timeout ( 30.0 , connect = 5.0 ), ) ) async_client = AsyncOpenAI ( http_client = DefaultAsyncHttpx2Client ( timeout = httpx2 . Timeout ( 30.0 ))) 还支持直接构造 httpx2.Client 和 httpx2.AsyncClient 实例。当您直接构建客户端时,除非您自己配置,否则它自己的 HTTPX2 默认值将适用。现有的 DefaultHttpxClient 和 DefaultAsyncHttpxClient 名称继续有效,但现在构建 HTTPX2 客户端。在明确显示 HTTP 客户端系列时,首选 DefaultHttpx2Client 和 DefaultAsyncHttpx2Client。模块级配置遵循相同的规则: import openai openai 。 http_client = openai 。 DefaultHttpx2Client () 超时、URL、传输和连接设置 将 HTTPX 特定对象替换为相应的 HTTPX2 对象: 先前的对象 HTTPX2 对象 httpx.Client httpx2.Client httpx.AsyncClient httpx2.AsyncClient httpx.Timeout httpx2.Timeout httpx.URL httpx2.URL httpx.Limits httpx2.Limits httpx.HTTPTransport httpx2.HTTPTransport httpx.AsyncHTTPTransport httpx2.AsyncHTTPTransport httpx.MockTransport httpx2.MockTransport 例如,粒度 SDK 超时变为: import httpx2 from openai import OpenAI client = OpenAI ( timeout = httpx2 . Timeout ( 60.0 , connect = 5.0 , read = 20.0 )) 数字超时值不会更改。现有字符串 URL 不会更改。自定义传输子类、安装的传输、代理集成和连接池检测必须以 HTTPX2 的传输接口为目标。身份验证和事件挂钩 身份验证处理程序和挂钩接收 HTTPX2 请求和响应对象。相应地更新自定义身份验证类和注释: import httpx2 from openai import OpenAI , DefaultHttpx2Client def log_request ( request : httpx2 . Request ) -> None : print ( request . method , request . url ) client = OpenAI ( http_client = DefaultHttpx2Client ( event_hooks = { "request" : [ log_request ]})) 如果您子类化 HTTP 身份验证或传输接口,请子类化匹配httpx2
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱