Java上的ChatGPT API:如何将AI添加到项目中

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

为什么Java开发者需要ChatGPT?或者如何停止恐惧并爱上神经网络

你好,同行!如果你在读这篇文章,那么你和我一样,已经厌倦了为技术支持编写千篇一律的回复、生成无聊的产品描述或手动分析评论。如果我告诉你,只需一个晚上,你就可以通过连接真正的人工智能,为你的Java应用程序注入活力呢?是的,我说的就是那个能够开玩笑、编写代码,甚至向猫解释勾股定理的ChatGPT。

在本文中,我们不会讨论概率论或学习Transformer模型。我们只需使用Java,添加一点HTTP请求,然后让GPT-4(如果预算紧张,也可以是3.5)为我们工作。听起来像魔法吗?实际上,这是纯粹的工程学。我们开始吧!



我们需要什么?最低限度的必备工具

在编写代码之前,请确保你拥有:

  • JDK 11或更高版本(我们将使用在11版本中引入的新HttpClient);
  • OpenAI API密钥——可以在OpenAI平台上获取。别忘了充值(只需几美元,用于测试就足够了);
  • 任何IDE——IntelliJ IDEA、Eclipse,如果你是硬核玩家,甚至可以使用记事本;
  • Maven或Gradle——用于方便地管理依赖(但我们会尽量少用)。

顺便说一句,如果你认为在Java中集成ChatGPT是一件复杂且需要机器学习的事情,那么我很高兴地告诉你:一切都可以通过一个简单的HTTP请求解决。运行时不需要任何神经网络,只需要REST API。



项目准备:Maven和依赖

创建一个新的Maven项目,并在pom.xml中添加一个库——Jackson,用于处理JSON。没有它可不行,因为ChatGPT只使用这种语言与世界交流。



<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.15.2</version></dependency>


就这样!不需要任何SDK,不需要任何封装——只有纯粹的Java和我们的聪明才智。如果你使用Gradle,只需添加implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'。



向OpenAI API发送请求的结构

在编写代码之前,让我们先了解一下服务器需要什么。ChatGPT API接收发送到端点https://api.openai.com/v1/chat/completions的POST请求。请求体是一个JSON,结构如下:



{  "model": "gpt-3.5-turbo",  "messages": [    {"role": "system", "content": "你是一个有用的助手。"},    {"role": "user", "content": "讲一个关于Java开发者的笑话。"}  ],  "temperature": 0.7}


我们来解释一下这些字段:

  • model——哪个模型来回答。为了节省成本,使用gpt-3.5-turbo,为了获得更好的回答,使用gpt-4;
  • messages——消息数组。系统消息设定基调,而user是我们的请求;
  • temperature——从0到2。值越高,回答越有创意(同时神经网络产生幻觉的可能性也越大)。



响应也以JSON格式返回,我们感兴趣的是choices[0].message.content字段。那里隐藏着我们将要展示给用户的文本。



编写代码:用于ChatGPT的Java客户端

创建一个名为ChatGPTClient的类。它将负责发送请求和处理响应。所有代码都在一个文件中,以避免创建过多的实体。



import java.net.URI;import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpRes                

博客

书籍推荐