AzureOpenAIClient 1.0.2
dotnet add package AzureOpenAIClient --version 1.0.2
NuGet\Install-Package AzureOpenAIClient -Version 1.0.2
<PackageReference Include="AzureOpenAIClient" Version="1.0.2" />
paket add AzureOpenAIClient --version 1.0.2
#r "nuget: AzureOpenAIClient, 1.0.2"
// Install AzureOpenAIClient as a Cake Addin #addin nuget:?package=AzureOpenAIClient&version=1.0.2 // Install AzureOpenAIClient as a Cake Tool #tool nuget:?package=AzureOpenAIClient&version=1.0.2
Azure OpenAI .NET Client
This project contains an unofficial .NET client library for use with Azure's OpenAI resource. It contains an implementation of a pre-configured injectable OpenAIClient
which can be used to communicate to the Azure OpenAI platform instead of relying purely on hand-crafted REST API calls.
NOTE: For the official Azure.AI.OpenAI NuGet package, please use this one.
OpenAIClient settings
The following settings allow the OpenAI client to connect to your Azure resource, authenticate, and work with the right deployment model you've created in the portal.
Setting | Purpose | Example |
---|---|---|
BaseUri | The fully qualified domain name of the OpenAI resource in Azure. | https://myai.openai.azure.com/ |
ApiKey | The API key used to authenticate the client to OpenAI in Azure. | 1bbcc11a3a233857zz12aa5f2fake99af7d9c |
DeploymentName | The name of the deployment for a given OpenAI model. | text-davinci-002 |
Configuration
The section below shows an example JSON configuration which can be stored in your secrets.json
file, appsettings.development.json
, or appsettings.json
.
"OpenAiClientConfiguration": {
"BaseUri": "[your_fqdn]",
"ApiKey": "[your_api_key]",
"DeploymentName": "[your_deployment_name]"
}
Setup in Program.cs
In your .NET application, you can use the NuGet package to allow for the following extension method which will register a singleton reference of the OpenAIClient
instance.
builder.Services.AddOpenAIClient(x => builder.Configuration.Bind(nameof(OpenAIClientConfiguration), x));
OpenAIClient usage
Since the OpenAIClient
is registered for Dependency Injection, you can inject it and use it with the GetTextCompletionResponseAsync()
method. The CompletionResponse
contains the model OpenAI uses with their typical REST API.
public class MyClass
{
private readonly OpenAIClient _client;
public MyClass(OpenAIClient client)
{
_client = client;
}
Task DoWork(string input)
{
var completionRequest = new CompletionRequest()
{
Prompt = input,
MaxTokens = 100
};
CompletionResponse? completionResponse = await _client.GetTextCompletionResponseAsync(completionRequest);
}
}
Streaming support
The client now supports streaming using IAsyncEnumerable<CompletionResponse?>
and can be iterated using the await foreach
pattern as follows:
// inject the OpenAIClient and call streaming method
var completionRequest = new CompletionRequest()
{
Prompt = input,
MaxTokens = 100
};
var stream = _client.StreamTextCompletionResponseAsync(completionRequest);
await foreach (var completionResponse in stream)
{
Console.Write(completionResponse.Choices.FirstOrDefault().Text);
}
Community Links
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on AzureOpenAIClient:
Package | Downloads |
---|---|
BootstrapBlazor.OCR
Bootstrap UI components extensions of Ocr |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|
Initial release.