返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java SpringBoot实现调用OpenAI ChatGPT的相关接口(详细教程)
  • 713
分享到

Java SpringBoot实现调用OpenAI ChatGPT的相关接口(详细教程)

javaspringbootchatgpt 2023-09-16 20:09:55 713人浏览 独家记忆
摘要

大纲 说明 Java调用Openai接口,Java调用实现ChatGPT聊天,OpenAIapi是一个自己封装的OpenAI GPT-3聊天API的Java工具类,可用于通过Java代码调用GPT-3

大纲

说明

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:要发送的文本内容。
返回值:机器人的回复文本。

测试

注意事项

  1. 在使用OpenAIAPI之前,需要先在OpenAI官网注册账号,并获取API密钥。
  2. 在使用chat方法之前,需要先修改OpenAIAPI中的chatEndpoint和apiKey变量,分别指定API的URL和密钥。
  3. 在使用chat方法之前,需要先确定使用的GPT-3模型和参数。
  4. 在使用chat方法时,需要注意文本内容的长度和格式,以及网络连接的稳定性和速度。

代码说明

这段代码是一个 Java 工具类,用于访问 OpenAI 的 API 接口来进行聊天。下面是一些重要的技术说明:

  1. 使用了 Java 的 Lombok 工具类,来提供 @UtilityClass 注解,使该类成为一个不可实例化的工具类。
  2. 定义了两个 String 类型的常量 chatEndpoint 和 apiKey,分别代表 OpenAI 的聊天 API 端点和 API 密钥。
  3. 定义了一个 chat 方法,用于发送聊天消息到 OpenAI 的 API 接口,输入参数为 txt,代表聊天内容。
  4. 使用了第三方 Java 工具类 Hutool 来进行 HTTP 请求和 JSON 数据解析。其中,HttpRequest.post() 方法用于发送 POST 请求,JsonUtils.toJson() 方法用于将参数 paramMap 转换为 JSON 格式的字符串,JSONUtil.parseObj() 方法用于将接口返回的 JSON 字符串解析为 JSONObject 对象。
  5. 在发送请求时,将请求参数封装为一个 Map 对象,其中 model 属性代表使用的 GPT 模型,messages 属性为一个 List 对象,其中包含一个 HashMap 对象,代表用户的聊天消息。
  6. 在发送请求后,从接口返回的 JSON 数据中获取到聊天机器人返回的消息,然后将消息的 content 属性作为方法的返回值。
  7. 在异常处理中,使用了 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

--结束END--

本文标题: Java SpringBoot实现调用OpenAI ChatGPT的相关接口(详细教程)

本文链接: https://lsjlt.com/news/410315.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作