Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork72
C# library for ChatGPT using official OpenAI API
License
PawanOsman/ChatGPT.Net
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ChatGPT.Net - .Net Library for ChatGPT [Discord]
Other versions [NodeJS Version]
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.
usingChatGPT.Net;// ChatGPT Official APIvarbot=newChatGpt("<API_KEY>");varresponse=awaitbot.Ask("What is the weather like today?");Console.WriteLine(response);
- 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.
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
Here is a sample code showing how to use ChatGPT.Net:
usingChatGPT.Net;// ChatGPT Official APIvarbot=newChatGpt("<API_KEY>");// get responsevarresponse=awaitbot.Ask("What is the weather like today?");Console.WriteLine(response);// stream responseawaitbot.AskStream(response=>{Console.WriteLine(response);},"What is the weather like today?");// get response for a specific conversationvarresponse=awaitbot.Ask("What is the weather like today?","conversation name");Console.WriteLine(response);// stream response for a specific conversationawaitbot.AskStream(response=>{Console.WriteLine(response);},"What is the weather like today?","conversation name");// Set a system messagebot.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 itemsvarcontentItems=newList<ChatGptMessageContentItem>();// Each content item can be either "Text" type or "Image" type. Let's add text to inquire about the imagecontentItems.Add(newChatGptMessageContentItem(){Type=ChatGptMessageContentType.TEXT,Text="what is this image about?"});// Now, create another content item of "Image" typevarcontentItemWithImage=newChatGptMessageContentItem(){Type=ChatGptMessageContentType.IMAGE};// Set image by pathcontentItemWithImage.SetImageFromFile("<path-to-file>");// Or set image by UrlcontentItemWithImage.SetImageFromUrl("https://path-to-image.com/image.png");// Or set base64 image urlcontentItemWithImage.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;varresponse=awaitbot.AskStream(response=>{Console.WriteLine(response);},contentItems,"conversation name");
Here is a sample code showing how to integrate (chat.openai.com) with your applications using ChatGPT.Net:
usingChatGPT.Net;// ChatGPT Official APIvarbot=newChatGptUnofficial("<SESSION_TOKEN>");// get responsevarresponse=awaitbot.Ask("What is the weather like today?");Console.WriteLine(response);// stream responseawaitbot.AskStream(response=>{Console.WriteLine(response);},"What is the weather like today?");// get response for a specific conversationvarresponse=awaitbot.Ask("What is the weather like today?","conversation name");Console.WriteLine(response);// stream response for a specific conversationawaitbot.AskStream(response=>{Console.WriteLine(response);},"What is the weather like today?","conversation name");
ChatGptOptions{stringBaseUrl;// Default: https://api.openai.comstringModel;// Default: gpt-3.5-turbodoubleTemperature;// Default: 0.9;doubleTopP;// Default: 1.0;longMaxTokens;// Default: 64;string[]?Stop;// Default: null;doublePresencePenalty;// Default: 0.0;doubleFrequencyPenaltyl;// Default: 0.0;}
ChatGptUnofficialOptions{stringBaseUrl;// Default: https://api.pawan.krdstringModel;// Default: text-davinci-002-render-sha}
This is a simple console app that uses ChatGPT.Net to interact with ChatGPT.
usingChatGPT.Net;// ChatGPT Official APIvarbot=newChatGpt("<API_KEY>");varprompt=string.Empty;while(true){Console.Write("You: ");prompt=Console.ReadLine();if(promptisnull)break;if(string.IsNullOrWhiteSpace(prompt))break;if(prompt=="exit")break;Console.Write("ChatGPT: ");awaitbot.AskStream(Console.Write,prompt,"default");Console.WriteLine();}
You can use a different model by passing the model name to the constructor.
varbot=newChatGpt("<API_KEY>",newChatGptOptions{Model="text-davinci-002-render-paid"});
you can use ChatGPT Official API by setting the base url to a free reverse proxy server likeChatGPT Free Reverse Proxy
varbot=newChatGpt("<API_KEY>",newChatGptOptions{BaseUrl="https://api.pawan.krd"});
This project is licensed under the MIT License - see theLICENSE file for details
About
C# library for ChatGPT using official OpenAI API
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Contributors4
Uh oh!
There was an error while loading.Please reload this page.