服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Spring Boot + OpenAI 生成图像

日期: 来源:SpringForAll收集编辑:
关注我,回复关键字“spring”
免费领取Spring学习资料


ChatGPT 是由 OpenAI 开发的强大语言模型,可以用于生成类似人类的文本。OpenAI API 允许开发人员访问该模型并在其自己的应用程序中使用。在本文中,我们将讨论如何使用 Java Spring Framework 与 OpenAI API 生成图像。


在开始之前,您需要在 OpenAI 网站 "https://beta.openai.com/account/api-keys" 上注册 API 密钥。一旦拥有了 API 密钥,就可以开始向 API 发送请求。


要使用 Java Spring Framework 与 OpenAI API,请使用可以处理 HTTP 请求的库。这方面比较常用的库是 Spring RestTemplate 库。RestTemplate 是一种强大而灵活的库,可以轻松地发送 HTTP 请求并处理响应。


首先,需要将 Spring RestTemplate 库添加到项目中。可以将以下依赖项添加到 build.gradle 文件:


plugins { id 'java' id 'org.springframework.boot' version '3.0.1' id 'io.spring.dependency-management' version '1.1.0'}
group = 'com.openai'version = '0.0.1-SNAPSHOT'sourceCompatibility = '17'
repositories { mavenCentral()}
dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test'}
tasks.named('test') { useJUnitPlatform()}

接下来,创建一个处理 API 调用的类。可以使用下面的示例:


@Componentpublic class OpenAi {    private static final String OPENAI_URL = "https://api.openai.com/v1/images/generations";    private final String apiKey = "<your-api-key";    private final RestTemplate restTemplate = new RestTemplate();    public String generateImages(String prompt, float temperature, int maxTokens, String stop, final int logprobs, final boolean echo) {        HttpHeaders headers = new HttpHeaders();        headers.setContentType(MediaType.APPLICATION_JSON);        headers.set("Authorization", "Bearer " + apiKey);        // We are including only some of the parameters to the json request        String requestJson = "{\"prompt\":\"" + prompt + "\",\"n\":" + n + "}";        HttpEntity < String > request = new HttpEntity < > (requestJson, headers);        ResponseEntity < String > response = restTemplate.postForEntity(OPENAI_URL, request, String.class);        return response.getBody();    }}

这个类使用 Spring RestTemplate 库向 OpenAI API 的生成图像端点发送 POST 请求,包含给定的提示词和想要接收的图像数量。如果需要,还可以增加一些其他可选参数,可以在下面的链接中检查:https://beta.openai.com/docs/api-reference/images/create


API 密钥已添加到请求头中,并以 JSON 的形式发送请求。然后解析响应以返回生成的图像 URL。


现在,可以在代码中使用此类来使用 ChatGPT 生成图像。以下是如何在 Spring 控制器中使用 *generateImages* 方法的示例。


@RestControllerpublic class OpenAiController {    @Autowired    private final OpenAi openAi;    public OpenAiController(OpenAi openAi) {        this.openAi = openAi;    }    @PostMapping("/generateImages")    public String generateImages(@RequestBody GenerateImagesRequest request) {        return openAi.generateImages(request.getPrompt(), request.getTemperature(), request.getMaxTokens(), request.getStop(),            request.getLogprobs(), request.isEcho(), request.getN());    }}

上面的代码是 Spring REST 控制器的示例,它使用请求正文中传递的参数调用 OpenAi 类中的 generateImages 方法。它将 POST 请求映射到 /generateImages 终点,并将生成的图像作为响应返回。


还可以为请求正文定义一个 POJO 类,例如:


public class GenerateImagesRequest {    private String prompt;    private float temperature;    private int maxTokens;    private String stop;    private int logprobs;    private boolean echo;    private int n;    // getters and setters}

值得注意的是,生成的图像可能不完美,可能需要进一步审查和调整。我们已向模型添加了许多参数,但在向服务器发送 post 请求时,OpenAI 实用程序类中并未使用它们。这是因为这些参数大多是可选的,有些甚至对于生成图像的端点(endpoint)无效。但是,对于其他端点,如“文本完成”等,这些是有效的。


测试 API 的时间到了


现在,我们已经准备好端点,可以启动服务器并使用以下 URL 从 Postman 或任何其他 API 测试工具发出 POST 请求。


http://localhost:8080/generateImages


这是我的 API 测试截图和响应:



可以看到具有 prompt 和 n 值的 Json 请求正文。n=3 表示我们将收到 5 张生成的图像作为响应。我们确实收到与刚刚发送的提示文本相关的 3 个图像 URL。


现在可以复制这些 URL 并将它们粘贴到浏览器中以查看实际图像。


图像生成使用 DALL·E 模型。有许多其他模型可供使用,根据要求进行选择。不仅可以生成图像,还可以操纵它们。可以都尝试一下,看看哪个最合心意。使用下面的链接获取所有可用模型:https://api.openai.com/v1/models(将你的 API 密钥作为 Bearer 令牌添加)。


本文提供了有关如何使用 Java Spring Framework 与 OpenAI API 生成 ChatGPT 图像的详细步骤。希望本指南有助于在基于 Spring 的项目中使用 ChatGPT 的强大功能,使开发变得更轻松!

转自:Manpreet Singh,

链接:manpreetsinghdor.medium.com



END



不写Controller、Service、Dao、Mapper、XML、VO,全自动生成!
SSO 单点登录和 OAuth2.0 的区别和理解
Spring Boot 优雅停止服务的几种方法
Spring Boot 过滤器、拦截器、监听器对比及使用场景

高质量交流群,关注:SpringForAll,回复关键词:加群

相关阅读

