1010
1111async def create_openai_chat_client (
1212 azure_credential : Union [azure .identity .AzureDeveloperCliCredential , azure .identity .ManagedIdentityCredential , None ],
13- ) -> Union [ openai .AsyncAzureOpenAI , openai . AsyncOpenAI ] :
14- openai_chat_client : Union [ openai .AsyncAzureOpenAI , openai . AsyncOpenAI ]
13+ ) -> openai .AsyncOpenAI :
14+ openai_chat_client : openai .AsyncOpenAI
1515 OPENAI_CHAT_HOST = os .getenv ("OPENAI_CHAT_HOST" )
1616 if OPENAI_CHAT_HOST == "azure" :
17- api_version = os .environ ["AZURE_OPENAI_VERSION" ] or "2024-10-21"
1817 azure_endpoint = os .environ ["AZURE_OPENAI_ENDPOINT" ]
1918 azure_deployment = os .environ ["AZURE_OPENAI_CHAT_DEPLOYMENT" ]
19+ # Use default API version for Azure OpenAI
20+ api_version = "2024-10-21"
2021 if api_key := os .getenv ("AZURE_OPENAI_KEY" ):
2122 logger .info (
2223 "Setting up Azure OpenAI client for chat completions using API key, endpoint %s, deployment %s" ,
2324 azure_endpoint ,
2425 azure_deployment ,
2526 )
26- openai_chat_client = openai .AsyncAzureOpenAI (
27- api_version = api_version ,
28- azure_endpoint = azure_endpoint ,
29- azure_deployment = azure_deployment ,
27+ openai_chat_client = openai .AsyncOpenAI (
28+ base_url = f"{ azure_endpoint .rstrip ('/' )} /openai/deployments/{ azure_deployment } ?api-version={ api_version } " ,
3029 api_key = api_key ,
3130 )
3231 elif azure_credential :
@@ -38,11 +37,11 @@ async def create_openai_chat_client(
3837 token_provider = azure .identity .get_bearer_token_provider (
3938 azure_credential , "https://cognitiveservices.azure.com/.default"
4039 )
41- openai_chat_client = openai . AsyncAzureOpenAI (
42- api_version = api_version ,
43- azure_endpoint = azure_endpoint ,
44- azure_deployment = azure_deployment ,
45- azure_ad_token_provider = token_provider ,
40+ # Get the initial token from the provider
41+ initial_token = token_provider ()
42+ openai_chat_client = openai . AsyncOpenAI (
43+ base_url = f" { azure_endpoint . rstrip ( '/' ) } /openai/deployments/ { azure_deployment } ?api-version= { api_version } " ,
44+ api_key = initial_token ,
4645 )
4746 else :
4847 raise ValueError ("Azure OpenAI client requires either an API key or Azure Identity credential." )
@@ -69,23 +68,22 @@ async def create_openai_chat_client(
6968
7069async def create_openai_embed_client (
7170 azure_credential : Union [azure .identity .AzureDeveloperCliCredential , azure .identity .ManagedIdentityCredential , None ],
72- ) -> Union [ openai .AsyncAzureOpenAI , openai . AsyncOpenAI ] :
73- openai_embed_client : Union [ openai .AsyncAzureOpenAI , openai . AsyncOpenAI ]
71+ ) -> openai .AsyncOpenAI :
72+ openai_embed_client : openai .AsyncOpenAI
7473 OPENAI_EMBED_HOST = os .getenv ("OPENAI_EMBED_HOST" )
7574 if OPENAI_EMBED_HOST == "azure" :
76- api_version = os .environ ["AZURE_OPENAI_VERSION" ] or "2024-03-01-preview"
7775 azure_endpoint = os .environ ["AZURE_OPENAI_ENDPOINT" ]
7876 azure_deployment = os .environ ["AZURE_OPENAI_EMBED_DEPLOYMENT" ]
77+ # Use default API version for Azure OpenAI
78+ api_version = "2024-03-01-preview"
7979 if api_key := os .getenv ("AZURE_OPENAI_KEY" ):
8080 logger .info (
8181 "Setting up Azure OpenAI client for embeddings using API key, endpoint %s, deployment %s" ,
8282 azure_endpoint ,
8383 azure_deployment ,
8484 )
85- openai_embed_client = openai .AsyncAzureOpenAI (
86- api_version = api_version ,
87- azure_endpoint = azure_endpoint ,
88- azure_deployment = azure_deployment ,
85+ openai_embed_client = openai .AsyncOpenAI (
86+ base_url = f"{ azure_endpoint .rstrip ('/' )} /openai/deployments/{ azure_deployment } ?api-version={ api_version } " ,
8987 api_key = api_key ,
9088 )
9189 elif azure_credential :
@@ -97,11 +95,11 @@ async def create_openai_embed_client(
9795 token_provider = azure .identity .get_bearer_token_provider (
9896 azure_credential , "https://cognitiveservices.azure.com/.default"
9997 )
100- openai_embed_client = openai . AsyncAzureOpenAI (
101- api_version = api_version ,
102- azure_endpoint = azure_endpoint ,
103- azure_deployment = azure_deployment ,
104- azure_ad_token_provider = token_provider ,
98+ # Get the initial token from the provider
99+ initial_token = token_provider ()
100+ openai_embed_client = openai . AsyncOpenAI (
101+ base_url = f" { azure_endpoint . rstrip ( '/' ) } /openai/deployments/ { azure_deployment } ?api-version= { api_version } " ,
102+ api_key = initial_token ,
105103 )
106104 else :
107105 raise ValueError ("Azure OpenAI client requires either an API key or Azure Identity credential." )
0 commit comments