如何使用Spring+OpenAI生成图像
创始人
2025-05-31 19:29:48
0

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

@Component
public class OpenAi {private static final String OPENAI_URL = "https://api.openai.com/v1/images/generations";private final String apiKey = " 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* 方法的示例。

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

相关内容

热门资讯

炫耀的近反义词是什么 炫耀的近反义词是什么  导语:有近义词和反义词的题目,学生都很容易错。说明学生的词汇量比较少,对于词...
五零四散的反义词 五零四散的反义词有:完完整整,五零四散[wǔ líng sì sàn]的意思:形容零星涣散。出自:郭...
干涸的反义词是什么及造句 干涸的反义词是什么及造句  【干涸解释】:(河道、池塘等)没有水了。以下是小编收集整理关于该词反义词...
洗手不干的反义词 洗手不干的反义词有:执迷不悟,死不悔改,洗手不干[xǐ shǒu bù gàn]的意思:把手洗干净休...
欺骗的反义词   【词目】 欺骗  【反义词】真诚  【基本解释】欺假、诈骗,用虚伪的言行隐瞒真相,使人上当。  ...
拮据的反义词   拮据(jié jū)  拮据的反义词:阔绰、富裕、大方  词语解释:原鸟衔草筑巢,...
抽薪止沸的反义词 抽薪止沸的反义词有:抱薪救火,负薪救火,抽薪止沸[chōu xīn zhǐ fèi]的意思:抽掉锅底...
沉默的反义词 沉默的反义词  沉默就是默默的,一言不发,沉寂的,不说话的。  一、【反义词】  做声、发言、多言、...
苦大仇深的反义词 苦大仇深的反义词有:养尊处优,苦大仇深[kǔ dà chóu shēn]的意思:形容经历过长期受剥削...
一鳞半爪的反义词 一鳞半爪的反义词有:一应俱全,一览无余,十全十美,完美无缺,一鳞半爪[yī lín bàn zhǎo...
棋逢对手的反义词 棋逢对手的反义词有:棋高一着,略胜一筹,棋逢对手[qí féng duì shǒu]的意思:逢:遇到...
指望的近义词和反义词 指望的近义词和反义词  指望是指一心期待,盼望或希望。那么,你知道指望近义词和反义词有哪些吗?下面为...
大败而逃的反义词 大败而逃的反义词有:凯旋而归,大败而逃[dà bài ér táo]的意思:指吃了败仗慌张逃跑出自:...
乐在其中的反义词 乐在其中的反义词有:忧心忡忡,闷闷不乐,乐在其中[lè zài qí zhōng]的意思:乐:快乐;...
不护细行的反义词 不护细行的反义词有:谨小慎微,不护细行[bù hù xì xíng]的意思:指不注意小节。出自:语出...
妻离子散的反义词 妻离子散的反义词有:欢聚一堂,破镜重圆,妻离子散[qī lí zǐ sàn]的意思:妻子离异;子女流...
如雷贯耳的反义词 如雷贯耳的反义词有:无名小卒,如雷贯耳[rú léi guàn ěr]的意思:贯:穿透。响亮得像雷声...
嬉皮笑脸的反义词 嬉皮笑脸的反义词有:一本正经,俨乎其然,岸然道貌,敛容息气,敛色屏气,正言厉色,道貌岸然,嬉皮笑脸[...
离经畔道的反义词 离经畔道的反义词有:循规蹈矩,离经畔道[lí jīng pàn dào]的意思:①谓思想、言行背离儒...
乖巧的近义词和反义词 乖巧的近义词和反义词  乖巧,指聪明、听话而讨人喜欢。下面是关于乖巧的近义词和反义词的内容,欢迎阅读...