使用 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><span style="color:var(--syntax-name-color)">AddHeader</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Authorization"</span><span style="color:var(--syntax-text-color)">,</span> <span style="color:var(--syntax-string-color)">$"Bearer </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-string-color)">"</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Create the request body with the message and other parameters</span><span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">requestBody</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-declaration-color)">new</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-text-color)">prompt</span> <span style="color:var(--syntax-text-color)">=</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)">max_tokens</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-literal-color)">100</span><span style="color:var(--syntax-text-color)">,</span><span style="color:var(--syntax-text-color)">n</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-literal-color)">1</span><span style="color:var(--syntax-text-color)">,</span><span style="color:var(--syntax-text-color)">stop</span> <span style="color:var(--syntax-text-color)">=</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)">?)</span><span style="color:var(--syntax-declaration-color)">null</span><span style="color:var(--syntax-text-color)">,</span><span style="color:var(--syntax-text-color)">temperature</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-literal-color)">0.7</span><span style="color:var(--syntax-text-color)">,</span><span style="color:var(--syntax-text-color)">};</span><span style="color:var(--syntax-comment-color)">// Add the JSON body to the request</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)">AddJsonBody</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">JsonConvert</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">SerializeObject</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">requestBody</span><span style="color:var(--syntax-text-color)">));</span><span style="color:var(--syntax-comment-color)">// Execute the request and receive the response</span><span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">response</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">_client</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Execute</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">request</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Deserialize the response JSON content</span><span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">jsonResponse</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">JsonConvert</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">DeserializeObject</span><span style="color:var(--syntax-text-color)"><</span><span style="color:var(--syntax-declaration-color)">dynamic</span><span style="color:var(--syntax-text-color)">>(</span><span style="color:var(--syntax-text-color)">response</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Content</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Extract and return the chatbot's response text</span><span style="color:var(--syntax-declaration-color)">return</span> <span style="color:var(--syntax-text-color)">jsonResponse</span><span style="color:var(--syntax-text-color)">?.</span><span style="color:var(--syntax-text-color)">choices</span><span style="color:var(--syntax-text-color)">[</span><span style="color:var(--syntax-literal-color)">0</span><span style="color:var(--syntax-text-color)">]?.</span><span style="color:var(--syntax-text-color)">text</span><span style="color:var(--syntax-text-color)">?.</span><span style="color:var(--syntax-name-color)">ToString</span><span style="color:var(--syntax-text-color)">()?.</span><span style="color:var(--syntax-name-color)">Trim</span><span style="color:var(--syntax-text-color)">()</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>

此方法将消息作为输入,使用适当的标头和 JSON 正文创建对 ChatGPT API 的 POST 请求,并从 API 返回响应。

实施聊天机器人逻辑

有了我们ChatGPTClient,让我们在我们的类中实现聊天机器人逻辑Program

<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)">class</span> <span style="color:var(--syntax-name-color)">Program</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-declaration-color)">static</span> <span style="color:var(--syntax-declaration-color)">void</span> <span style="color:var(--syntax-name-color)">Main</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)">[]</span> <span style="color:var(--syntax-text-color)">args</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// Replace with your ChatGPT API key</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-string-color)">"your_api_key_here"</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Create a ChatGPTClient instance with the API key</span><span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">chatGPTClient</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)">ChatGPTClient</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)">// Display a welcome message</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Welcome to the ChatGPT chatbot! Type 'exit' to quit."</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Enter a loop to take user input and display chatbot responses</span><span style="color:var(--syntax-declaration-color)">while</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-declaration-color)">true</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// Prompt the user for input</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Green</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to green</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"You: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">input</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ReadLine</span><span style="color:var(--syntax-text-color)">()</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Exit the loop if the user types "exit"</span><span style="color:var(--syntax-declaration-color)">if</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ToLower</span><span style="color:var(--syntax-text-color)">()</span> <span style="color:var(--syntax-text-color)">==</span> <span style="color:var(--syntax-string-color)">"exit"</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-declaration-color)">break</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Send the user's input to the ChatGPT API and receive a response</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">response</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">chatGPTClient</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">SendMessage</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Display the chatbot's response</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Blue</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to blue</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Chatbot: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">response</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>

在这里,我们创建了一个ChatGPTClient使用 API 密钥的实例,然后进入一个循环,该循环接受用户输入,将其发送到 ChatGPT API,并打印聊天机器人的响应。

测试和增强您的 ChatGPT 聊天机器人

现在我们已经实现了聊天机器人,让我们测试并增强它。

测试你的聊天机器人

