使用 Java 发送 HTTP 请求调用 OpenAI 音频转录 API

当您想要使用 Java 发送 HTTP 请求调用 OpenAI 音频转录 API 时,可以遵循以下步骤:

获取 OpenAI API 密钥:在 OpenAI 网站上注册并创建 API 密钥。
创建 Java 项目:使用 Eclipse、IntelliJ IDEA 或其他 Java 开发工具创建一个新的 Java 项目。
添加依赖项:在项目中添加相关依赖项,例如 Apache HttpClient 或 HttpURLConnection 类。
构造 HTTP 请求:根据 OpenAI API 文档中所提供的格式构造 HTTP 请求。例如,请求需要包括音频文件 URL 和所选的语言模型。
发送请求并解析响应:使用 Java 中的 HttpClient 或 HttpURLConnection 类发送 HTTP 请求,并解析响应。OpenAI API 的响应通常是一个 JSON 格式字符串,您可以使用 Java 中的 JSON 库(例如 Jackson 或 Gson)将其解析成 Java 对象。
以下是一个使用 Java 中的 HttpURLConnection 类发送 POST 请求到 OpenAI 音频转录 API 的示例代码:

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class OpenAIRequest {
    private final String USER_AGENT = "Mozilla/5.0";
    private final String API_KEY = "YOUR_API_KEY_HERE";
    
    public static void main(String[] args) throws Exception {
        OpenAIRequest request = new OpenAIRequest();
        request.sendPost();
    }
    
    // HTTP POST 请求
    public void sendPost() throws Exception {
        String url = "https://api.openai.com/v1/audio/transcriptions";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 添加请求头
        con.setRequestMethod("POST");
        con.setRequestProperty("User-Agent", USER_AGENT);
        con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        con.setRequestProperty("Authorization", "Bearer " + API_KEY);
        con.setRequestProperty("Content-Type", "application/json");
        
        // 请求参数
        String urlParameters = "{\"audio_url\":\"http://your-audio-file-url.com\",\"model\":\"davinci\"}";

        // 发送 POST 请求
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();

        // 获取响应
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 打印响应结果
        System.out.println(response.toString());
    }
}


请注意,您需要使用自己的 OpenAI API 密钥替换 YOUR_API_KEY_HERE,并在请求参数中提供音频文件的 URL 和所选模型(这里使用的是 "davinci" 模型)。

posted @ 2023-04-07 14:12  半抹灯芯  阅读(148)  评论(0编辑  收藏  举报