10
10
11
11
async def create_openai_chat_client (
12
12
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
15
15
OPENAI_CHAT_HOST = os .getenv ("OPENAI_CHAT_HOST" )
16
16
if OPENAI_CHAT_HOST == "azure" :
17
- api_version = os .environ ["AZURE_OPENAI_VERSION" ] or "2024-10-21"
18
17
azure_endpoint = os .environ ["AZURE_OPENAI_ENDPOINT" ]
19
18
azure_deployment = os .environ ["AZURE_OPENAI_CHAT_DEPLOYMENT" ]
19
+ # Use default API version for Azure OpenAI
20
+ api_version = "2024-10-21"
20
21
if api_key := os .getenv ("AZURE_OPENAI_KEY" ):
21
22
logger .info (
22
23
"Setting up Azure OpenAI client for chat completions using API key, endpoint %s, deployment %s" ,
23
24
azure_endpoint ,
24
25
azure_deployment ,
25
26
)
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 } " ,
30
29
api_key = api_key ,
31
30
)
32
31
elif azure_credential :
@@ -38,11 +37,11 @@ async def create_openai_chat_client(
38
37
token_provider = azure .identity .get_bearer_token_provider (
39
38
azure_credential , "https://cognitiveservices.azure.com/.default"
40
39
)
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 ,
46
45
)
47
46
else :
48
47
raise ValueError ("Azure OpenAI client requires either an API key or Azure Identity credential." )
@@ -69,23 +68,22 @@ async def create_openai_chat_client(
69
68
70
69
async def create_openai_embed_client (
71
70
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
74
73
OPENAI_EMBED_HOST = os .getenv ("OPENAI_EMBED_HOST" )
75
74
if OPENAI_EMBED_HOST == "azure" :
76
- api_version = os .environ ["AZURE_OPENAI_VERSION" ] or "2024-03-01-preview"
77
75
azure_endpoint = os .environ ["AZURE_OPENAI_ENDPOINT" ]
78
76
azure_deployment = os .environ ["AZURE_OPENAI_EMBED_DEPLOYMENT" ]
77
+ # Use default API version for Azure OpenAI
78
+ api_version = "2024-03-01-preview"
79
79
if api_key := os .getenv ("AZURE_OPENAI_KEY" ):
80
80
logger .info (
81
81
"Setting up Azure OpenAI client for embeddings using API key, endpoint %s, deployment %s" ,
82
82
azure_endpoint ,
83
83
azure_deployment ,
84
84
)
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 } " ,
89
87
api_key = api_key ,
90
88
)
91
89
elif azure_credential :
@@ -97,11 +95,11 @@ async def create_openai_embed_client(
97
95
token_provider = azure .identity .get_bearer_token_provider (
98
96
azure_credential , "https://cognitiveservices.azure.com/.default"
99
97
)
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 ,
105
103
)
106
104
else :
107
105
raise ValueError ("Azure OpenAI client requires either an API key or Azure Identity credential." )
0 commit comments