diff --git a/docs/azure/sdk/dependency-injection.md b/docs/azure/sdk/dependency-injection.md index 22a869fa22167..76220301d3a57 100644 --- a/docs/azure/sdk/dependency-injection.md +++ b/docs/azure/sdk/dependency-injection.md @@ -26,13 +26,13 @@ To register and configure service clients from an [`Azure.`-prefixed package](pa dotnet add package Azure.Identity ``` -For demonstration purposes, the sample code in this article uses the Key Vault Secrets, Blob Storage, Service Bus, and Azure OpenAI libraries. Install the following packages to follow along: +For demonstration purposes, the sample code in this article uses the Key Vault Secrets, Blob Storage, Service Bus, and OpenAI libraries. Install the following packages to follow along: ```dotnetcli dotnet add package Azure.Security.KeyVault.Secrets dotnet add package Azure.Storage.Blobs dotnet add package Azure.Messaging.ServiceBus -dotnet add package Azure.AI.OpenAI +dotnet add package OpenAI ``` ## Register clients and subclients @@ -43,15 +43,15 @@ In the *Program.cs* file, invoke the , and , respectively. The `Uri`- and `string`-typed arguments are passed. To avoid specifying these URLs explicitly, see the [Store configuration separately from code](#store-configuration-separately-from-code) section. * Each registered client automatically uses for `TokenCredential` unless you configure a different type of credential (for example, using `WithCredential`). * Service Bus subclients are registered for each queue on the service using the subclient and corresponding options types. The queue names for the subclients are retrieved using a separate method outside of the service registration because the `GetQueuesAsync` method must be run asynchronously. -* An Azure OpenAI client is registered using a custom client factory via the method, which provides control over how a client instance is created. Custom client factories are useful in the following cases: +* A `ResponsesClient` is registered using a custom client factory via the method, which provides control over how a client instance is created. Custom client factories are useful in the following cases: * You need to use other dependencies during the client construction. * A registration extension method doesn't exist for the service client you want to register. diff --git a/docs/azure/sdk/snippets/authentication/Directory.Packages.props b/docs/azure/sdk/snippets/authentication/Directory.Packages.props index 70840c23b7184..a13ebe98b1c95 100644 --- a/docs/azure/sdk/snippets/authentication/Directory.Packages.props +++ b/docs/azure/sdk/snippets/authentication/Directory.Packages.props @@ -4,7 +4,7 @@ - + diff --git a/docs/azure/sdk/snippets/dependency-injection/Directory.Packages.props b/docs/azure/sdk/snippets/dependency-injection/Directory.Packages.props index ad80267b8155e..7c22c29f10cc3 100644 --- a/docs/azure/sdk/snippets/dependency-injection/Directory.Packages.props +++ b/docs/azure/sdk/snippets/dependency-injection/Directory.Packages.props @@ -3,7 +3,6 @@ true - @@ -12,6 +11,7 @@ - + + \ No newline at end of file diff --git a/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/HostApplicationBuilder.csproj b/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/HostApplicationBuilder.csproj index a9394713a5197..bde48833d7801 100644 --- a/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/HostApplicationBuilder.csproj +++ b/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/HostApplicationBuilder.csproj @@ -14,6 +14,6 @@ - + diff --git a/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/Program.cs b/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/Program.cs index 57c9329969b33..29f60fcfd06ed 100644 --- a/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/Program.cs +++ b/docs/azure/sdk/snippets/dependency-injection/HostApplicationBuilder/Program.cs @@ -3,7 +3,9 @@ using Azure.Messaging.ServiceBus.Administration; using Microsoft.Extensions.Azure; using Microsoft.Extensions.Hosting; -using Azure.AI.OpenAI; +using OpenAI; +using OpenAI.Responses; +using System.ClientModel.Primitives; IHost host = Host.CreateDefaultBuilder(args) .ConfigureServices(services => @@ -33,10 +35,18 @@ }).WithName(queueName); } + var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is required."); + // Register a custom client factory - clientBuilder.AddClient( - (options, credential, _) => new AzureOpenAIClient( - new Uri(""), credential, options)); + #pragma warning disable OPENAI001 // Type is for evaluation purposes and is subject to change in future updates. + clientBuilder.AddClient( + (options, credential, _) => new ResponsesClient( + "", + new BearerTokenPolicy(credential, "https://ai.azure.com/.default"), + new OpenAIClientOptions { Endpoint = new Uri($"{endpoint}/openai/v1/") } + )); + #pragma warning restore OPENAI001 }); }).Build(); diff --git a/docs/azure/sdk/snippets/dependency-injection/HostBuilder/HostBuilder.csproj b/docs/azure/sdk/snippets/dependency-injection/HostBuilder/HostBuilder.csproj index 2abd1de2869e9..18afbe2d559ba 100644 --- a/docs/azure/sdk/snippets/dependency-injection/HostBuilder/HostBuilder.csproj +++ b/docs/azure/sdk/snippets/dependency-injection/HostBuilder/HostBuilder.csproj @@ -8,12 +8,12 @@ - - + + diff --git a/docs/azure/sdk/snippets/dependency-injection/HostBuilder/Program.cs b/docs/azure/sdk/snippets/dependency-injection/HostBuilder/Program.cs index ce26641172c91..75e069e5a21ef 100644 --- a/docs/azure/sdk/snippets/dependency-injection/HostBuilder/Program.cs +++ b/docs/azure/sdk/snippets/dependency-injection/HostBuilder/Program.cs @@ -3,7 +3,9 @@ using Azure.Messaging.ServiceBus; using Azure.Messaging.ServiceBus.Administration; using Microsoft.Extensions.Azure; -using Azure.AI.OpenAI; +using OpenAI; +using OpenAI.Responses; +using System.ClientModel.Primitives; IHost host = Host.CreateDefaultBuilder(args) .ConfigureServices(services => @@ -33,10 +35,18 @@ }).WithName(queueName); } + var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is required."); + // Register a custom client factory - clientBuilder.AddClient( - (options, credential, _) => new AzureOpenAIClient( - new Uri(""), credential, options)); + #pragma warning disable OPENAI001 // Type is for evaluation purposes and is subject to change in future updates. + clientBuilder.AddClient( + (options, credential, _) => new ResponsesClient( + "", + new BearerTokenPolicy(credential, "https://ai.azure.com/.default"), + new OpenAIClientOptions { Endpoint = new Uri($"{endpoint}/openai/v1/") } + )); + #pragma warning restore OPENAI001 }); }).Build(); diff --git a/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/Program.cs b/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/Program.cs index 3b1344498956e..11b98cd76219f 100644 --- a/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/Program.cs +++ b/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/Program.cs @@ -3,7 +3,9 @@ using Azure.Messaging.ServiceBus; using Azure.Messaging.ServiceBus.Administration; using Microsoft.Extensions.Azure; -using Azure.AI.OpenAI; +using OpenAI; +using OpenAI.Responses; +using System.ClientModel.Primitives; WebApplicationBuilder builder = WebApplication.CreateBuilder(args); @@ -32,10 +34,18 @@ }).WithName(queueName); } + var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") + ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is required."); + // Register a custom client factory - clientBuilder.AddClient( - (options, credential, _) => new AzureOpenAIClient( - new Uri(""), credential, options)); + #pragma warning disable OPENAI001 // Type is for evaluation purposes and is subject to change in future updates. + clientBuilder.AddClient( + (options, credential, _) => new ResponsesClient( + "", + new BearerTokenPolicy(credential, "https://ai.azure.com/.default"), + new OpenAIClientOptions { Endpoint = new Uri($"{endpoint}/openai/v1/") } + )); + #pragma warning restore OPENAI001 }); WebApplication app = builder.Build(); diff --git a/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/WebApplicationBuilder.csproj b/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/WebApplicationBuilder.csproj index 6e17563da6d30..8de34dcb3cdf0 100644 --- a/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/WebApplicationBuilder.csproj +++ b/docs/azure/sdk/snippets/dependency-injection/WebApplicationBuilder/WebApplicationBuilder.csproj @@ -7,14 +7,14 @@ - - + +