How to Implement a Simple Chatbot Using ChatGPT in a C# WinForms Application?
Here's a step-by-step guide to create a basic chatbot using ChatGPT in a C# WinForms application:
Set Up the Project:
- Create a new C# WinForms App in Visual Studio.
- Install
System.Net.Http
andNewtonsoft.Json
via NuGet Package Manager.
Design the Form:
- Add a
TextBox
for user input (txtUserInput
). - Add a
Button
to send the message (btnSend
). - Add a
TextBox
for displaying the chat conversation (txtChat
), set itsMultiline
property toTrue
.
- Add a
Code Example:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Newtonsoft.Json;
namespace ChatGPTWinForms
{
public partial class Form1 : Form
{
private static readonly string apiKey = "YOUR_API_KEY_HERE";
private static readonly string endpoint = "https://api.openai.com/v1/completions";
public Form1()
{
InitializeComponent();
}
private async void btnSend_Click(object sender, EventArgs e)
{
string userInput = txtUserInput.Text;
string response = await GetChatGPTResponse(userInput);
txtChat.AppendText($"You: {userInput}\nChatGPT: {response}\n\n");
txtUserInput.Clear();
}
private async Task<string> GetChatGPTResponse(string prompt)
{
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var requestBody = new
{
model = "text-davinci-003",
prompt = prompt,
max_tokens = 150
};
var content = new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json");
try
{
var response = await httpClient.PostAsync(endpoint, content);
if (!response.IsSuccessStatusCode)
{
var errorResponse = await response.Content.ReadAsStringAsync();
throw new Exception($"API call failed with status code: {response.StatusCode}. Response: {errorResponse}");
}
var responseBody = await response.Content.ReadAsStringAsync();
dynamic result = JsonConvert.DeserializeObject(responseBody);
return result.choices[0].text;
}
catch (HttpRequestException e)
{
return $"Request error: {e.Message}";
}
catch (Exception e)
{
return $"General error: {e.Message}";
}
}
}
}
}
This example creates a simple WinForms chatbot application where users can input text, send it to ChatGPT, and display the response.
Comments
Post a Comment