65.9K
CodeProject 正在变化。 阅读更多。
Home

在 C# 中集成 ChatGPT API

starIconstarIconstarIconemptyStarIconemptyStarIcon

3.00/5 (5投票s)

2023年4月2日

CPOL

2分钟阅读

viewsIcon

29538

在 C# 中集成 ChatGPT-3.5 Turbo API:综合指南

引言

本文演示了如何在 C# 中集成 ChatGPT-3.5 Turbo API。它解决了在 C# 应用程序中实现强大的 AI 语言模型的问题,为聊天机器人、内容生成等打开了可能性。代码片段对于希望在其 C# 项目中使用 ChatGPT-3.5 Turbo API 的开发人员非常有用。

背景

ChatGPT-3.5 Turbo 是 OpenAI 开发的先进语言模型。它可以理解和生成类似人类的文本,使其成为各种应用程序(如聊天机器人、内容创作等)中非常有价值的工具。

Using the Code

Install-Package Betalgo.OpenAI.GPT3

首先,声明您的 OpenAI API 密钥。将占位符替换为您的实际 API 密钥。

var apiKey = "Your OpenAi Key here";

创建 OpenAIService 类的实例,并传入您的 API 密钥。

var gpt3 = new OpenAIService(new OpenAiOptions()
{
    ApiKey = apiKey
});

创建一个包含输入消息、模型和其他参数的聊天完成请求。

var completionResult = await gpt3.ChatCompletion.CreateCompletion
                       (new ChatCompletionCreateRequest()
{
    Messages = new List<ChatMessage>(new ChatMessage[] 
    { new ChatMessage("user", "how to learn c# in 24 hours") }),
    Model = Models.ChatGpt3_5Turbo,
    Temperature = 0.5F,
    MaxTokens = 100,
    N = 3
});

在此示例中,我们将用户的提示设置为“如何在 24 小时内学习 C#”。我们使用 ChatGpt3_5Turbo 模型进行请求。Temperature 设置为 0.5,影响输出的随机性。MaxTokens 参数设置为 100,将响应限制为最多 100 个 token。最后,N 参数设置为 3,这意味着我们将收到三个不同的响应。

获得完成结果后,检查它是否成功并相应地处理响应。

if (completionResult.Successful)
{
    foreach (var choice in completionResult.Choices)
    {
        Console.WriteLine(choice.Message.Content);
    }
}
else
{
    if (completionResult.Error == null)
    {
        throw new Exception("Unknown Error");
    }
    Console.WriteLine($"{completionResult.Error.Code}: 
                        {completionResult.Error.Message}");
}

在此代码块中,我们首先检查请求是否成功。如果成功,我们将循环遍历选项并打印每个响应。如果请求不成功,我们将打印错误消息。如果没有错误信息,我们将抛出一个带有消息“未知错误”的异常。

这是完整的代码片段

// Declare the API key
var apiKey = "your-api-key-here";

// Create an instance of the OpenAIService class
var gpt3 = new OpenAIService(new OpenAiOptions()
{
    ApiKey = apiKey
});

// Create a chat completion request
var completionResult = await gpt3.ChatCompletion.CreateCompletion
                       (new ChatCompletionCreateRequest()
{
    Messages = new List<ChatMessage>(new ChatMessage[] 
               { new ChatMessage("user", "how to learn c# in 24 hours") }),
    Model = Models.ChatGpt3_5Turbo,
    Temperature = 0.5F,
    MaxTokens = 100,
    N = 3
});

// Check if the completion result was successful and handle the response
if (completionResult.Successful)
{
    foreach (var choice in completionResult.Choices)
    {
        Console.WriteLine(choice.Message.Content);
    }
}
else
{
    if (completionResult.Error == null)
    {
        throw new Exception("Unknown Error");
    }
    Console.WriteLine($"{completionResult.Error.Code}: 
                        {completionResult.Error.Message}");
}

// Keep the console window open
Console.ReadLine();

这是来自 OpenAI API 的响应。

关注点

在编写代码时,我们了解到将 ChatGPT-3.5 Turbo API 集成到 C# 应用程序是多么容易。通过利用 Betalgo.OpenAI.GPT3,开发人员可以快速设置 API 并开始接收各种应用程序的智能响应。API 及其参数的灵活性允许进行自定义,使其成为各种项目的非常有用的工具。

历史

  • 2023 年 4 月 2 日:初始版本
© . All rights reserved.