使用 ChatGPT(简单)+ GitHub 存储库创建 C# 聊天机器人

在本指南中,我们将深入探讨使用 ChatGPT 和 C# 构建聊天机器人的过程。我们将涵盖从设置 ChatGPT API 访问到部署聊天机器人的所有内容。让我们开始吧!

最后你会发现 GitHub Repo

设置您的 ChatGPT API 访问权限

在我们开始构建我们的聊天机器人之前,我们需要设置对 ChatGPT API 的访问。

注册 OpenAI

如果您已有 OpenAI 帐户,请跳过此部分

要访问 ChatGPT API,您首先需要注册一个 OpenAI 帐户。按着这些次序:

  1. 访问 OpenAI 网站
  2. 填写所需信息并创建您的帐户。
  3. 创建帐户后,登录并导航至 API 部分。

获取 API 访问密钥

要在您的 C# 项目中使用 ChatGPT API,您需要一个 API 访问密钥。以下是获得方法:

1. 登录您的 OpenAI 帐户。

2. 转到“查看 API 密钥”部分。

3. 单击“Create API Key”并为其命名。

4. 复制 API 密钥,因为您稍后会需要它。

上面的 API Key 不要尝试使用它,它不起作用。

确保您的 API 密钥安全,因为它会授予您使用 ChatGPT API 的权限。

为您的 ChatGPT 聊天机器人创建 C# 项目

现在我们已经设置了 ChatGPT API 访问权限,是时候为我们的聊天机器人创建一个新的 C# 项目了。

设置一个新的 C# 项目

要创建新的 C# 项目,您可以使用 Visual Studio、Visual Studio Code 或任何其他支持 C# 的 IDE。按着这些次序:

  1. 打开您喜欢的 IDE 并创建一个新的 C# 项目。
  2. 选择“控制台应用程序”模板并为您的项目提供名称。
  3. 单击“创建”以生成项目。

安装必要的包

我们需要安装一些 NuGet 包来帮助我们与 ChatGPT API 进行交互:

  • RestSharp: 一个用于发出 HTTP 请求的库。
  • Newtonsoft.Json:用于处理 JSON 数据的库。

要安装这些包,请在 IDE 的包管理器控制台中运行以下命令:

<span style="color:#171717"><span style="background-color:#ffffff"><span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-text-color)">Install</span><span style="color:var(--syntax-text-color)">-</span><span style="color:var(--syntax-text-color)">Package</span> <span style="color:var(--syntax-text-color)">RestSharp</span>
<span style="color:var(--syntax-text-color)">Install</span><span style="color:var(--syntax-text-color)">-</span><span style="color:var(--syntax-text-color)">Package</span> <span style="color:var(--syntax-text-color)">Newtonsoft</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Json</span>
</code></span></span></span></span>

将 ChatGPT API 与您的 C# 项目集成

项目设置完成后,就可以集成 ChatGPT API 了。

创建 ChatGPT API 客户端

首先,让我们创建一个 C# 类来与 ChatGPT API 交互。我们称之为ChatGPTClient. 这是基本结构:

<span style="color:#171717"><span style="background-color:#ffffff"><span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-declaration-color)">using</span> <span style="color:var(--syntax-text-color)">System</span><span style="color:var(--syntax-text-color)">;</span>
<span style="color:var(--syntax-declaration-color)">using</span> <span style="color:var(--syntax-text-color)">RestSharp</span><span style="color:var(--syntax-text-color)">;</span>
<span style="color:var(--syntax-declaration-color)">using</span> <span style="color:var(--syntax-text-color)">Newtonsoft.Json</span><span style="color:var(--syntax-text-color)">;</span>

<span style="color:var(--syntax-declaration-color)">public</span> <span style="color:var(--syntax-declaration-color)">class</span> <span style="color:var(--syntax-name-color)">ChatGPTClient</span>
<span style="color:var(--syntax-text-color)">{</span>
    <span style="color:var(--syntax-declaration-color)">private</span> <span style="color:var(--syntax-declaration-color)">readonly</span> <span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">_apiKey</span><span style="color:var(--syntax-text-color)">;</span>
    <span style="color:var(--syntax-declaration-color)">private</span> <span style="color:var(--syntax-declaration-color)">readonly</span> <span style="color:var(--syntax-text-color)">RestClient</span> <span style="color:var(--syntax-text-color)">_client</span><span style="color:var(--syntax-text-color)">;</span>

    <span style="color:var(--syntax-comment-color)">// Constructor that takes the API key as a parameter</span>
    <span style="color:var(--syntax-declaration-color)">public</span> <span style="color:var(--syntax-name-color)">ChatGPTClient</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">apiKey</span><span style="color:var(--syntax-text-color)">)</span>
    <span style="color:var(--syntax-text-color)">{</span>
            <span style="color:var(--syntax-text-color)">_apiKey</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">apiKey</span><span style="color:var(--syntax-text-color)">;</span>
            <span style="color:var(--syntax-comment-color)">// Initialize the RestClient with the ChatGPT API endpoint</span>
            <span style="color:var(--syntax-text-color)">_client</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-declaration-color)">new</span> <span style="color:var(--syntax-name-color)">RestClient</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"https://api.openai.com/v1/engines/text-davinci-003/completions"</span><span style="color:var(--syntax-text-color)">);</span>
    <span style="color:var(--syntax-text-color)">}</span>

    <span style="color:var(--syntax-comment-color)">// We'll add methods here to interact with the API.</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>

在此类中,我们存储 API 密钥并创建一个RestClient指向 ChatGPT API 端点的实例。

现在让我们添加一个方法来向 API 发送消息:

<span style="color:#171717"><span style="background-color:#ffffff"><span style="color:var(--syntax-text-color)"><span style="color:var(--syntax-text-color)"><code><span style="color:var(--syntax-comment-color)">// Method to send a message to the ChatGPT API and return the response</span>
        <span style="color:var(--syntax-declaration-color)">public</span> <span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-name-color)">SendMessage</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">message</span><span style="color:var(--syntax-text-color)">)</span>
        <span style="color:var(--syntax-text-color)">{</span>
            <span style="color:var(--syntax-comment-color)">// Create a new POST request</span>
            <span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">request</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-declaration-color)">new</span> <span style="color:var(--syntax-name-color)">RestRequest</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">""</span><span style="color:var(--syntax-text-color)">,</span> <span style="color:var(--syntax-text-color)">Method</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Post</span><span style="color:var(--syntax-text-color)">);</span>
            <span style="color:var(--syntax-comment-color)">// Set the Content-Type header</span>
            <span style="color:var(--syntax-text-color)">request</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">AddHeader</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Content-Type"</span><span style="color:var(--syntax-text-color)">,</span> <span style="color:var(--syntax-string-color)">"application/json"</span><span style="color:var(--syntax-text-color)">);</span>
            <span style="color:var(--syntax-comment-color)">// Set the Authorization header with the API key</span>
            <span style="color:var(--syntax-text-color)">request</span><span style="color:var(--syntax-text-color)">.</span&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值