使用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命令可能如下所示:
注意事项
在开发应用程序时,可能会遇到以下常见问题。如果遇到此类情况,请阅读并尝试以下解决方案:
-
确保创建无参构造函数,并为以下内容提供getter和setter:
-
OpenAI提供了基本的配额。由于当前电子邮件ID的配额已用尽,因此您使用了一个新的电子邮件ID。
-
请稍后再试调用API。(出于安全原因,30分钟是一个良好的工作窗口)。
结论
在这篇简短的文章中,我们了解了来自OpenAI的GPT 3.5 Turbo模型。它的重要参数和聊天完成API。我们还看到了OpenAI API密钥在按照速率限制的顺序使用API时的重要性,以及如何为个人使用生成API密钥。
然后,我们还看到了将我们的经典Spring Boot应用与OpenAI聊天完成API集成是多么简单,实际调用了终端点并验证了响应。
注意事项
OpenAI的API是一种受限制的资源。我们对API的调用次数有限制,您可以在此处跟踪。