服务粉丝

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

Spring + OpenAI 生成图像,真香!

日期: 来源:AI实战收集编辑:点击关注

关注 AI 实战,开启智能生活!

推荐阅读:用上 ChatGPT 啦,打破你的认知!


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

在开始之前,您需要在 OpenAI 网站上注册 API 密钥:

https://platform.openai.com/account/api-keys

一旦拥有了 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 调用的类。可以使用下面的示例:

@Component
public 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 请求,包含给定的提示词和想要接收的图像数量。如果需要,还可以增加一些其他可选参数。

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

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

@RestController
public 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 的强大功能,使开发变得更轻松!

来源:manpreetsinghdor.medium.com

ChatGPT 太火爆啦,有人靠它提高工作效率,有人靠它赚了第一桶金,但也有很多人对 ChatGPT 还一无所知。。

新赛道,巨大红利,我不希望你是后者。
朋友圈也经常有人找我咨询 ChatGPT,根本回答不过来,于是我创建了一个《ChatGPT小密圈》知识星球,和大家分享这个巨大的红利。
加入即送一个超难注册的 ChatGPT 账号,个人独享,官方纯手动注册,安全可靠。
光一个账号就值几十块,星球还输出了 40+ 篇干货,持续更新中,早已值回票价:
目前还是优惠价,快扫码加入吧:
1000 人后正式涨价啦,早就是优势!
ChatGPT 不会替代你,但掌握了它的人会!

相关阅读

  • 注意!本周六正式开售!|早安,苏州

  • 今天白天多云傍晚到夜里多云到阴,有阵雨或雷雨今晨最低气温:12~13℃今天最高气温:23℃左右早安☀今日关注01日前,苏州市商务局公布1-2月苏州境外投资情况。1-2月,苏州新增对外投
  • 什么是软件海外利基市场?

  • 大家好,我是子木,一直在从事 SaaS 软件行业,并一直研究付费软件。现在我刚刚 30 岁,预计还有 10 年时间来磨砺这个方向。感谢 300+ 圈友的信任和支持,在知识星球上写相关笔记,目前
  • 在这里:分享一些所见所闻的软件商机

  • 大家好,我是子木我一直在从事 SaaS 软件行业,并一直研究付费软件。现在我刚刚 30 岁,预计还有 10 年时间来磨砺这个方向。记得 2 月左右,我开始在知识星球上写相关笔记,内容包括
  • “寻”碳汇发展趋势,“探”碳汇数字化建设之路

  • 2022年底,中央经济工作会议提出,要推动经济社会发展绿色转型,协同推进降碳、减污、扩绿、增长,建设美丽中国。今年两会同样指出,要推动重点领域节能降碳,走出一条绿色低碳的生态文
  • 5月基金从业考试须知!!一文教你选择报考科目

  • 今年唯一一次基金从业统考将于5月20日-21日开考 距离考试仅剩38天!!01报名条件1.具有完全民事行为能力;2.截至报名日,年满 18 周岁;3.具有高中以上文化程度;4.中国证监会规定的
  • 高出评估价近800万,杭州的富人们又在抢房了

  • ◎Tips:今日共8盘正在登记,明细见文末01法拍房的热度又回来了!昨天一天,杭州5套总价千万级的豪宅,3套超评估价成交。这一战绩,创近半年最佳。溢价率最高的,是烂尾重生的泰禾杭州院

热门文章

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

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

最新文章

  • 自信!东风本田HR-V售15.99万元起

  • 温馨提示:点击上方蓝字关注“汽车行业关注”,或者添加微信公众号:autoWechat,每日收获最新最快最热门的精彩汽车资讯。如果您有好的原创文章或者独家爆料,请发邮箱mail@autochat.
  • 注意!本周六正式开售!|早安,苏州

  • 今天白天多云傍晚到夜里多云到阴,有阵雨或雷雨今晨最低气温:12~13℃今天最高气温:23℃左右早安☀今日关注01日前,苏州市商务局公布1-2月苏州境外投资情况。1-2月,苏州新增对外投
  • Spring + OpenAI 生成图像,真香!

  • 关注 AI 实战,开启智能生活!推荐阅读:用上 ChatGPT 啦,打破你的认知!ChatGPT 是由 OpenAI 开发的强大语言模型,可以用于生成类似人类的文本。OpenAI API 允许开发人员访问该模型并
  • 商汤 GPT:发布“商量”语言大模型

  • 点蓝字关注,一起程序员弯道超车之路整理 | 屠敏 出品 | CSDN(ID:CSDNnews)就在昨日,AI 大模型落地的机器人应用赛道上,多了一位新成员——商量(SenseChat),它是由商汤科技研发而成,和