You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java调用DALL-E 3获取图片URL?代码报错模型不存在

解决调用DALL-E 3 API时模型不存在的问题

你的代码有几个核心错误,导致模型不存在的报错,逐一修正即可:

  • API端点用错了:/v1/completions是GPT等文本模型的接口,DALL-E生成图片必须用/v1/images/generations这个端点。
  • 模型名称写错了:DALL-E 3的正确模型ID是dall-e-3,不是dall-e-003。
  • 参数不匹配:max_tokens是文本生成模型的参数,DALL-E完全不需要这个,应该换成DALL-E专属参数,比如生成图片的数量n、尺寸size等。
  • JSON拼接有隐患:直接用字符串拼接生成JSON,一旦prompt里有引号就会导致格式错误,实际项目里建议用Jackson或Gson这类库来构建请求体。

修正后的代码示例:

import okhttp3.*;
import java.io.IOException;

public class OpenAIDALL_EClient {

    private static final String OPENAI_API_KEY = "your_openai_api_key";
    // 修正图片生成的API端点
    private static final String OPENAI_API_ENDPOINT = "https://api.openai.com/v1/images/generations";

    public static void main(String[] args) {
        String prompt = "generate a little robot";

        String imageUrl = callOpenAIDALL_EAndReturnImage(prompt);
        System.out.println("Image URL: " + imageUrl);
    }

    private static String callOpenAIDALL_EAndReturnImage(String prompt) {
        OkHttpClient client = new OkHttpClient();

        // 修正模型名,替换为DALL-E可用参数
        String json = "{\"model\":\"dall-e-3\", \"prompt\":\"" + prompt + "\", \"n\":1, \"size\":\"1024x1024\"}";
        RequestBody requestBody = RequestBody.create(json, MediaType.parse("application/json"));

        Request request = new Request.Builder()
                .url(OPENAI_API_ENDPOINT)
                .header("Content-Type", "application/json")
                .header("Authorization", "Bearer " + OPENAI_API_KEY)
                .post(requestBody)
                .build();

        try {
            Response response = client.newCall(request).execute();
            if (response.isSuccessful()) {
                String responseBody = response.body().string();
                // 实际项目建议用JSON解析库提取图片URL,比如用org.json:
                // JSONObject responseObj = new JSONObject(responseBody);
                // return responseObj.getJSONArray("data").getJSONObject(0).getString("url");
                return responseBody;
            } else {
                System.out.println("OpenAI API request failed with response: " + response.body().string());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }
}

如果要精准获取图片URL,记得引入JSON解析库,解析响应体里的data[0].url字段,上面代码里注释了用org.json库的示例。

内容的提问来源于stack exchange,提问作者jun wang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 09:00:20