使用Spring Boot创建自己的ChatGPT应用程序

使用Spring Boot创建ChatGPT应用程序

在这篇博客中,我将尝试解释如何与OpenAI chat completion API集成,以便使用它们并创建自己的ChatGPT版本。这将利用经典的Spring Boot应用程序与核心Java和OpenAI chat completion API。

我们将公开一个REST端点,该端点将以requestParam的形式接收来自最终用户的查询,处理该查询,并以人类可读的文本格式返回响应。

让我们按照以下步骤进行:

先决条件

我们将在应用中使用OpenAI ChatGPT completion API。

该API的各个重要参数如下所述:

model: 我们将向”gpt-3.5-turbo”发送请求

什么是GPT-3.5-Turbo?

GPT-3.5 Turbo是一个功能强大的基于人工智能的语言模型。它可以理解并生成基于提示的类似人类的文本,使其成为各种应用程序的有价值的工具。您可以与模型进行交流,并以对话方式接收详细的回复。

Messages: 这表示实际发送到模型的请求,以便模型可以解析该消息并生成相应的人类可读格式的响应。

这进一步包含几个子属性:

role: 指定消息的发送者(请求为’user’,响应为’assistant’)。

content: 这是实际的消息

消息DTO可能如下所示:

废话不多说,让我们开始与我们的Spring Boot应用集成。

创建一个基本的Spring Boot应用程序。为此,请转到start.spring.io并使用以下选择:我们只需要Spring Web依赖项:

Controller层创建一个包,并放入以下代码:

让我们创建ChatRequest类:

在这里,我们使用以下属性,我们将其放入application.properties中:

重要提示:有关OpenAI API密钥的说明:

OpenAI允许您生成一个唯一的API密钥来使用OpenAI API。为此,请单击此处。在这里,您需要注册并创建您的API密钥(这是一个非常简单的步骤,如下面的快照所示)。确保您保持其安全,并且不要让其泄露,例如将其硬编码在您的代码库中。

单击“创建新的秘密密钥”并按照屏幕上的步骤进行操作。现在您有自己的OpenAI API密钥。

接下来,我们使用RestTemplate来调用OpenAI API URL。因此,让我们添加一个拦截器,如下所示:

拦截器拦截请求并将OpenAI API密钥添加到请求头中。

就这样!现在我们只需使用主类运行应用程序,并开始调用API。

测试

转到Postman(或您喜欢的浏览器,即chrome :P)并访问以下URL。将您想要询问模型的查询传递给它。您会惊讶地看到其响应的正确性。(确保将查询作为请求参数传递)。

示例#1

http://localhost:8080/chat?prompt=what are some good Spring Boot libraries

示例#2

该模型GPT 3.5 Turbo已经足够先进,可以显示高度逼真的响应。(感谢数十亿行的文本,模型已经进行了训练)。

注意:实际调用OpenAI API的curl命令可能如下所示:

注意事项

在开发应用程序时,可能会遇到以下常见问题。如果遇到此类情况,请阅读并尝试以下解决方案:

  1. 确保创建无参构造函数,并为以下内容提供getter和setter:

  2. OpenAI提供了基本的配额。由于当前电子邮件ID的配额已用尽,因此您使用了一个新的电子邮件ID。

  3. 请稍后再试调用API。(出于安全原因,30分钟是一个良好的工作窗口)。

结论

在这篇简短的文章中,我们了解了来自OpenAI的GPT 3.5 Turbo模型。它的重要参数和聊天完成API。我们还看到了OpenAI API密钥在按照速率限制的顺序使用API时的重要性,以及如何为个人使用生成API密钥。

然后,我们还看到了将我们的经典Spring Boot应用与OpenAI聊天完成API集成是多么简单,实际调用了终端点并验证了响应。

注意事项

OpenAI的API是一种受限制的资源。我们对API的调用次数有限制,您可以在此处跟踪。