是由 开发的强大语言模型,可以用于生成类似人类的文本。 API 允许开发人员访问该模型并在其自己的应用程序中使用。在本文中,我们将讨论如何使用 Java 与 API 生成图像。
在开始之前,您需要在 网站 “” 上注册 API 密钥。一旦拥有了 API 密钥,就可以开始向 API 发送请求。
要使用 Java 与 API,请使用可以处理 HTTP 请求的库。这方面比较常用的库是 库。 是一种强大而灵活的库,可以轻松地发送 HTTP 请求并处理响应。
首先,需要将 库添加到项目中。可以将以下依赖项添加到 build. 文件:
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 request = new HttpEntity (requestJson, headers);
ResponseEntity response = restTemplate.postForEntity(OPENAI_URL, request, String.class);
return response.getBody();
}
}
这个类使用 库向 API 的生成图像端点发送 POST 请求,包含给定的提示词和想要接收的图像数量。如果需要,还可以增加一些其他可选参数,可以在下面的链接中检查:。
API 密钥已添加到请求头中,并以 JSON 的形式发送请求。然后解析响应以返回生成的图像 URL。
现在,可以在代码中使用此类来使用 生成图像。以下是如何在 控制器中使用 ** 方法的示例。
@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());
}
}
上面的代码是 REST 控制器的示例,它使用请求正文中传递的参数调用 类中的 方法。它将 POST 请求映射到 / 终点,并将生成的图像作为响应返回。
还可以为请求正文定义一个 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 请求时, 实用程序类中并未使用它们。这是因为这些参数大多是可选的,有些甚至对于生成图像的端点()无效。但是,对于其他端点,如“文本完成”等,这些是有效的。
测试 API 的时间到了
现在,我们已经准备好端点,可以启动服务器并使用以下 URL 从 或任何其他 API 测试工具发出 POST 请求。
:8080/
这是我的 API 测试截图和响应:
可以看到具有 和 n 值的 Json 请求正文。n=3 表示我们将收到 5 张生成的图像作为响应。我们确实收到与刚刚发送的提示文本相关的 3 个图像 URL。
现在可以复制这些 URL 并将它们粘贴到浏览器中以查看实际图像。
图像生成使用 DALL·E 模型。有许多其他模型可供使用,根据要求进行选择。不仅可以生成图像,还可以操纵它们。可以都尝试一下,看看哪个最合心意。使用下面的链接获取所有可用模型:(将你的 API 密钥作为 令牌添加)。
本文提供了有关如何使用 Java 与 API 生成 图像的详细步骤。希望本指南有助于在基于 的项目中使用 的强大功能,使开发变得更轻松!
感谢阅读,希望对你有所帮助:)
来源:
推荐: 恐怖的GPT4 ,打不过就加入 ! 网友用文心一言魔性作图,我愣住了
最近发现我做了一个ChatGPT星球,这个星球有几十位行业内大佬
星球短短几天就发展到近1200人规模,星球活跃度上周排名第9:
简单说下这个星球能给大家提供什么:
星球福利: 1、带你开通微软的New Bing账号,体验GPT4 。 2、会邀请你加入ChatGPT会员交流群,群特别活跃。 3、会赠送5份完整的ChatGPT使用手册和66个ChatGPT副业赚钱手册。 4、教你开通ChatGPTPlus账号,提前使用ChatGPT4.0 。 星球分享: 1、ChatGPT的使用方法,最新资讯,商业价值。 2、一些副业思考、创业案例、落地案例分享。 3、探讨未来关于ChatGPT的机遇,帮助大家解决遇到的问题。 4、ChatGPT全网最新最全的行业报告文档免费下载。 5、提供访问ChatGPT的网络渠道。 6、4月份开始带大家搞副业收入 ! 7、提供一整年的售后服务,一起搞副业 其它福利还在筹划中... 不过,我给你大家保证,加入星球后,收获的价值会远远大于今天加入的门票费用 ! 现在星球在运营初期,正式运营价格定为299,目前我给出了加入的最低价129,后面星球成员每增加100人,星球费用会增长10元(估计发文后就会涨价)。早就是优势,建议大家尽早以便宜的价格加入!
有兴趣的朋友们,欢迎扫码领取大额优惠券,加入本星球: