Rocket your .NET App by adding Chat-GPT to it!🚀
Tags: csharp, dotnet, chatgpt, openai
Published: 2023-03-28 09:00:00

Have you ever wondered how to supercharge your .NET application by adding AI capabilities like natural language understanding, chatbots, or even generating code snippets? Look no further!

In this article, we’ll dive into the world of OpenAI’s Chat-GPT and explore how you can seamlessly integrate it into your .NET application. So, buckle up and let’s get started!

## OpenAI and Chat-GPT in the programming context

OpenAI is an artificial intelligence research lab that has created some of the most advanced AI models available today. One such model is the **Generative Pre-trained Transformer (GPT)**, which has evolved through multiple versions, with the latest being Chat-GPT. So, what exactly is Chat-GPT?

Chat-GPT is a powerful language model designed to understand and **generate human-like text**. It can perform tasks like:

-   Answering questions
-   Generating code snippets
-   Summarizing text
-   And much more

In a programming context, Chat-GPT can serve as a highly versatile tool to enhance your applications with **natural language processing capabilities**, enabling you to create smart chatbots, text analyzers, or even code generators.

## Custom API calls vs. using a library

While you can certainly create **custom API calls** to interact with the Chat-GPT model, using a **dedicated library** is often a more efficient and convenient alternative.

A library provides an **abstraction layer** that simplifies the process of making API calls and handling responses, allowing you to focus on building your application instead of wrestling with API intricacies.

A .NET library specifically designed for working with OpenAI’s API not only streamlines the integration process but also ensures that your application leverages the full potential of Chat-GPT.

## Introducing the GitHub package

One such library is available on GitHub: [OpenAI-API-dotnet](https://github.com/OkGoDoIt/OpenAI-API-dotnet). This package is designed to work seamlessly with .NET applications, making it easy for you to integrate Chat-GPT into your project.

By using this package, you can quickly and efficiently access the OpenAI API and harness the power of Chat-GPT without worrying about the complexities of managing API calls and parsing responses.

## C# Application with OpenAI API

To get started with the OpenAI-API-dotnet library, you first need to install it via NuGet:

```csharp
Install-Package OpenAI
```

Next, you can use the library in your application like this:

```csharp
using System;
using System.Threading.Tasks;
using OpenAI_API;

class Program
{
    static async Task Main(string[] args)
    {
        // Create an instance of the APIAuthentication class with your API key
        var authentication = new APIAuthentication("YOUR_API_KEY");

        // Create an instance of the OpenAIAPI class with the APIAuthentication object
        var api = new OpenAIAPI(authentication);

        // Create a new conversation with ChatGPT
        var conversation = api.Chat.CreateConversation();

        // Append user input and get response from ChatGPT
        conversation.AppendUserInput("YOUR_INPUT_HERE");
        var response = await conversation.GetResponseFromChatbot();
        Console.WriteLine(response); 

        // Wait for user input before closing the console window
        Console.ReadLine();
    }
}
```

The only thing you should do is to replace `YOUR_API_KEY` with your [OpenAI API Key](https://platform.openai.com/account/api-keys) and write the input you want in `YOUR_INPUT_HERE`.

For example we can improve it to calculate the population of a country:

```csharp
using System;
using System.Threading.Tasks;
using OpenAI_API;

class Program
{
    static async Task Main(string[] args)
    {
        // Create an instance of the APIAuthentication class with your API key
        var authentication = new APIAuthentication("YOUR_API_KEY");

        // Create an instance of the OpenAIAPI class with the APIAuthentication object
        var api = new OpenAIAPI(authentication);

        // Create a new conversation with ChatGPT
        var conversation = api.Chat.CreateConversation();

        // Append system message with instructions for the chat
        conversation.AppendSystemMessage("You are a geography teacher who knows how many habitants there are in each country. When the user tells you a country, you will only answer the number of habitants. Nothing else. You only answer with the number of habitants.");


        // Append user input and get response from ChatGPT
        conversation.AppendUserInput("Spain");
        var response = await conversation.GetResponseFromChatbot();
        Console.WriteLine(response);

        // Append another user input and get another response from ChatGPT
        conversation.AppendUserInput("France");
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine(response);

        // Append another user input and get another response from ChatGPT
        conversation.AppendUserInput("United States");
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine(response);

        // Append another user input and get another response from ChatGPT
        conversation.AppendUserInput("China");
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine(response);


        // Wait for user input before closing the console window
        Console.ReadLine();
    }
}
```

And yes, it works:

![open ai c#](https://www.bytehide.com/blog/wp-content/uploads/2023/03/image-33.png)

Actually we can also modify it, to show the country:

```csharp
using System;
using System.Threading.Tasks;
using OpenAI_API;

class Program
{
    static async Task Main(string[] args)
    {
        // Create an instance of the APIAuthentication class with your API key
        var authentication = new APIAuthentication("YOUR_API_KEY");
        

        // Create an instance of the OpenAIAPI class with the APIAuthentication object
        var api = new OpenAIAPI(authentication);

        // Create a new conversation with ChatGPT
        var conversation = api.Chat.CreateConversation();

        // Append system message with instructions for the chat
        conversation.AppendSystemMessage("You are a geography teacher who knows how many habitants there are in each country. When the user tells you a country, you will only answer the number of habitants. Nothing else. You only answer with the number of habitants.");

        // Append user input and get response from ChatGPT
        var userInput = "Spain";
        conversation.AppendUserInput(userInput);
        var response = await conversation.GetResponseFromChatbot();
        Console.WriteLine($"{userInput}: {response}");

        // Append another user input and get another response from ChatGPT
        userInput = "France";
        conversation.AppendUserInput(userInput);
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine($"{userInput}: {response}");

        // Append another user input and get another response from ChatGPT
        userInput = "United States";
        conversation.AppendUserInput(userInput);
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine($"{userInput}: {response}");

        // Append another user input and get another response from ChatGPT
        userInput = "China";
        conversation.AppendUserInput(userInput);
        response = await conversation.GetResponseFromChatbot();
        Console.WriteLine($"{userInput}: {response}");

        // Wait for user input before closing the console window
        Console.ReadLine();
    }
}
```

Done! In this case you have rounded without using decimals.

![openai c#](https://www.bytehide.com/blog/wp-content/uploads/2023/03/image-34.png)

That could be corrected in the first promt if we wanted to do so.

## OpenAI docs

To make the most of Chat-GPT and the OpenAI API, it’s crucial to understand the different options and parameters available to you. The [OpenAI documentation](https://platform.openai.com/docs/introduction) provides a comprehensive guide to using the API effectively, covering topics such as **authentication**, available models, **rate limits**, and **best practices**.

By familiarizing yourself with the OpenAI docs, you can better tailor your API requests to your specific use case and optimize the performance and quality of the generated text.

## Conclusion

Incredible! With the ability to integrate Chat-GPT into a .NET application, the possibilities are truly limitless. From revolutionizing customer service to generating creative content, Chat-GPT is a game-changer in the world of technology.

Its advanced natural language processing capabilities can enable you to build chatbots that communicate in a more human-like manner, enhancing customer experience and satisfaction.

So why wait? Take the leap and start exploring the world of Chat-GPT in your .NET application today. The potential is awe-inspiring, and the results are bound to leave you speechless!