How to use ChatGPT in C# application?

February 20 2023

Background


ChatGPT (Generative Pre-trained Transforer) is a large language model developed by OpenAI. It is designed to understand natural language input from users and generate appropriate responses using advanced algorithms and machine learning techniques. ChatGPT can be used in a variety of applications, including chatbots, virtual assistants, customer service, and more.
Here I will show you how you can integrate/call ChatGPT API using C# programming language in 5 steps in 5 minutes.


Step #1

Add OpenAI NuGet


In this step, adding the OpenAI NuGet package is crucial for connecting your C# application to ChatGPT. It's a simple yet essential part of integrating AI in .NET.
To integrate ChatGPT, the initial step involves installing the OpenAI C# SDK. This can be accomplished by executing the following command in the Package Manager Console using the NuGet package manager:

Customer class


Step #2

Get API key


In order to be able to call and authenticate to the OpenAI API, it is necessary to generate a unique API key.

To do this:

• Visit: https://platform.openai.com/account/api-keys
• Log in
• Create your API Key by clicking on "Create new secret key" button.

Customer class

Step #3

Instantiate OpenAI


After successfully installing the OpenAI C# SDK, the next step is to initialize it by providing your OpenAI API key. To accomplish this, create an instance of the OpenAI class and pass your API key as a parameter.

Customer class


Step #4

Call the API


In order to call the API and get a response to the prompt we set, it is necessary to call the CreateCompletionAsync() method, which accepts the following parameters:

1. prompt
A required string parameter that specifies the text prompt for which the API will generate a completion.

2. model
A required string parameter that specifies the name of the OpenAI model to use for generating the completion. In this case, it is used the text-davinci-003 model.

3. max_tokens
An optional integer parameter that controls the maximum number of tokens (words or symbols) in the generated completion. If set to a low number, the completion will be shorter and more concise. If set to a higher number, the completion will be longer and more detailed.

4. temperature
An optional floating point parameter - that controls the "creativity" or randomness of the generated completion. A higher temperature value will result in more diverse and unpredictable output, whereas a lower temperature value will result in more conservative and predictable output. In general, a temperature value between 0.5 and 1.0 tends to produce the most interesting and varied results, while a temperature value closer to 0 tends to be more predictable and safe.

Customer class

Step #5

Read and display result


Once the process of generating the completions has concluded, it is possible to exhibit them within your C# application.

Customer class

Congratulations! By following these straightforward steps, you now have the ability to seamlessly integrate ChatGPT into your C# code and generate text completions using the model. This was a light and short newsletter issue considering that I haven't commented on ChatGPT so far, so I wanted to do something practical.

Make a coffee and check out source code directly on my GitHub repository.

dream BIG!

Join 10,950+ subscribers to improve your .NET Knowledge.

There are 3 ways I can help you:

Design Patterns Simplified ebook

Go-to resource for understanding the core concepts of design patterns without the overwhelming complexity. In this concise and affordable ebook, I've distilled the essence of design patterns into an easy-to-digest format. It is a Beginner level. Check out it here.


Sponsorship

Promote yourself to 10,950+ subscribers by sponsoring this newsletter.


Join .NET Pro Weekly Newsletter

Every Monday morning, I share 1 actionable tip on C#, .NET & Arcitecture topic, that you can use right away.


Subscribe to
.NET Pro Weekly

Subscribe to the .NET Pro Weekly and be among the 10,950+ subscribers gaining practical tips and resources to enhance your .NET expertise.