文章主题:ChatGPT, OpenAI API, Java Spring Framework, image generation

666AI工具大全,助力做AI时代先行者!

ChatGPT,作为一款由OpenAI研发的先进语言模型,具备生成类似于人类文本的能力。借助OpenAI提供的API接口,开发者可以轻松地将其集成到自有的应用程序之中。在本篇文章中,我们将探讨如何运用Java Spring框架与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.openaiversion = 0.0.1-SNAPSHOTsourceCompatibility = 17repositories

 {

 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();

在编程中,尤其是在Web开发中,设置HTTP头信息(headers)是一项非常重要的任务。它们可以帮助我们在浏览器与服务器之间传递额外的信息,例如身份验证凭据、语言偏好等。在这里,我将以一名文章专业高手的水平,为您详细解释如何设置Content-Type头部信息。首先,我们需要了解Content-Type头部信息的含义。它是一个描述性的字符串,用于指定从服务器发送给浏览器的数据的MIME类型。例如,如果我们正在传输一个JSON格式的数据,那么我们可以将Content-Type设置为”application/json”。在JavaScript中,我们通常使用`setContentType()`方法来设置Content-Type头部信息。这个方法的参数是一个MediaType对象,它包含了我们要发送的数据的类型信息。例如,如果我们想要发送一个JSON格式的数据,我们可以创建一个MediaType对象,并将它设置为”application/json”。下面是具体的代码示例:“`javascriptlet headers = new Headers();headers.setContentType(MediaType.APPLICATION_JSON);“`在这个例子中,我们创建了一个新的Headers对象,然后调用其`setContentType()`方法,将Content-Type设置为”application/json”。这样,当浏览器接收到这个响应时,它会知道这是一个JSON格式的数据,从而正确地解析和显示它。需要注意的是,不同的浏览器可能对Content-Type的理解有所不同,因此,为了确保兼容性,我们通常会使用`”application/json”`这样的标准值。当然,如果你有特定的需求,也可以根据实际情况选择其他的MediaType值。总的来说,设置Content-Type头部信息是一项重要的任务,它可以帮助我们更好地控制从服务器到浏览器的数据传输。通过理解和使用`setContentType()`方法,我们可以轻松地在JavaScript中实现这个功能。

        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 测试截图和响应:

1686002405300.png

可以看到具有 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推荐:恐怖的GPT4 ,打不过就加入 !网友用文心一言魔性作图,我愣住了

最近发现我做了一个ChatGPT星球,这个星球有几十位行业内大佬

星球短短几天就发展到近1200人规模,星球活跃度上周排名第9:

1686002405728.png

简单说下这个星球能给大家提供什么:

星球福利: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元(估计发文后就会涨价)。早就是优势,建议大家尽早以便宜的价格加入!

有兴趣的朋友们,欢迎扫码领取大额优惠券,加入本星球:

1686002406086.png

aigc666aigc999_0.jpg

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

Leave a Reply

Your email address will not be published. Required fields are marked *