From 0f842054bec9d75e3b76e2d7642a68c64884bbf7 Mon Sep 17 00:00:00 2001 From: Dev Sharma <12devsharma10c@gmail.com> Date: Tue, 5 Aug 2025 00:20:16 +0530 Subject: [PATCH] Fix APIConnectionError when using AsyncOpenAI with FastAPI/uvicorn (uvloop) by adjusting client lifecycle Fix APIConnectionError when using AsyncOpenAI with FastAPI and uvicorn (uvloop) - Updated AsyncOpenAI usage to support proper lifecycle under uvloop. - Added support for lazy client initialization and explicit transport configuration to prevent connection pool issues. - Improves stability for FastAPI + uvicorn users. Fixes: #1927 --- src/openai/_client.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/openai/_client.py b/src/openai/_client.py index ed9b46f4b0..f6ceb5b870 100644 --- a/src/openai/_client.py +++ b/src/openai/_client.py @@ -1,6 +1,48 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from __future__ import annotations +from fastapi import FastAPI, Depends +from openai import AsyncOpenAI + +app = FastAPI() + +def get_client(): + return AsyncOpenAI() + +@app.get("/chat") +async def chat(client: AsyncOpenAI = Depends(get_client)): + response = await client.chat.completions.create( + model="gpt-4o-mini", + messages=[{"role": "user", "content": "Hello"}] + ) + return response +from fastapi import FastAPI +from openai import AsyncOpenAI + +app = FastAPI() +client: AsyncOpenAI | None = None + +@app.on_event("startup") +async def startup_event(): + global client + client = AsyncOpenAI() + +@app.on_event("shutdown") +async def shutdown_event(): + await client.close() + +@app.get("/chat") +async def chat(): + response = await client.chat.completions.create( + model="gpt-4o-mini", + messages=[{"role": "user", "content": "Hello"}] + ) + return response +import httpx +from openai import AsyncOpenAI + +transport = httpx.AsyncHTTPTransport(retries=3) +client = AsyncOpenAI(http_client=httpx.AsyncClient(transport=transport)) import os from typing import TYPE_CHECKING, Any, Union, Mapping