要测试您的聊天机器人,只需运行您的 C# 项目。您应该会看到一个控制台窗口,您可以在其中键入消息并接收来自 ChatGPT 聊天机器人的响应。

处理错误和边缘情况

处理聊天机器人中的错误和边缘情况非常重要。例如,您可以检查空输入、为 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-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)">// Check for empty input</span><span style="color:var(--syntax-declaration-color)">if</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)">.</span><span style="color:var(--syntax-name-color)">IsNullOrWhiteSpace</span><span style="color:var(--syntax-text-color)">(</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-declaration-color)">return</span> <span style="color:var(--syntax-string-color)">"Sorry, I didn't receive any input. Please try again!"</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-declaration-color)">try</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// The rest of the SendMessage method implementation...</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-declaration-color)">catch</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">Exception</span> <span style="color:var(--syntax-text-color)">ex</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// Handle any exceptions that may occur during the API request</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">$"Error: </span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-text-color)">ex</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Message</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-declaration-color)">return</span> <span style="color:var(--syntax-string-color)">"Sorry, there was an error processing your request. Please try again later."</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-text-color)">}</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>

改善用户体验

考虑以下技巧来增强聊天机器人的可用性:

  • 添加帮助命令以提供有关使用聊天机器人的指导。
<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)">// Enter a loop to take user input and display chatbot responses</span>
<span style="color:var(--syntax-declaration-color)">while</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-declaration-color)">true</span><span style="color:var(--syntax-text-color)">)</span>
<span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// Prompt the user for input</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Green</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to green</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"You: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">input</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ReadLine</span><span style="color:var(--syntax-text-color)">()</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Exit the loop if the user types "exit"</span><span style="color:var(--syntax-declaration-color)">if</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ToLower</span><span style="color:var(--syntax-text-color)">()</span> <span style="color:var(--syntax-text-color)">==</span> <span style="color:var(--syntax-string-color)">"exit"</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-declaration-color)">break</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Display help message if the user types "help"</span><span style="color:var(--syntax-declaration-color)">if</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ToLower</span><span style="color:var(--syntax-text-color)">()</span> <span style="color:var(--syntax-text-color)">==</span> <span style="color:var(--syntax-string-color)">"help"</span><span style="color:var(--syntax-text-color)">)</span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Chatbot commands:"</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"- Type your message to chat with the bot."</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"- Type 'exit' to quit the chat."</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-declaration-color)">continue</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-comment-color)">// Send the user's input to the ChatGPT API and receive a response</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">response</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">chatGPTClient</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">SendMessage</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Display the chatbot's response</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Blue</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to blue</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Chatbot: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">response</span><span style="color:var(--syntax-text-color)">);</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>
  • 通过维护消息之间的上下文来实现更自然的对话流。
<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)">private</span> <span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">_conversationHistory</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)">.</span><span style="color:var(--syntax-text-color)">Empty</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)">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)">// Check for empty input</span><span style="color:var(--syntax-declaration-color)">if</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)">.</span><span style="color:var(--syntax-name-color)">IsNullOrWhiteSpace</span><span style="color:var(--syntax-text-color)">(</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-declaration-color)">return</span> <span style="color:var(--syntax-string-color)">"Sorry, I didn't receive any input. Please try again!"</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-comment-color)">// Update the conversation history with the user's message</span><span style="color:var(--syntax-text-color)">_conversationHistory</span> <span style="color:var(--syntax-text-color)">+=</span> <span style="color:var(--syntax-string-color)">$"User: </span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-text-color)">message</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-string-color)">\n"</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// ... (the rest of the SendMessage method remains unchanged)</span><span style="color:var(--syntax-comment-color)">// Deserialize the response JSON content</span><span style="color:var(--syntax-declaration-color)">var</span> <span style="color:var(--syntax-text-color)">jsonResponse</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">JsonConvert</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">DeserializeObject</span><span style="color:var(--syntax-text-color)"><</span><span style="color:var(--syntax-declaration-color)">dynamic</span><span style="color:var(--syntax-text-color)">>(</span><span style="color:var(--syntax-text-color)">response</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Content</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Extract and return the chatbot's response text</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">chatbotResponse</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">jsonResponse</span><span style="color:var(--syntax-text-color)">?.</span><span style="color:var(--syntax-text-color)">choices</span><span style="color:var(--syntax-text-color)">[</span><span style="color:var(--syntax-literal-color)">0</span><span style="color:var(--syntax-text-color)">]?.</span><span style="color:var(--syntax-text-color)">text</span><span style="color:var(--syntax-text-color)">?.</span><span style="color:var(--syntax-name-color)">ToString</span><span style="color:var(--syntax-text-color)">()?.</span><span style="color:var(--syntax-name-color)">Trim</span><span style="color:var(--syntax-text-color)">()</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// Update the conversation history with the chatbot's response</span><span style="color:var(--syntax-text-color)">_conversationHistory</span> <span style="color:var(--syntax-text-color)">+=</span> <span style="color:var(--syntax-string-color)">$"Chatbot: </span><span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-text-color)">chatbotResponse</span><span style="color:var(--syntax-text-color)">}</span><span style="color:var(--syntax-string-color)">\n"</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-declaration-color)">return</span> <span style="color:var(--syntax-text-color)">chatbotResponse</span><span style="color:var(--syntax-text-color)">;</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>
  • 使用更丰富的格式或用户界面元素来提高可读性。
