NGpt 1.6.0
See the version list below for details.
dotnet add package NGpt --version 1.6.0
NuGet\Install-Package NGpt -Version 1.6.0
<PackageReference Include="NGpt" Version="1.6.0" />
paket add NGpt --version 1.6.0
#r "nuget: NGpt, 1.6.0"
// Install NGpt as a Cake Addin #addin nuget:?package=NGpt&version=1.6.0 // Install NGpt as a Cake Tool #tool nuget:?package=NGpt&version=1.6.0
NGpt - OpenAI ChatGPT Client for C# AI Developers
Table of Contents
Introduction
Thanks for downloading NGpt, OpenAI ChatGPT client for C# developers! We hope this library will help you to create amazing AI applications in C#.
NGpt is a powerful transient fault-tolerant .NET 6 OpenAI client that helps C# developers to use OpenAPI ChatGPT in their applications in seconds. All you need to know is your OpenAI apiKey. Download this package and start coding AI applications in C# today!
Features
- Easy integration with ChatGPT in OpenAI in your .NET applications
- Simplified API usage - Just use the Chat class and Completion method.
- Built specifically for C# developers
- Generate more than 1 completion option in a single response
- You can send more reqests than allowed, NGpt will handle it for you and send it with a proper delay. Transient HTTP errors handling with rety logic and exponential backoff.
Installation
Install the package from NuGet: Install-Package NGpt
Quickstart Examples
How to get API key and organization?
- Go to: https://platform.openai.com/signup/
- Sign in with your Google account
- Go to https://platform.openai.com/account/api-keys
This is a QUICKSTART for C# DEVELOPERS to use OPENAI ChatGPT:
- Replace the <API_KEY> and optionally <ORGANIZATION> with your own values that you can find on OpenAI website.
- Copy the example code and paste it into your C# program in Visual Studio.
- Run the application
- Congratulations! You made your first call to OpenAI ChatGPT!
- Experiment with your own requests and responses.
CHAT - the Simplest Example
using NGpt;
// Initialize the client with your API key.
var chat = new Chat("<API_KEY>");
// Get a response from ChatGPT
var responseFromOpenAI = chat.Complete("Say hello");
Console.WriteLine(responseFromOpenAI);
CHAT - more Complex Example - use it when you need more configuration flexibility
using NGpt;
// Initialize the client.
// Optionally you can pass the organization id as a second parameter.
var chat = new Chat("<API_KEY>");
// Create a completion request
var completionRequest = new ChatRequest()
{
Messages = new ChatMessage[]
{
new ChatMessage()
{
Role = Role.User,
Content = "Say this is a test!",
}
},
Temperature = 0.7f,
Model = ChatModel.GPT3_5Turbo
};
// Get the response
var response = chat.Complete(completionRequest);
// Extract the content
var content = response.Choices[0].Message.Content;
Console.WriteLine(content);
CHAT - example - generate 3 response options in a single OpenAPI request
using NGpt.ChatCompletion;
using NGpt;
// Optionally you can pass the organization id as a second parameter.
var chat = new Chat("<API_KEY>");
var completionRequest = new ChatRequest()
{
Messages = new ChatMessage[]
{
new ChatMessage()
{
Role = Role.User,
Content = "Create C# program that checks if a given number is prime number",
},
},
Temperature = 0f,
Model = ChatModel.GPT3_5Turbo,
N = 3
};
var response = chat.Complete(completionRequest);
foreach(var choice in response.Choices)
{
var content = choice.Message.Content;
Console.WriteLine(content);
}
EDIT - ask GPT to modify specified text
using NGpt.Domain.Edit;
//Organization is optional parameter - you can skip it
var edit = new Edit("<API_KEY>", "<Organization>");
var response = edit.EditText("To bee or not to be.", "fix spelling");
//Displays: "To be or not to be.\n"
Console.WriteLine(response);
EDIT - ask GPT to modify specified Code in C#
using NGpt.Domain.Edit;
var edit = new Edit("<API_KEY>", "<Organization>");
var response = edit.EditCode("Console.WriteLine(\"Test\");", "Change it to dispay text: \"aaa\"");
//Displays: "Console.WriteLine(\"aaa\");\n"
Console.WriteLine(response);
EDIT - ask GPT to modify code or text.
Useful when you need a flexibility (for example you want to increase temperature to get more random results, or you want to increase N parameter to generate more alternative results)
using NGpt.Domain.Edit;
var edit = new Edit("<API_KEY>", "<Organization>");
var request = new EditRequest(EditModel.TextDavinciEdit001, "Change it to dispay text: \"aaa\"")
{
Input = "Console.WriteLine(\"Test\");",
Temperature = 0,
N = 1,
Top_p = 1
};
var response = edit.Edit(request);
//Displays: "Console.WriteLine(\"aaa\");\n"
Console.WriteLine(response);
IMAGE - DALL-E 2 - ask GPT to create an image based on a given prompt
// Create an instance of the Image class with the API key and organization.
var image = new Image("<API_KEY>", "<Organization>");
// Create a new ImageRequest object with a prompt, "Little Labrador dog",
// and set the properties for the number of images, response format, size, and user.
var imageRequest = new ImageRequest("Little Labrador dog")
{
NumberOfImages = 1,
ResponseFormat = ResponseFormatType.Url,
Size = ImageSize.Size512x512,
User = "Dariusz Kacban"
};
// Call the Generate method of the image object to request image generation
// based on the properties set in the imageRequest object.
var response = image.Generate(imageRequest);
// Extract the first URL from the response's Data property.
var url = response.Data.First().Url;
Support
If you have any issues or need help, please contact us: kontakt@pilsoft.platform
License
This project is licensed under the MIT License. See the LICENSE file for more information.
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
- Flurl.Http (>= 3.2.4)
- Newtonsoft.Json (>= 13.0.3)
- Polly.Extensions.Http (>= 3.0.0)
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 |
---|---|---|
1.7.4 | 359 | 7/18/2023 |
1.7.3 | 172 | 7/10/2023 |
1.7.2 | 166 | 7/6/2023 |
1.7.1 | 158 | 7/6/2023 |
1.7.0 | 158 | 5/12/2023 |
1.6.1 | 173 | 5/11/2023 |
1.6.0 | 151 | 5/10/2023 |
1.5.0 | 169 | 5/7/2023 |
1.4.5 | 157 | 5/5/2023 |
1.4.4 | 154 | 5/5/2023 |
1.4.3 | 172 | 4/30/2023 |
1.4.2 | 183 | 4/30/2023 |
1.4.1 | 171 | 4/30/2023 |
1.4.0 | 172 | 4/29/2023 |
1.3.0 | 165 | 4/28/2023 |
- Add image generation with DALL-E 2 model
- Update readme file with DALL-E 2 example