java中使用Azure OpenAI的DALL·E 3

本文介绍在java中如何使用Azure OpenAI中的DALL·E 3

如果你想看官方的版本,请点击下面的这个链接适用于 Java 的 Azure OpenAI 客户端库 | Microsoft Learn

但是根据他的示例代码我并没有调用成功,如果哪位朋友成功了也可以分享一下。

本文将介绍使用okhttp的方式调用

调用示例代码

    @Value("${dall-e-3.azure-openai-key}")
    private String apiKey;
    @Value("${dall-e-3.endpoint}")
    private String endpoint;
    @Value("${dall-e-3.deployment-or-model-id}")
    private String modelId;
    @Value("${dall-e-3.version}")
    private String version;


/**
 * @param questionDto 问题参数
 *          prompt    提示词
 *          size      尺寸 默认为1024x1024
 *          n         生成图片数量 默认为1
 *          quality   选项有“高清hd”和“标准standard”;默认为标准
 *          style     选项有“自然natural”和“生动vivid”;默认为生动
 * @return {@link String}
 */
public String generateImage(QuestionDto questionDto) {
    try {

        String url = endpoint + "/openai/deployments/" + modelId + "/images/generations?api-version=" + version;

        // Request body
        JSONObject body = new JSONObject();
        body.put("prompt", questionDto.getQuestion());
        body.put("size", IMG_RESOLUTION_1024.getModel());
        body.put("n", 1);
        body.put("quality", QUALITY_STANDARD.getModel());
        body.put("style", STYLE_NATURAL.getModel());

        OkHttpClient client = new OkHttpClient.Builder()
                .readTimeout(25, TimeUnit.SECONDS)
                .build();

        Request request = new Request.Builder()
                .url(url)
                .post(RequestBody.create(MediaType.parse("application/json"), body.toJSONString()))
                .addHeader("api-key", apiKey)
                .addHeader("Content-Type", "application/json")
                .build();

        Response response = client.newCall(request).execute();

        if (response.isSuccessful()) {
            assert response.body() != null;
            String responseBody = response.body().string();
            JSONObject jsonResponse = JSONObject.parseObject(responseBody);
            return jsonResponse.getJSONArray("data").getJSONObject(0).getString("url");
        } else {
            System.out.println("Error: " + response.code() + " - " + response.message());
            return null;
        }
    } catch (IOException e) {
        log.error("Error: " + e.getMessage());
        return "超时连接,请重新尝试";
    }
}

关于哪些区可以使用DALL·E 3

可以看哪个区的DALL·E 3还在收费,基本就是可以创建的,可以点链接看一下Azure OpenAI 服务 - 定价| Microsoft Azure。我选择的是Sweden Central(瑞典中部)

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rabbityyhh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值