OpenAI.Constants
2.0.0-alpha.3
See the version list below for details.
dotnet add package OpenAI.Constants --version 2.0.0-alpha.3
NuGet\Install-Package OpenAI.Constants -Version 2.0.0-alpha.3
<PackageReference Include="OpenAI.Constants" Version="2.0.0-alpha.3" />
paket add OpenAI.Constants --version 2.0.0-alpha.3
#r "nuget: OpenAI.Constants, 2.0.0-alpha.3"
// Install OpenAI.Constants as a Cake Addin #addin nuget:?package=OpenAI.Constants&version=2.0.0-alpha.3&prerelease // Install OpenAI.Constants as a Cake Tool #tool nuget:?package=OpenAI.Constants&version=2.0.0-alpha.3&prerelease
OpenAI
Generated C# SDK based on official OpenAI OpenAPI specification using NSwag
This package includes C# Source Generator which allows you to define functions natively through a C# interface,
and also provides extensions that make it easier to call this interface later.
In addition to easy function implementation and readability,
it generates Args classes, extension methods to easily pass a functions to API,
and extension methods to simply call a function via json and return json.
Currently only System.Text.Json is supported.
Usage
using tryAGI.OpenAI;
public enum Unit
{
Celsius,
Fahrenheit,
}
public class Weather
{
public string Location { get; set; } = string.Empty;
public double Temperature { get; set; }
public Unit Unit { get; set; }
public string Description { get; set; } = string.Empty;
}
[OpenAiFunctions]
public interface IWeatherFunctions
{
[Description("Get the current weather in a given location")]
public Task<Weather> GetCurrentWeatherAsync(
[Description("The city and state, e.g. San Francisco, CA")] string location,
Unit unit = Unit.Celsius,
CancellationToken cancellationToken = default);
}
public class WeatherService : IWeatherFunctions
{
public Task<Weather> GetCurrentWeatherAsync(string location, Unit unit = Unit.Celsius, CancellationToken cancellationToken = default)
{
return Task.FromResult(new Weather
{
Location = location,
Temperature = 22.0,
Unit = unit,
Description = "Sunny",
});
}
}
var service = new WeatherService();
using var httpClient = new HttpClient();
var api = new OpenAiApi(apiKey, httpClient);
var result = await api.CreateChatCompletionAsync(new CreateChatCompletionRequest
{
Messages = new List<ChatCompletionRequestMessage>
{
"You are a helpful weather assistant.".AsSystemMessage(),
"What's the weather like today?".AsUserMessage(),
},
Functions = service.AsFunctions(),
Function_call = Function_call4.Auto,
Model = ModelIds.Gpt35Turbo_0613,
});
// ...
var resultMessage = result.GetFirstChoiceMessage();
var functionArgumentsJson = resultMessage.Function_call?.Arguments ?? string.Empty;
var json = await service.CallGetCurrentWeatherAsync(functionArgumentsJson);
// or just get arguments
var args = service.AsGetCurrentWeatherAsyncArgs(functionArgumentsJson);
Support
Priority place for bugs: https://github.com/tryAGI/OpenAI/issues
Priority place for ideas and general questions: https://github.com/tryAGI/OpenAI/discussions
Discord: https://discord.gg/Ca2xhfBf3v
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- System.ValueTuple (>= 4.5.0)
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
3.0.0 | 1,220 | 7/11/2024 | |
3.0.0-alpha.3 | 70 | 7/7/2024 | |
3.0.0-alpha.2 | 69 | 7/6/2024 | |
2.0.9 | 34,411 | 5/14/2024 | |
2.0.8 | 194 | 4/29/2024 | |
2.0.7 | 160 | 4/29/2024 | |
2.0.6 | 9,377 | 4/22/2024 | |
2.0.5 | 669 | 4/10/2024 | |
2.0.4 | 413 | 4/4/2024 | |
2.0.3 | 157 | 4/3/2024 | |
2.0.2 | 252 | 4/3/2024 | |
2.0.1 | 172 | 4/2/2024 | |
2.0.0 | 334 | 3/22/2024 | |
2.0.0-alpha.10 | 3,051 | 2/23/2024 | |
2.0.0-alpha.9 | 23,130 | 1/27/2024 | |
2.0.0-alpha.8 | 69 | 1/27/2024 | |
2.0.0-alpha.7 | 124 | 1/20/2024 | |
2.0.0-alpha.5 | 511 | 12/5/2023 | |
2.0.0-alpha.4 | 196 | 11/16/2023 | |
2.0.0-alpha.3 | 114 | 11/16/2023 | |
2.0.0-alpha.2 | 84 | 11/16/2023 |