<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)">// Enter a loop to take user input and display chatbot responses</span>
<span style="color:var(--syntax-declaration-color)">while</span> <span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-declaration-color)">true</span><span style="color:var(--syntax-text-color)">)</span>
<span style="color:var(--syntax-text-color)">{</span><span style="color:var(--syntax-comment-color)">// Prompt the user for input</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Green</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to green</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"You: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">input</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ReadLine</span><span style="color:var(--syntax-text-color)">()</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)">.</span><span style="color:var(--syntax-text-color)">Empty</span><span style="color:var(--syntax-text-color)">;</span><span style="color:var(--syntax-comment-color)">// ... (handle 'exit' and 'help' commands as before)</span><span style="color:var(--syntax-comment-color)">// Send the user's input to the ChatGPT API and receive a response</span><span style="color:var(--syntax-declaration-color)">string</span> <span style="color:var(--syntax-text-color)">response</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">chatGPTClient</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">SendMessage</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">input</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Display the chatbot's response</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">ForegroundColor</span> <span style="color:var(--syntax-text-color)">=</span> <span style="color:var(--syntax-text-color)">ConsoleColor</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-text-color)">Blue</span><span style="color:var(--syntax-text-color)">;</span> <span style="color:var(--syntax-comment-color)">// Set text color to blue</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">Write</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-string-color)">"Chatbot: "</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">ResetColor</span><span style="color:var(--syntax-text-color)">();</span> <span style="color:var(--syntax-comment-color)">// Reset text color to default</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">(</span><span style="color:var(--syntax-text-color)">response</span><span style="color:var(--syntax-text-color)">);</span><span style="color:var(--syntax-comment-color)">// Add a separator and some line breaks</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">();</span><span style="color:var(--syntax-text-color)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</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)">Console</span><span style="color:var(--syntax-text-color)">.</span><span style="color:var(--syntax-name-color)">WriteLine</span><span style="color:var(--syntax-text-color)">();</span>
<span style="color:var(--syntax-text-color)">}</span>
</code></span></span></span></span>

部署您的 ChatGPT 聊天机器人

一旦您对聊天机器人感到满意,就可以部署它了。

部署选项

有多种方法可以部署 C# 聊天机器人,例如:

  1. Web 应用程序:使用 ASP.NET Core 创建一个 Web 应用程序并将聊天机器人嵌入其中。这可以通过为聊天机器人交互创建 API 端点并使用 JavaScript处理用户输入并在浏览器中显示聊天机器人响应来完成。示例项目结构:
  • ChatGPTWebApp: 主 ASP.NET Core 项目
  • ChatGPTWebApp/Controllers:包含用于聊天机器人交互的 API 控制器
  • ChatGPTWebApp/wwwroot: 包含前端的 HTML、CSS 和 JavaScript 文件
  • ChatGPTClient: 现有的 ChatGPT 客户端类
  1. 消息平台:将聊天机器人集成到 Slack 或 Microsoft Teams 等消息平台中。这涉及在所需平台上创建机器人应用程序、配置必要的身份验证和事件处理,以及将 ChatGPT API 连接到机器人的消息处理逻辑。

Slack 机器人的示例项目结构:

  • ChatGPTSlackBot: 主要机器人项目
  • ChatGPTSlackBot/Controllers:包含用于处理 Slack 事件的 API 控制器
  • ChatGPTSlackBot/Services:包含用于处理 Slack API 交互的服务
  • ChatGPTClient:现有的 ChatGPT 客户端类 您需要遵循平台的文档来创建和配置您的机器人,例如Slack 的 API 文档。
  1. 桌面应用程序:使用 WPF 或 WinForms 开发桌面应用程序。这涉及为聊天机器人创建图形用户界面 (GUI)、处理用户输入和显示聊天机器人响应。WPF 应用程序的示例项目结构:
  • ChatGPTWPFApp: 主 WPF 项目
  • ChatGPTWPFApp/Views:包含 GUI 的 XAML 文件
  • ChatGPTWPFApp/ViewModels: 包含用于数据绑定的 ViewModel 类
  • ChatGPTClient: 现有的 ChatGPT 客户端类

