【Java】快速接入ChatGPT API实现聊天、生成图像

目录

申请API秘钥

发请求

发请求响应文本 

发请求响应图像


申请API秘钥

访问https://platform.openai.com/

 登录后点击右上角的头像,如图:

获取到秘钥后接下来就开始搞代码啦~ 


发请求

添加发请求和解析响应的maven依赖

<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version>
</dependency><!-- 非springboot, 使用以下依赖 -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.5.2</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.2</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.5.2</version>
</dependency><!-- springboot, 使用以下依赖 版本号跟你的父项目保持一致-->
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-json</artifactId>-->
<!--        </dependency>-->

发请求响应文本 

添加一个实体, 用于设置发请求的参数:

import java.io.Serializable;
import java.util.List;/*** api请求的参数** @author 提笔忘字的帝国*/
public class Text implements Serializable {private static final long serialVersionUID = 1L;/*** model : gpt-3.5-turbo messages : [{"role":"user","content":"Say this is a test!"}] temperature : 0.7*/private String model;private double temperature;private List<MessagesBean> messages;public String getModel() {return model;}public void setModel(String model) {this.model = model;}public double getTemperature() {return temperature;}public void setTemperature(double temperature) {this.temperature = temperature;}public List<MessagesBean> getMessages() {return messages;}public void setMessages(List<MessagesBean> messages) {this.messages = messages;}public static class MessagesBean implements Serializable {private static final long serialVersionUID = 1L;/*** role : user content : Say this is a test!*/private String role;private String content;public MessagesBean(String user, String content) {this.role = user;this.content = content;}public String getRole() {return role;}public void setRole(String role) {this.role = role;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
}

发请求:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.util.Collections;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;import okhttp3.*;/*** @author 提笔忘字的帝国*/
public class Test {/** API秘钥 添加自己的秘钥 */private static final String KEY = "";/** url */private static final String URL = "https://api.openai.com/v1/chat/completions";/** 配置代理服务的ip 根据自己实际情况配置 */private static final String HOST = "127.0.0.1";/** 配置代理服务的端口 根据自己实际情况配置 */private static final int PORT = 7890;public static void main(String[] args) throws JsonProcessingException {// 输入内容String content = "您好";// 创建 ObjectMapper 用于解析 JSONObjectMapper objectMapper = new ObjectMapper();Text text = new Text();// 设置模型text.setModel("gpt-3.5-turbo");// 值越小,生成的文本越可信,但也越无创造性 值越大,生成的文本越有创造性,但也越不可信 范围:0.0-1.0text.setTemperature(0.7);text.setMessages(Collections.singletonList(new Text.MessagesBean("user", content)));// 配置代理Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(HOST, PORT));// 创建 OkHttpClientOkHttpClient client = new OkHttpClient.Builder().proxy(proxy).build();// 创建请求体,携带 JSON 参数RequestBody requestBody = RequestBody.create(objectMapper.writeValueAsString(text),MediaType.parse("application/json; charset=utf-8"));// 创建请求Request request =new Request.Builder().url(URL).addHeader("Authorization", "Bearer ".concat(KEY)).post(requestBody).build();// 发送请求并处理响应try (Response response = client.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException("Unexpected code " + response);}// 解析json 获取结果JsonNode jsonNode = objectMapper.readTree(response.body().string());System.out.println(jsonNode.get("choices").get(0).get("message").get("content").asText());} catch (IOException e) {e.printStackTrace();}}
}

发请求响应图像

添加一个实体, 用于设置发请求的参数:

import java.io.Serializable;/*** api请求的参数** @author 提笔忘字的帝国*/
public class Images implements Serializable {private static final long serialVersionUID = 1L;/*** prompt : A cute baby sea otter n : 2 size : 1024x1024*/private String prompt;private int n;private String size;public String getPrompt() {return prompt;}public void setPrompt(String prompt) {this.prompt = prompt;}public int getN() {return n;}public void setN(int n) {this.n = n;}public String getSize() {return size;}public void setSize(String size) {this.size = size;}
}

