格式化chatGPT API的URL时出错

r7s23pms  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(153)

我试图使一个程序,用户可以问GPT-3的问题,通过其API。
我试着让GPT-3的助手为我设计代码,但是有一些错误,因为它使用了2021年的过时信息。下面是我在阅读文档后修改的代码,但我仍然无法让它工作,它生成了一个'java.io.FileNotFoundException'错误。
我相信问题是与我的网址完成部分的格式,但我不确定。如果有人能告诉我什么是错的,这将是非常感谢。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class ChatGPT{

    public static void main(String[] args) throws IOException {
        String prompt = "What country has the most moderate weather?";
        String model = "text-curie-001";
        String apiKey = /*My API key*/;

        // Encode the prompt and construct the API request URL
        String url = String.format(
            "https://api.openai.com/v1/completions?model=%s&prompt=%s",
            model,
            URLEncoder.encode(prompt, "UTF-8")
        );

        // Create the request
        HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("GET");
        conn.setRequestProperty("Authorization", "Bearer " + apiKey);

        // Make the request and retrieve the response
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        StringBuilder responseBody = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) {
            responseBody.append(line);
        }
        reader.close();

        // Print the response
        System.out.println(responseBody);
    }
}

我知道我的API密钥是有效的,因为将url更改为下面所示的内容会输出相应的信息:

String url = String.format(
            "https://api.openai.com/v1/models/%s",
            model
        );

格式“/v1/模型/文本-居里-001”输出模型“文本-居里-001”的详细信息
格式“/v1/completions...”根据给定提示输出响应。

wgmfuz8q

wgmfuz8q1#

您应该使用“POST”而不是“GET”。

相关问题