  • 英伟达:更新(浙商)

  • 整理:by浙商电子@蒋高振团队来源:Nvidia 2023开发者大会一、DGX Cloud AI超级计算服务DGX Cloud提供专用的NVIDIA DGX AI超级计算集群,搭配NVIDIA AI软件,可让企业立即访问为生
  • 英伟达GTC大会万字纪要

  • 产业调研系列欢迎来到GTC大会,GTC是我们面向开发者的一场盛会,这个全球NVIDIA生态系统涵盖400万开发者、4万家公司和1.4万家初创公司。感谢我们的钻石赞助商,他们为我们提供大
  • 自动驾驶数据闭环系列之二——如何降本增效

  • 交流群 | 进“传感器群/滑板底盘群/汽车基础软件群/域控制器群”请扫描文末二维码,添加九章小助手,务必备注交流群名称 + 真实姓名 + 公司 + 职位(不备注无法通过好友验证)作者
  • GPT-4,大增长时代的序幕

  • 作者|成诚虽然我们早在 2017 年就预测了超大模型的到来,因此才搞了分布式深度学习框架 OneFlow(github.com/Oneflow-Inc/oneflow/),且 2020 年的 GPT-3 也掀起了大模型热潮(OneFlo
  • 机器视觉边缘检测算法详解

  • d点击下方卡片,关注“新机器视觉”公众号重磅干货,第一时间送达边缘检测相关算法的步骤如下: 1、滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏
  • 一觉醒来 AI 又变天了

  • AIGC经历了疯狂一夜作者 | 新宇 志劭 智健来源 | 爱范儿(ID:ifanr)AI 的 「iPhone 时刻」已经到来在刚结束的英伟达 GTC 2023 大会上,英伟达 CEO 黄仁勋把这个观点反复说了 3

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • 念好“战”字诀,研究生院拓展人才培养路径

  • “作为学员,能够直接参与重点项目,机会很难得!”军事科学院博士研究生东肃河兴奋地说。近日,东肃河经过4个月的集中教学,顺利进入到以科研实验为主的“第二培养阶段”,将跟随导师
  • Spring Boot + OpenAI 生成图像

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。ChatGPT 是由 OpenAI 开发的强大语言模型,可以用于生成类似人类的文本。OpenAI API 允许开发人员访问该模型并在其自己
  • Spring Boot 应用的新命令行界面:Just

  • 关注我,回复关键字“spring”,免费领取Spring学习资料。作者 | Johan Janssen、译者 | 马可薇、策划 | 丁晓昀命令行工具 Just,无需任何配置即可自动加载有变动的源码、构建文
  • 3月前端小报|读小报,涨知识

  • 本期知识小报的主要内容• TS中映射类型和索引类型的简单应用• lighthouse实现自定义检测• React Portal相关使用TipsTS映射类型和索引类型的简单应用在TS中,当我们给出入