OpenAILib 1.0.3
See the version list below for details.
dotnet add package OpenAILib --version 1.0.3
NuGet\Install-Package OpenAILib -Version 1.0.3
<PackageReference Include="OpenAILib" Version="1.0.3" />
paket add OpenAILib --version 1.0.3
#r "nuget: OpenAILib, 1.0.3"
// Install OpenAILib as a Cake Addin #addin nuget:?package=OpenAILib&version=1.0.3 // Install OpenAILib as a Cake Tool #tool nuget:?package=OpenAILib&version=1.0.3
OpenAILib
Simple OpenAI completions and embeddings library with no dependencies.
Quick Example
var client = new OpenAIClient(organizationId: "organizationId", apiKey: "apiKey");
// likely returns "2"
var result = await client.GetCompletionAsync("1 + 1 = ");
// returns a high dimensional vector representing the specified text
var vector = await client.GetEmbeddingAsync("dog");
Optional response caching
When conducting tests and experiments, it can be advantageous to cache responses. This is especially true when you need to repeatedly make the same requests. To enable response caching, you can create an OpenAIClient using OpenAIClientArgs, as demonstrated in the code below:
var client = new OpenAIClient(
new OpenAIClientArgs(organizationId: OrganizationId, apiKey: ApiKey)
{
ResponseCache = new TempFileResponseCache()
});
The responses are saved in either $TMPDIR/OpenAILibCache for Linux or C:\Users[username]\AppData\Local\Temp\OpenAILibCache for Windows. However, if you need a more advanced caching approach, you can create a custom caching strategy by implementing the IResponseCache interface, which is illustrated in the code snippet below.
public interface IResponseCache
{
bool TryGetResponse(Guid key, out string? cachedResponse);
void PutResponse(Guid key, string response);
}
You can use a variety of options to implement a key-value store, including Redis, Cassandra, DynamoDB, or even a basic in-memory structure.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 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. |
-
net6.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.