CodeMonarchs.OpenAISharp.Embedding
0.0.1-beta
dotnet add package CodeMonarchs.OpenAISharp.Embedding --version 0.0.1-beta
NuGet\Install-Package CodeMonarchs.OpenAISharp.Embedding -Version 0.0.1-beta
<PackageReference Include="CodeMonarchs.OpenAISharp.Embedding" Version="0.0.1-beta" />
paket add CodeMonarchs.OpenAISharp.Embedding --version 0.0.1-beta
#r "nuget: CodeMonarchs.OpenAISharp.Embedding, 0.0.1-beta"
// Install CodeMonarchs.OpenAISharp.Embedding as a Cake Addin
#addin nuget:?package=CodeMonarchs.OpenAISharp.Embedding&version=0.0.1-beta&prerelease
// Install CodeMonarchs.OpenAISharp.Embedding as a Cake Tool
#tool nuget:?package=CodeMonarchs.OpenAISharp.Embedding&version=0.0.1-beta&prerelease
OpenAISharp
A .NET Standard 2.1 C# class library created to easily interface with the the Open AI API.
Supported Versions of .NET and .NET Core
.NET Core 3.0 | .NET Core 3.1 | .NET 5.0 | .NET 6.0 | .NET 7.0 |
---|
Getting Started - Web API (.NET/.NET Core)
Install the NuGet package from CodeMonarchs.OpenAISharp:
dotnet add package CodeMonarchs.OpenAISharp
Grab your
ApiKey
andOrganizationId
from Open AI:Open your
appsettings.json
(or wherever your specific use case stores configuration settings) and add the following key/value pair:{ "OpenAI:ApiKey": "<your-api-key>", "OpenAI:OrganizationId": "<your-organization-id>" }
Register the dependencies in your
Program.cs
file:// Include OpenAISharp.Extensions library to access the .AddOpenAI(...) extension method using OpenAISharp.Extensions; var builder = WebApplication.CreateBuilder(args); // Add OpenAISharp Dependencies and Configuration var apiKey = builder.Configuration["OpenAI:ApiKey"]; var organizationId = builder.Configuration["OpenAI:OrganizationId"]; builder.Services.AddOpenAI(apiKey, organizationId);
That's it! Now you can consume any of the services in this repository as you normally would with regular old dependency injection. See example project links below if you need help.
Usage
Below is a run down of all of the services within this library and a sample of how to use them. All required parameters are set via the constructor in each of the request objects.
CompletionService
// Create Completion
var request = new CreateCompletionRequest("model-name") { Prompt = "Say this is cool" };
var response = await service.CreateCompletionAsync(request);
EditService
// Create Edit
var request = new CreateEditRequest(KnownModelNames.TextDavinciEdit001, "Translate this to Spanish") { Input = "Hey" };
var response = await service.CreateEditAsync(request);
EmbeddingService
// Create Embedding
var request = new CreateEmbeddingRequest(KnownModelNames.TextEmbeddingAda002, "The car was super fast and...");
var response = await service.CreateEmbeddingAsync(request);
FileService
// List Files
var response = await service.ListFilesAsync();
// Upload File (JsonL string in memory)
var fileContent = FileUtility.ToJsonL(new List<FilePromptAndCompletion>
{
new FilePromptAndCompletion("How old is Ryan Tunis?", "35"),
new FilePromptAndCompletion("How old is Lourdes Palacios?", "29"),
new FilePromptAndCompletion("How old is Enzo Tunis?", "That's a trick question. As of Jan 2023 he hasn't been born yet. Expeceted May 7th 2023." ),
new FilePromptAndCompletion("How old is Chris Doherty?", "49. But for a mountain, he has only begun in years." )
});
var response = await service.UploadFileAsync(new UploadFileRequest("test-file.jsonl", fileContent, false));
// Upload File (JsonL from file)
var response = await service.UploadFileAsync(new UploadFileRequest("test-file.jsonl", @"C:\path\to\file.jsonl", true));
// Retrieve File
var response = await service.RetrieveFileAsync("file-id");
// Delete File
var response = await service.DeleteFileAsync("file-id");
// Retrieve File Content
var response = await service.RetrieveFileContentAsync("file-id");
FineTuneService
// List FineTunes
var response = await service.ListFineTunesAsync();
// Create FineTunes
var request = new CreateFineTuneRequest("file-id");
var response = await service.CreateFineTuneAsync(request);
// Retrieve FineTune
var response = await service.RetrieveFineTuneAsync("fine-tune-id");
// Cancel FineTune
var response = await service.CancelFineTuneAsync("fine-tune-id");
// Delete FineTune Model
var response = await service.DeleteFineTuneModelAsync("model-id");
// List FineTune Events
var response = await service.ListFineTuneEventsAsync("fine-tune-id");
ImageService
// Create Image
var request = new CreateImageRequest("Draw Etzio from Assassin's Creed");
var response = await service.CreateImageAsync(request);
// Create Image Edit
var request = new CreateImageEditRequest("test_image_rgba.png", @"C:\path\to\image.png", "Make me something random.", true);
var response = await service.CreateImageEditAsync(request);
// Create Image Variation
var request = new CreateImageVariationRequest("test_image_rgba.png", @"C:\path\to\image.png", true);
var response = await service.CreateImageVariationAsync(request);
ModelService
// List Models
var response = await service.ListModelsAsync();
// Retrieve Model
var response = await service.RetrieveModelAsync(KnownModelNames.Ada);
ModerationService
// List Models
var request = new CreateModerationRequest("is this a bad word");
var response = await service.CreateModerationAsync(request);
Examples
https://github.com/codemonarchs/OpenAISharp/tree/main/Examples
Libraries
CodeMonarchs.OpenAISharp
- Meta package that includes all of the below libraries.
CodeMonarchs.OpenAISharp.Completion
- Completions API - (https://beta.openai.com/docs/api-reference/completions)
CodeMonarchs.OpenAISharp.Edit
- Edit API - (https://beta.openai.com/docs/api-reference/edits)
CodeMonarchs.OpenAISharp.Embedding
- Embeddings API - (https://beta.openai.com/docs/api-reference/embeddings)
CodeMonarchs.OpenAISharp.File
- Files API - (https://beta.openai.com/docs/api-reference/files)
CodeMonarchs.OpenAISharp.FineTune
- FineTunes API - (https://beta.openai.com/docs/api-reference/fine-tunes)
CodeMonarchs.OpenAISharp.Image
- Images API - (https://beta.openai.com/docs/api-reference/images)
CodeMonarchs.OpenAISharp.Model
- Models API - (https://beta.openai.com/docs/api-reference/models)
CodeMonarchs.OpenAISharp.Moderation
- Moderations API - (https://beta.openai.com/docs/api-reference/moderation)
CodeMonarchs.OpenAISharp.Client
- An abstraction layer specific to sending HTTP requests to the Open AI API. You don't need to include this by itself.
CodeMonarchs.OpenAISharp.Utilities
- A utility library that contains an implementation of the Tokenizer Tool for GPT-3.
Integration Testing Setup For Contributers (OpenAISharp.IntegrationTests)
- Retrieve your
Apikey
andOrganizationId
from the Open AI API. - Run the powershell script located in
OpenAISharp.IntegrationTests
to set environment variables with yourApiKey
andOrganizationId
from the Open AI API:.\set-openai-credentials.ps1 -ApiKey <your-api-key> -OrganizationId <your-organization-id>
- That's it!
Note: If you have Visual Studio open while you set these environment variables you need to restart it as Visual Studio does not detect when the environment variables change.
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
- CodeMonarchs.OpenAISharp.Client (>= 0.0.1-beta)
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.0.1-beta | 0 | 1/27/2023 |