这表示流式过程中的下一个块没有在规定时间内read出来,可能由于奇奇怪怪的原因总有个别请求中途出错,如果不设置read的超时时间在openai库中会设置成和timeout一样的时长,进而阻塞我们整体的响应时长,极大的音效体验
这是openai默认的超时设置
DEFAULT_TIMEOUT = httpx.Timeout(timeout=600.0, connect=5.0)
这里没有设置read参数,所以httpx库会设成和timeout一样的数值,你可以在创建openai类的时候手动设置timeout数值,比如
client = OpenAI(timeout=httpx.Timeout(300, read=20, write=20, connect=10))
这里我read设的20s,大家可以自行调节
参数解释
- connect 连接超时指定与请求的主机建立套接字连接之前等待的最长时间。 如果 HTTPX 无法在此时间范围内连接,则会引发 ConnectTimeout 异常。
- read timeout 指定等待接收数据块(例如响应正文的块)的最大持续时间。 如果 HTTPX 无法在此时间范围内接收数据,则会引发 ReadTimeout 异常。
- write timeout 指定等待发送数据块(例如请求正文的块)的最大持续时间。 如果 HTTPX 无法在此时间范围内发送数据,则会引发 WriteTimeout 异常。
- pool timeout 指定等待从连接池获取连接的最大持续时间。 如果 HTTPX 无法在此时间范围内获取连接,则会引发 PoolTimeout 异常。 这里的一个相关配置是连接池中允许的最大连接数,它是由limits参数配置的。
- 官网:Timeouts - HTTPX