GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - PawanOsman/ChatGPT.Net: C# library for ChatGPT using official OpenAI API

BranchesTags
Open more actions menu

Latest commit

 

History

95 Commits
95 Commits

Folders and files

NameName
Last commit message
Last commit date
src
src
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

ChatGPT.Net - .Net Library for ChatGPT [Discord]

Other versions [NodeJS Version]

Nuget Package Nuget Package GitHub issues GitHub forks GitHub stars GitHub license Discord server

Check the new Google Bard Chatbot!

The ChatGPT.Net is a C# library for ChatGPT using official OpenAI API that allows developers to access ChatGPT, a chat-based large language model. With this API, developers can send queries to ChatGPT and receive responses in real-time, making it easy to integrate ChatGPT into their own applications.

using ChatGPT.Net;

// ChatGPT Official API
var bot = new ChatGpt("<API_KEY>");

var response = await bot.Ask("What is the weather like today?");
Console.WriteLine(response);

Table of Contents

  • Features
  • Getting Started
    • Usage
      • ChatGPT Official API
      • ChatGPT Unofficial API
  • Configuration options
    • ChatGPT Official API
    • ChatGPT Unofficial API
  • Examples
    • ChatGPT Console App
    • Use a different model
    • Using ChatGPT Official API For Free
  • License

Features

  • Easy to use.
  • Using official OpenAI API.
  • Supports both free and pro accounts.
  • Supports multiple accounts, and multiple conversations.
  • Support response streaming, so you can get response while the model is still generating it.

Getting Started

To install ChatGPT.Net, run the following command in the Package Manager Console:

Install-Package ChatGPT.Net

Alternatively, you can install it using the .NET Core command-line interface:

dotnet add package ChatGPT.Net

Usage

ChatGPT Official API

Here is a sample code showing how to use ChatGPT.Net:

using ChatGPT.Net;

// ChatGPT Official API
var bot = new ChatGpt("<API_KEY>");

// get response
var response = await bot.Ask("What is the weather like today?");
Console.WriteLine(response);

// stream response
await bot.AskStream(response => {
    Console.WriteLine(response);
}, "What is the weather like today?");

// get response for a specific conversation
var response = await bot.Ask("What is the weather like today?", "conversation name");
Console.WriteLine(response);

// stream response for a specific conversation
await bot.AskStream(response => {
    Console.WriteLine(response);
}, "What is the weather like today?", "conversation name");

// Set a system message
bot.SetConversationSystemMessage("conversation name", "You are a helpful assistant that provides clear and concise answers to questions.");

Some models can understand both text and images. To use this feature, you need to pass a list of content items that includes both text and images.

// To stream responses with both image and text input, create a list of content items
var contentItems = new List<ChatGptMessageContentItem>();

// Each content item can be either "Text" type or "Image" type. Let's add text to inquire about the image
contentItems.Add(new ChatGptMessageContentItem()
{
    Type = ChatGptMessageContentType.TEXT,
    Text = "what is this image about?"
});

// Now, create another content item of "Image" type
var contentItemWithImage = new ChatGptMessageContentItem()
{
    Type = ChatGptMessageContentType.IMAGE
};
// Set image by path
contentItemWithImage.SetImageFromFile("<path-to-file>");
// Or set image by Url
contentItemWithImage.SetImageFromUrl("https://path-to-image.com/image.png");
// Or set base64 image url
contentItemWithImage.SetImageFromUrl("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA.....");

contentItems.Add(contentItemWithImage);

// Only specific models understand image input. Therefore, if you are using 'gpt-3.5-turbo' or similar model, switch or override the model before calling 'AskStream'. More details about `ChatGptOptions` (config) are covered in the next section.
config.Model = ChatGptModels.GPT_4_Vision_Preview;

var response = await bot.AskStream(response => {
    Console.WriteLine(response);
}, contentItems, "conversation name");

ChatGPT Unofficial API

Here is a sample code showing how to integrate (chat.openai.com) with your applications using ChatGPT.Net:

using ChatGPT.Net;

// ChatGPT Official API
var bot = new ChatGptUnofficial("<SESSION_TOKEN>");

// get response
var response = await bot.Ask("What is the weather like today?");
Console.WriteLine(response);

// stream response
await bot.AskStream(response => {
    Console.WriteLine(response);
}, "What is the weather like today?");

// get response for a specific conversation
var response = await bot.Ask("What is the weather like today?", "conversation name");
Console.WriteLine(response);

// stream response for a specific conversation
await bot.AskStream(response => {
    Console.WriteLine(response);
}, "What is the weather like today?", "conversation name");

Configuration options

ChatGPT Official API

ChatGptOptions
{
    string BaseUrl; // Default: https://api.openai.com
    string Model; // Default: gpt-3.5-turbo
    double Temperature; // Default: 0.9;
    double TopP; // Default: 1.0;
    long MaxTokens; // Default: 64;
    string[]? Stop; // Default: null;
    double PresencePenalty; // Default: 0.0;
    double FrequencyPenaltyl; // Default: 0.0;
}

ChatGPT Unofficial API

ChatGptUnofficialOptions
{
    string BaseUrl; // Default: https://api.pawan.krd
    string Model; // Default: text-davinci-002-render-sha
}

Examples

ChatGPT Console App

This is a simple console app that uses ChatGPT.Net to interact with ChatGPT.

using ChatGPT.Net;

// ChatGPT Official API
var bot = new ChatGpt("<API_KEY>");

var prompt = string.Empty;

while (true)
{
    Console.Write("You: ");
    prompt = Console.ReadLine();
    if (prompt is null) break;
    if (string.IsNullOrWhiteSpace(prompt)) break;
    if (prompt == "exit") break;
    Console.Write("ChatGPT: ");
    await bot.AskStream(Console.Write, prompt, "default");
    Console.WriteLine();
}

Use a different model

You can use a different model by passing the model name to the constructor.

var bot = new ChatGpt("<API_KEY>", new ChatGptOptions
{
    Model = "text-davinci-002-render-paid"
});

Using ChatGPT Official API For Free

you can use ChatGPT Official API by setting the base url to a free reverse proxy server like ChatGPT Free Reverse Proxy

var bot = new ChatGpt("<API_KEY>", new ChatGptOptions
{
    BaseUrl = "https://api.pawan.krd"
});

License

This project is licensed under the MIT License - see the LICENSE file for details

About

C# library for ChatGPT using official OpenAI API

www.nuget.org/packages/ChatGPT.Net

Topics

aiapichatgptcsharpdotnetfreeopenaiopenai-apireverse-proxy

Resources

Readme
MIT license
Activity

Stars

385 stars

Watchers

5 watching

Forks

69 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.