ChatGPT Completions In ASP.NET Core Web API

Introduction

There are two ways by which we can integrate ChatGPT in the ASP.NET Web API project. The first one is by using OpenAI API and the second one is by using the OpenAI library. In the second method, we do not need to use an API endpoint. Integrating ChatGPT completions into a C# application can provide users with an intuitive and natural language experience for generating text based on their input. In this article, we will discuss the steps to integrate OpenAI's ChatGPT completions into an ASP.NET Web API project.

Agenda for the Article

  1. What is ChatGPT
  2. What is Text Completion
  3. Generating API Key
  4. Implementing ChatGPT in ASP.NET Web API

What is ChatGPT

ChatGPT is a conversational AI model developed by OpenAI. It is a variant of the transformer-based language model GPT-3 (Generative Pretrained Transformer 3). It is trained on a large corpus of text data and is capable of generating human-like text responses to natural language queries. The model has been fine-tuned for text generation tasks, such as completing sentences, and paragraphs, and generating entire articles based on given prompts. ChatGPT is used in various applications, including chatbots, content generation, and text completion tools, to provide users with a natural language interface. The versatility of ChatGPT makes it a valuable tool for various applications, including chatbots, content generation, and text completion tools. By providing users with a natural language interface, ChatGPT enables seamless and intuitive communication between humans and technology. For example, a customer service chatbot powered by ChatGPT can provide quick and accurate responses to customer inquiries, reducing the need for human customer service representatives.

What is Text Completion

Text completion is a language processing task that involves generating the missing portion of a partially given text sequence. It is a type of text generation task where the model is given an incomplete text promptly and is asked to generate the missing text based on the context. For example, given the prompt "The weather is really nice today," a text completion model could generate the next few sentences, such as "I think I'll go for a walk in the park. The sun is shining and there's a light breeze." The goal of text completion is to generate text that is coherent and grammatically correct, and that continues the meaning and context of the original prompt. Text completion models use machine learning algorithms to learn patterns and relationships in text data, allowing them to generate new text that is consistent with the given prompt. The models can be trained on large text corpora and fine-tuned for specific tasks, such as generating conversation responses and completing sentences, paragraphs, or articles. Text completion is a valuable tool for various applications, including chatbots, content generation, and text editors with auto-complete functionality.

Generating API Key

To generate an OpenAI API key, follow these steps:

  1. Signup for an OpenAI account. Go to the OpenAI website and create a new account.
  2. Confirm your email address.
  3. Now, Log in to your account and navigate to the 'View API keys' section as given below
    Generating OpenAI API Key
  4. Now, click on 'Create new secret key'  as given below
    Generating OpenAI API Key

Store your API key in a secure location, as it will be required to access the OpenAPI completions. You can copy the key and save it for future use. OpenAI has usage and resource limitations for its API, so be sure to check its documentation here for details on usage and pricing.

ChatGPT in ASP.NET Core Web API

To implement ChatGPT follow the steps given below

  1. First, create an ASP.NET Core Web API project.
  2. Install the OpenAI NuGet package as given below
    InstallĀ OpenAIĀ NuGet package
  3. Now create a new controller file OpenAIController as given below
    OpenAIController
  4. Now add the following code in OpenAIController.cs file as given below
    [HttpPost]
    [Route("getanswer")]
    public IActionResult GetResult([FromBody] string prompt)
    {
        //your OpenAI API key
        string apiKey = "sk-N8NY6OlcxytzRRyhcJ0iT3BlbkXXXXXXXXXXXXXXXXXXXX";
        string answer = string.Empty;
        var openai = new OpenAIAPI(apiKey);
        CompletionRequest completion = new CompletionRequest();
        completion.Prompt = prompt;
        completion.Model = OpenAI_API.Model.DavinciText;
        completion.MaxTokens = 4000;
        var result = openai.Completions.CreateCompletionAsync(completion);
        if (result != null) 
        {
            foreach (var item in result.Result.Completions)
            {
                answer = item.Text;
            }
            return Ok(answer);
        }
        else
        {
            return BadRequest("Not found");
        }
    }

    In the above code, we have created an endpoint with getanswer. Variable apikey is holding the API key you have generated. Create an object of CompletionRequest. Here we need to define the Model type and MaxTokens. MaxToken will decide the length of the text so if you want a long answer then keep the MaxToken value large.

Output

Now we will run the endpoint in the postman and see the output.

ChatGPT in ASP.NET Core Web API

Output 2

ChatGPT in ASP.NET Core Web API

Conclusion

ChatGPT is a revolutionary conversational AI model that is transforming the way we interact with technology. Its ability to generate human-like text responses and its versatility make it a valuable tool for various applications, and its development is a testament to the progress made in the field of AI and natural language processing. To integrate ChatGPT in ASP.NET Core Web API first you need to generate the OpenAI API key and then use that API key in the code as given above.

Thank You and Stay Tuned for More

More Articles from my Account

Popular article on ChatGPT