Skip to content

Commit ebd5d3f

Browse files
committed
Update to use BearerTokenPolicy
1 parent b1428ae commit ebd5d3f

File tree

5 files changed

+25
-41
lines changed

5 files changed

+25
-41
lines changed

eng/packages/General.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup>
4-
<PackageVersion Include="Azure.Core" Version="1.45.0" />
5-
<PackageVersion Include="Azure.Identity" Version="1.13.2" />
4+
<PackageVersion Include="Azure.Core" Version="1.49.0" />
5+
<PackageVersion Include="Azure.Identity" Version="1.16.0" />
66
<PackageVersion Include="Azure.Storage.Files.DataLake" Version="12.21.0" />
77
<PackageVersion Include="Azure.AI.Inference" Version="1.0.0-beta.5" />
88
<PackageVersion Include="DnsClient" Version="1.8.0" />

src/ProjectTemplates/Microsoft.Extensions.AI.Templates/src/ChatWithCustomData/ChatWithCustomData-CSharp.Web/Program.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,9 @@
6262
#endif
6363
var azureOpenAIEndpoint = new Uri(new Uri(builder.Configuration["AzureOpenAI:Endpoint"] ?? throw new InvalidOperationException("Missing configuration: AzureOpenAi:Endpoint. See the README for details.")), "/openai/v1");
6464
#if (IsManagedIdentity)
65-
var tokenCredential = new DefaultAzureCredential();
66-
var token = tokenCredential.GetToken(new TokenRequestContext(["https://cognitiveservices.azure.com/.default"]), default);
67-
var openAIOptions = new OpenAIClientOptions { Endpoint = azureOpenAIEndpoint };
68-
var azureOpenAi = new OpenAIClient(new ApiKeyCredential(token.Token), openAIOptions);
65+
var azureOpenAi = new OpenAIClient(
66+
new BearerTokenPolicy(new DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
67+
new OpenAIClientOptions { Endpoint = azureOpenAIEndpoint });
6968
#else
7069
var openAIOptions = new OpenAIClientOptions { Endpoint = azureOpenAIEndpoint };
7170
var azureOpenAi = new OpenAIClient(new ApiKeyCredential(builder.Configuration["AzureOpenAI:Key"] ?? throw new InvalidOperationException("Missing configuration: AzureOpenAi:Key. See the README for details.")), openAIOptions);

test/Libraries/Microsoft.Extensions.AI.Evaluation.Integration.Tests/Microsoft.Extensions.AI.Evaluation.Integration.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<TargetFrameworks>$(LatestTargetFramework)</TargetFrameworks>
55
<RootNamespace>Microsoft.Extensions.AI</RootNamespace>
66
<Description>Integration tests for Microsoft.Extensions.AI.Evaluation.</Description>
7+
<NoWarn>$(NoWarn);OPENAI001</NoWarn>
78
</PropertyGroup>
89

910
<ItemGroup>

test/Libraries/Microsoft.Extensions.AI.Evaluation.Integration.Tests/Setup.cs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.ClientModel;
6+
using System.ClientModel.Primitives;
67
using Azure.Core;
78
using Azure.Identity;
89
using OpenAI;
@@ -24,24 +25,18 @@ internal static ChatConfiguration CreateChatConfiguration()
2425
private static OpenAI.Chat.ChatClient GetOpenAIClient()
2526
{
2627
// Use Azure endpoint with /openai/v1 suffix
27-
var endpoint = new Uri(new Uri(Settings.Current.Endpoint), "/openai/v1");
28-
var credential = new ChainedTokenCredential(new AzureCliCredential(), new DefaultAzureCredential());
29-
30-
OpenAIClient client;
31-
if (OfflineOnly)
32-
{
33-
var options = new OpenAIClientOptions { Endpoint = endpoint };
34-
client = new OpenAIClient(new ApiKeyCredential("Bogus"), options);
35-
}
36-
else
28+
var options = new OpenAIClientOptions
3729
{
38-
// Get Azure token and use as API key
39-
var token = credential.GetToken(
40-
new TokenRequestContext(["https://cognitiveservices.azure.com/.default"]),
41-
default);
42-
var options = new OpenAIClientOptions { Endpoint = endpoint };
43-
client = new OpenAIClient(new ApiKeyCredential(token.Token), options);
44-
}
30+
Endpoint = new Uri(new Uri(Settings.Current.Endpoint), "/openai/v1")
31+
};
32+
33+
OpenAIClient client = OfflineOnly ?
34+
new OpenAIClient(new ApiKeyCredential("Bogus"), options) :
35+
new OpenAIClient(
36+
new BearerTokenPolicy(
37+
new ChainedTokenCredential(new AzureCliCredential(), new DefaultAzureCredential()),
38+
"https://cognitiveservices.azure.com/.default"),
39+
options);
4540

4641
return client.GetChatClient(Settings.Current.DeploymentName);
4742
}

test/Libraries/Microsoft.Extensions.AI.OpenAI.Tests/IntegrationTestHelpers.cs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
using System;
55
using System.ClientModel;
6-
using Azure.Core;
6+
using System.ClientModel.Primitives;
77
using Azure.Identity;
88
using OpenAI;
99

@@ -26,23 +26,12 @@ internal static class IntegrationTestHelpers
2626
?? throw new InvalidOperationException("To use AzureOpenAI, set a value for OpenAI:Endpoint");
2727

2828
// Use Azure endpoint with /openai/v1 suffix
29-
var azureEndpointUri = new Uri(new Uri(endpoint), "/openai/v1");
30-
31-
if (apiKey is not null)
32-
{
33-
var options = new OpenAIClientOptions { Endpoint = azureEndpointUri };
34-
return new OpenAIClient(new ApiKeyCredential(apiKey), options);
35-
}
36-
else
37-
{
38-
// Use Azure Identity authentication - get token and use as API key
39-
var tokenCredential = new DefaultAzureCredential();
40-
var token = tokenCredential.GetToken(
41-
new TokenRequestContext(["https://cognitiveservices.azure.com/.default"]),
42-
default);
43-
var options = new OpenAIClientOptions { Endpoint = azureEndpointUri };
44-
return new OpenAIClient(new ApiKeyCredential(token.Token), options);
45-
}
29+
var options = new OpenAIClientOptions { Endpoint = new Uri(new Uri(endpoint), "/openai/v1") };
30+
return apiKey is not null ?
31+
new OpenAIClient(new ApiKeyCredential(apiKey), options) :
32+
new OpenAIClient(
33+
new BearerTokenPolicy(new DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"),
34+
options);
4635
}
4736
else if (apiKey is not null)
4837
{

0 commit comments

Comments
 (0)