![]() |
VOOZH | about |
dotnet add package AzureOpenAIClient --version 1.0.2
NuGet\Install-Package AzureOpenAIClient -Version 1.0.2
<PackageReference Include="AzureOpenAIClient" Version="1.0.2" />
<PackageVersion Include="AzureOpenAIClient" Version="1.0.2" />Directory.Packages.props
<PackageReference Include="AzureOpenAIClient" />Project file
paket add AzureOpenAIClient --version 1.0.2
#r "nuget: AzureOpenAIClient, 1.0.2"
#:package AzureOpenAIClient@1.0.2
#addin nuget:?package=AzureOpenAIClient&version=1.0.2Install as a Cake Addin
#tool nuget:?package=AzureOpenAIClient&version=1.0.2Install as a Cake Tool
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.
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 |
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]"
}
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));
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);
}
}
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);
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 1 NuGet packages that depend on AzureOpenAIClient:
| Package | Downloads |
|---|---|
|
BootstrapBlazor.OCR
Bootstrap UI components extensions of Ocr |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|
Initial release.