说明
Java调用OpenAI接口,Java调用实现ChatGPT聊天,OpenAIAPI是一个自己封装的OpenAI GPT-3聊天API的Java工具类,可用于通过Java代码调用GPT-3模型进行自然语言交互,实现智能聊天等功能。
通过调用GPT-3模型,输入一段文本,返回机器人对话回复的文本。
附项目代码:在本文最后面
OpenAI3.5模型版本使用
工具类
使用了Lombok以及hutool依赖
以下是自己封装的工具类,只需写一下自己的api就可以使用了哦
import cn.hutool.core.convert.ConvertException;import cn.hutool.http.HttpException;import cn.hutool.http.HttpRequest;import cn.hutool.json.JSONArray;import cn.hutool.json.JSONObject;import cn.hutool.json.JSONUtil;import lombok.experimental.UtilityClass;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;@UtilityClasspublic class OpenAIAPI { String chatEndpoint = "https://api.openai.com/v1/chat/completions"; String apiKey = "Bearer 你自己的key"; public String chat(String txt) { Map<String, Object> paramMap = new HashMap<>(); paramMap.put("model", "gpt-3.5-turbo"); List<Map<String, String>> dataList = new ArrayList<>(); dataList.add(new HashMap<String, String>(){{ put("role", "user"); put("content", txt); }}); paramMap.put("messages", dataList); JSONObject message = null; try { String body = HttpRequest.post(chatEndpoint) .header("Authorization", apiKey) .header("Content-Type", "application/json") .body(JsonUtils.toJson(paramMap)) .execute() .body(); JSONObject jsonObject = JSONUtil.parseObj(body); JSONArray choices = jsonObject.getJSONArray("choices"); JSONObject result = choices.get(0, JSONObject.class, Boolean.TRUE); message = result.getJSONObject("message"); } catch (HttpException e) { return "出现了异常"; } catch (ConvertException e) { return "出现了异常"; } return message.getStr("content"); } public static void main(String[] args) { System.out.println(chat("Hello,一个小浪吴啊")); }}
参数说明:
txt:要发送的文本内容。
返回值:机器人的回复文本。
测试
注意事项
- 在使用OpenAIAPI之前,需要先在OpenAI官网注册账号,并获取API密钥。
- 在使用chat方法之前,需要先修改OpenAIAPI中的chatEndpoint和apiKey变量,分别指定API的URL和密钥。
- 在使用chat方法之前,需要先确定使用的GPT-3模型和参数。
- 在使用chat方法时,需要注意文本内容的长度和格式,以及网络连接的稳定性和速度。
代码说明
这段代码是一个 Java 工具类,用于访问 OpenAI 的 API 接口来进行聊天。下面是一些重要的技术说明:
- 使用了 Java 的 Lombok 工具类,来提供 @UtilityClass 注解,使该类成为一个不可实例化的工具类。
- 定义了两个 String 类型的常量 chatEndpoint 和 apiKey,分别代表 OpenAI 的聊天 API 端点和 API 密钥。
- 定义了一个 chat 方法,用于发送聊天消息到 OpenAI 的 API 接口,输入参数为 txt,代表聊天内容。
- 使用了第三方 Java 工具类 Hutool 来进行 HTTP 请求和 JSON 数据解析。其中,HttpRequest.post() 方法用于发送 POST 请求,JsonUtils.toJson() 方法用于将参数 paramMap 转换为 JSON 格式的字符串,JSONUtil.parseObj() 方法用于将接口返回的 JSON 字符串解析为 JSONObject 对象。
- 在发送请求时,将请求参数封装为一个 Map 对象,其中 model 属性代表使用的 GPT 模型,messages 属性为一个 List 对象,其中包含一个 HashMap 对象,代表用户的聊天消息。
- 在发送请求后,从接口返回的 JSON 数据中获取到聊天机器人返回的消息,然后将消息的 content 属性作为方法的返回值。
- 在异常处理中,使用了 Hutool 提供的 HttpException 和 ConvertException 异常类来处理异常情况。
总体来说,这段代码使用了 Java 的 Hutool 工具类来发送 HTTP 请求和解析 JSON 数据,从而实现了通过 OpenAI API 进行聊天的功能。
后文
项目地址:https://gitee.com/wy521a/astar-weixin-mp
集成公众号使用:https://gitee.com/wy521a/astar-weixin-mp
来源地址:https://blog.csdn.net/A_yonga/article/details/129398716