 发请求:

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;import okhttp3.*;/*** @author 提笔忘字的帝国*/
public class TestImg {/** API秘钥 添加自己的秘钥 */private static final String KEY = "";/** url */private static final String URL = "https://api.openai.com/v1/images/generations";/** 配置代理服务的ip 根据自己实际情况配置 */private static final String HOST = "127.0.0.1";/** 配置代理服务的端口 根据自己实际情况配置 */private static final int PORT = 7890;public static void main(String[] args) throws JsonProcessingException {// 输入内容String content = "生成一只功夫熊猫";// 创建 ObjectMapper 用于解析 JSONObjectMapper objectMapper = new ObjectMapper();Images images = new Images();// 生成图像的描述images.setPrompt(content);// 生成图像的数量images.setN(1);// 生成图像的尺寸images.setSize("1024x1024");// 配置代理Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(HOST, PORT));// 创建 OkHttpClientOkHttpClient client = new OkHttpClient.Builder().proxy(proxy).build();// 创建请求体,携带 JSON 参数RequestBody requestBody = RequestBody.create(objectMapper.writeValueAsString(images),MediaType.parse("application/json; charset=utf-8"));// 创建请求Request request =new Request.Builder().url(URL).addHeader("Authorization", "Bearer ".concat(KEY)).post(requestBody).build();// 发送请求并处理响应try (Response response = client.newCall(request).execute()) {if (!response.isSuccessful()) {throw new IOException("Unexpected code " + response);}// 解析json 获取结果JsonNode jsonNode = objectMapper.readTree(response.body().string());System.out.println(jsonNode.get("data").get(0).get("url").asText());} catch (IOException e) {e.printStackTrace();}}
}

 可以看到响应回来的是一个图像的链接, 点击查看链接即可, 下图是生成回来的图像

emmmm, 跟我想象的不一样, 可能是我描述不够清晰, 今天就到这啦~


 👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3026.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【免费】微信图片dat转jpg工具(自动区分JPG、PNG、GIF)

楼主之前为了完成一个课程项目&#xff0c;写的一个小程序&#xff0c;之前需要批量转换微信图片的时候&#xff0c;看cadn上有好多源码&#xff0c;但是楼主比较菜&#xff0c;不怎么会用&#xff0c;后来自己写了一个小程序解决普通人使用的痛点&#xff0c;下载下来exe可以直…

ChatGPT - 快速生成 流程图

文章目录 Prompt输出Copy 到 drawio Prompt 我想做一个研发标准化的流程,但是我是一个小白,不懂研发管理的流 程,我希望你作为一个经验丰富的技术管理人员,请帮我梳理一个完整流程,包括需求分析、概要设计,代码走查等等,输出的节点不少于18个,包含逻辑判断的分支,要通循实事求…

【ChatGPT】基于GO语言实现的微信聊天和图片生成机器人

ChatGPT-DreamStudio WeChat Robot &#x1f3a8;基于GO语言实现的微信聊天和图片生成机器人&#x1f3a8; 个人微信接入ChatGPT&#xff0c;实现和GPT机器人互动聊天&#xff0c;同时支持基于文本生成图像。支持私聊回复和群聊艾特回复。 GitHub源代码地址 实现功能 GPT机…

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估1

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估1 在前面的几段视频中,用户展示了如何使用一个小时来构建应用程序,从评估这些输入到处理输入,再到进行最终打开检查,再到向用户显示输出。显然是构建了这样一个系统。 你怎么知道它是如…

国内这么多“ChatGPT”是真是假

国内这些产品是真的吗&#xff1f;与国外的ChatGPT有什么联系&#xff1f; 用ChatGPT官方图标当头像 免费试用几次后开始收费 据澎湃科技报道&#xff0c;随手点开微信搜索框&#xff0c;就可以发现一系列与ChatGPT“沾亲带故”的产品&#xff0c;并以ChatGPT的官方图标为头像。…

国内最火chatgpt一款强大的国内智能AI语言模型(据说对接了chatgpt4)

简介 Cursor是一个集成了 GPT-4 的国内直接可以访问的&#xff0c;优秀而强大的免费代码生成器&#xff0c;可以帮助你快速编写、编辑和讨论代码。 它支持多种编程语言&#xff0c;如 Python, Java, C#, JavaScript 等&#xff0c;并且可以根据你的输入和需求自动生成代码片段…

给头像戴上口罩

刚搭建的给头像戴口罩的小网页给你的头像戴上口罩-宅主页&#xff0c;包含N95在内的10个口罩可选&#xff0c;欢迎试用

springboot+chatgpt+chatUI Pro开发智能聊天工具

应广大网友要求&#xff0c;也为了节约大家的时间现为大家奉献上源码下载地址&#xff1a;https://download.csdn.net/download/xiangyuanhong08/87708197源码下载后在IDEA导入项目后自己修改配置文件中apiKey运行即可。 一、技术介绍 1.chatgpt-java是一个OpenAI的Java版SDK&a…

如何制作 ChatGPT 清晰有效咒语与Chat GPT高效交流——基础篇 第二课

【ChatGPT】前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击查看学习资料&#xff09; 在上一篇文章中&#xff0c;我们已经了解了 ChatGPT 的特性、应用范围以及逆…

那些追赶ChatGPT,Disco Diffusion的软件合集

用了那么多AI工具后&#xff0c;我才真正地意识到那句话“科技改变生活”&#xff0c;知识的力量果真是无穷的。 那我就来盘点一下我用过自认可以比肩题主提到的两个工具的小宝藏吧~ 一、AI助手 - OpenAI ChatGPT侧边栏AI助手 - OpenAI ChatGPT侧边栏(国内免费使用) - Microso…

New Bing乘上ChatGPT的东风,日活突破1亿

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 注&#xff1a;本文由松松杰哥缮写&#xff0c;ChatGPT进行了补充和润色&#xff0c;你们可以看看本文和其他文有什么区别&#xff1f; 微软今天宣布&#xff0c;New Bing乘上ChatGPT的东风&#xf…

如何使用ChatGPT制作免费的数字人

传统的数字人制作过程 制作属于自己的免费的数字人是一个复杂的过程&#xff0c;需要涉及多个方面的知识和技术。以下是一个大致的步骤指南&#xff0c;以帮助你开始这个过程&#xff1a; 1. 确定数字人的目标和设计&#xff1a;首先&#xff0c;你需要确定数字人的用途和目标…

ChatGPT实战应用:与外国真人聊天并提升英语能力

目录 1.简介 2.HelloTalk 3.chatgpt的使用 4.结语 1.简介 如果你想通过和外国人聊天来提升英语技能或者了解他们国家的文化&#xff0c;但是却没有门路&#xff1b; 如果你有门路&#xff0c;奈何不知道该如何表达自己的想法或者不知道自己表达的意思到底是否准确&#xf…

人人都能懂的ChatGPT解读

作者 | 张杰&#xff0c;中关村科金技术副总裁 策划 | 刘燕 ChatGPT 发布了两个多月&#xff0c;热度不降反增&#xff0c;不断火爆出圈。是时候&#xff0c;为不懂 AI 技术的同学们白话科普一下了。本文将用浅显且不严谨的语言解惑以下问题&#xff1a;ChatGPT 为什么能火起来…

【哈士奇赠书活动 - 23期】-〖你好 ChatGPT〗

文章目录 ⭐️ 赠书 - 《你好 ChatGPT》⭐️ 内容简介⭐️ 作者简介⭐️ 精彩书评⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《你好 ChatGPT》 ⭐️ 内容简介 人工智能&#xff08;AI&#xff09;时代已经来临&#xff0c;AIGC&#xff08;人工智能生成内容&#xff09;正在进一步…

半小时用ChatGPT构建你的虚拟形象

大家好&#xff0c;欢迎来到我的频道&#xff0c;今天我来教大家如何用ChatGPT创建一个虚拟形象&#xff0c;如下图和视频所示。 视频地址&#xff1a;https://www.bilibili.com/video/BV1nD4y1u7Ti/?vd_source8b5cb1818bd1c0e0ac8b604d1a720e2d 生成图片 首先&#xff0c;我…

面向ChatGPT编程

让AI编写一个聊天页面&#xff0c;先看一下成品图。 用react写一个聊天页面 让AI把聊天室页面加上好看的样式 要求让样式鲜艳一点 Windows浏览器的滚动条太丑了&#xff0c;让他美化一下 要求AI把聊天内容加上头像&#xff0c;就像微信一样 大功告成&#xff0c;顺利下岗~

idea好用插件分享——Bito-ChatGPT

文章目录 安装步骤&#xff1a;第一步&#xff1a;打开Setting第二步&#xff1a;选择Plugins&#xff0c;输入Bito&#xff0c;就可以搜索出来了&#xff0c;再点击安装第三步&#xff1a;安装完成回到IDEA主界面&#xff0c;右边区域可以看到Bito图标&#xff0c;点击展开&am…

让生产力加倍的ChatGPT快捷指令

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 Why use ChatGPT Shortcut? &#x1f680; 简化流程&#xff1a;ChatGPT Shortcut 提供了快捷指令表&#xff0c;可以快速筛选和搜索适用于不同场景的提示词&…

欧洲多国对 ChatGPT 展开调查;高通被韩国罚款超50亿;能用ChatGPT 来炒股了?丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 腾讯发布超强算力集群 4月14日&#xff0c;据腾讯微信公众号消息&#xff0c;腾讯云新发布面向大模型训练的新一代HCC高性能计算集群&#xff0c;整体性能比过去提升了3倍。搭载了NVIDIA H800 Tensor Core GPU&…