文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-16 20:01

关注

说明

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