选择最适合您的需求和目标受众的部署选项。

将聊天机器人集成到您现有的应用程序中

如果您已有 C# 应用程序,则可以通过添加类ChatGPTClient并调整用户界面以适应聊天机器人交互来集成 ChatGPT 聊天机器人。

例如,如果您有一个现有的 WPF 应用程序,您可以按照以下步骤操作:

  1. 将类添加ChatGPTClient到您的项目中。
  2. 为聊天机器人界面创建一个新的 UserControl。这可能包括用于用户输入的 TextBox、用于发送消息的 Button 以及用于显示对话的 ListBox 或 ScrollView。
  3. 在您的 ViewModel 中实施必要的数据绑定和事件处理,以将用户输入发送到 ChatGPT API 并显示聊天机器人的响应。
  4. 将聊天机器人 UserControl 添加到您的主应用程序窗口或导航结构。

请记住根据现有应用程序的特定框架或架构调整这些步骤。

结论和未来的可能性

恭喜!您已使用 C# 构建了 ChatGPT 聊天机器人。我们介绍了设置 ChatGPT API 访问、创建 C# 项目、集成 API、测试、增强和部署聊天机器人。

有许多方法可以扩展和改进您的聊天机器人,例如添加更多功能、改进对话流或与其他 API 集成。可能性是无止境。编码愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达提示工程实战演练 - 提示原则及其相关策略

ChatGPT爆火之后&#xff0c;与大语言模型对话能力&#xff08;prompt engineering&#xff1a;提示工程&#xff09;成为一项稀缺技能&#xff0c;现在招聘市场专业的prompt工程师年薪达到几十万甚至百万。基于此&#xff0c;吴恩达&#xff08;前百度首席科学家&#xff0c;谷…

2022年AI顶级论文 —生成模型之年(上)

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 过去十年来&#xff0c;人工智能技术在持续提高和飞速发展&#xff0c;并不断冲击着人类的认知。 2012年&#xff0c;在ImageNet图像识别挑战赛中&#xff0c;一种神经网络模型&#xff08;AlexNet&…

无人机下的目标检测研究(附论文下载)

关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c;扫码在主页获取加入方式 论文信息&#xff1a;冷佳旭&#xff0c;莫梦竟成&#xff0c;周应华&#xff0c;叶永明&#xff0c;高陈强&#xff0c;高新波*. 无人机视角下的目标…

【论文阅读】Segment Anything(SAM)——可分割一切的CV大模型

【前言】随着ChatGPT席卷自然语言处理&#xff0c;Facebook凭借着Segment Anything在CV圈也算扳回一城。迄今为止&#xff0c;github的star已经超过3万&#xff0c;火的可谓一塌糊涂。作为AI菜鸟&#xff0c;可不得自己爬到巨人肩膀上瞅一瞅~ 论文地址&#xff1a;https://arxi…

文心一言App在苹果AppStore上架;首款搭载ChatGPT的自行车问世;QQ Windows全新上架|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

马斯克每周“硬核”工作 120 小时,网友:“只要醒着都在工作?”

整理 | 朱珂欣 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 众所周知&#xff0c;自从埃隆马斯克&#xff08;Elon Musk&#xff09;去年收购 Twitter 起&#xff0c;可谓是坐拥“热搜体质”&#xff1a;接管 Twitter 一周后的“灭霸式”裁员、与工程师在 T…

华为盘古3.0大模型的访问入口在哪里?

体验入口&#xff1a;盘古NLP大模型_LLM_大语言模型_华为云 (huaweicloud.com) 网盘链接&#xff1a;https://pan.baidu.com/s/1TsZ78aMcbYXEY9IMXW7QDQ?pwdpn1t 提取码&#xff1a;pn1t 终于&#xff0c;华为的大模型动向来了&#xff01; 盘古大模型3.0&#xff0c;今…

ChatGPT实战:如何规划自己的职业生涯?

ChatGPT的出现&#xff0c;不仅改变了人们对人工智能技术的认识&#xff0c;也对经济社会发展产生了深远的影响。那么&#xff0c;在ChatGPT时代&#xff0c;人们应该如何规划自己的职业呢&#xff1f; 职业规划是一个有意义且重要的过程&#xff0c;它可以帮助你在职业生涯中…

基于ChatGPT和私有知识库搭建Quivr项目

准备工作 安装docker和docker-compose申请supabase账号 拉取Quivr代码 git clone https://github.com/StanGirard/Quivr.git 复制.XXXXX_env文件 cp .backend_env.example backend/.env cp .frontend_env.example frontend/.env 更新backend/.env和frontend/.env文件 ba…

图像标注工具CVAT

图像标注工具CVAT 简介创建账户教程 简介 CVAT支持多用户在线协同。 OpenCV团队正在使用该工具来标注不同属性的数百万个对象&#xff0c;特有的功能: (1)关键帧之间的边界框插值 (2)自动标注&#xff08;使用TensorFlow OD API 和 Intel OpenVINO IR格式的深度学习模型&#…

无需人工标注,自生成指令框架打破ChatGPT等LLM的成本瓶颈

来源&#xff1a;机器之心 当前&#xff0c;大型语言模型的性能已经达到了很高的水平&#xff0c;除了进一步挖掘其潜力&#xff0c;我们还应该关注到模型背后的人工标注成本。 ChatGPT 是今年年底 AI 圈的新晋顶流&#xff0c;人们惊叹于它强大的问答语言能力和掌握的编程知识…

NLP之情感分析:基于python实现中文文本情感分析

NLP之情感分析&#xff1a;基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分) 输出结果 1、测试对象 data1 今天上海的天气真好&#xff01;我的心情非常高兴&#xff01;如果去旅游的话我会非常兴奋&#xff01;和你一起去旅游我会更加幸福&#xff01; data2 …

详细介绍NLP对话系统

任务型对话系统 任务型对话系统主要应用于固定领域。任务型对话的广泛应用的方法有两种&#xff0c;一种是模块法&#xff0c;另一种是端到端的方法。 模块法是将对话响应视为模块&#xff0c;每个模块负责特定的任务&#xff0c;并将处理结果传送给下一个模块。 端到端的任务…

python实现中文情感分析与可视化

目录 一、导入原始数据 二、结巴分词/绘制词云图 三、计算情感值&#xff0c;情感分析 # 方法一、SnowNLP计算情感得分 # 方法二、使用字典计算情感得分 四、# 数据可视化展示 五、绘制相关系数热力图 一、导入原始数据 #导入模块 import pandas as pd import numpy as np …

《PlumGPT:让你的聊天更智能,更有趣》

《PlumGPT&#xff1a;让你的聊天更智能&#xff0c;更有趣&#xff01;》 文章目录 《PlumGPT&#xff1a;让你的聊天更智能&#xff0c;更有趣&#xff01;》前言一、入口地址二、开始注册三、开始验证四、进入首页五、功能点介绍1.Light mode2.Help3.My account4.Log out 六…

【句子互动转载】1. 对话系统趋势分析

作者&#xff1a;李佳芮_chatbot 链接&#xff1a;https://www.jianshu.com/p/89d621c9cffe 来源&#xff1a;简书 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 本章我会带领大家了解对话系统的趋势&#xff0c;以及为什么我们要搭建一个…

【四】情感对话 Improving Multi-turn Emotional Support Dialogue Generation with Lookahead Strategy Planning

【四】情感支撑对话论文最近进展 Emotion Support Conversation 今天给大家分享一篇在EMNLP 2022的关于情感对话的论文。主要思想是从策略安排的角度来有效地提供情感支撑&#xff0c;并且通过理解用户的状态达到更好的生成效果。 相关情感支撑论文综述整理指路 -> 点这里…

【一】情感对话 Towards Emotional Support Dialog Systems 论文阅读

【一】情感支撑对话论文最近进展 Emotion Support Conversation 今天给大家介绍一下Towards Emotional Support Dialog Systems这篇由黄老师团队发表在2021 ACL的数据集。 相关论文综述整理指路 -> 点这里 主要分成以下几个部分进行介绍&#xff1a; 研究背景实例介绍ES…

ChatGPT接口返回代码高亮显示的实现逻辑

官方API&#xff1a;POST https://api.openai.com/v1/chat/completions 我们在使用openai提供的接口时&#xff0c;返回的数据如果包含代码&#xff0c;会发现代码是没有样式的&#xff0c;它们一般是用包含的一段文本。 如图&#xff1a; 怎么样才能做到和官方一样的美观呢&…

还在crud?快来学习架构设计啦---微服务下的依赖管理(maven篇)

文章目录 一、前言二、实战2.1 创建父工程统一依赖的版本管理2.2 创建公共使用的 common工程2.3 创建子工程并引入父工程的依赖以及公共工程2.4 搭建启动环境2.5 启动程序开始验证 三、总结 一、前言 2023年口罩放开的第一年&#xff0c;大多数人都是想着重新开始&#xff0c;…