英文:
OpenAI ChatGPT (GPT-3.5) API error: "Invalid URL (POST /chat/v1/completions)"
问题
我按照教程制作了一个ChatGPT应用程序,遇到了这个错误:
无法加载响应,原因是:
{'error': {
'message': '无效的URL(POST /chat/v1/completions)',
'type':'invalid_request_error',
'param':null,
'code':null
}
}
这是我的代码:
JSONObject jsonBody = new JSONObject();
try {
jsonBody.put("model", "gpt-3.5-turbo");
jsonBody.put("messages", question);
jsonBody.put("max_tokens", 4000);
jsonBody.put("temperature", 0);
} catch (JSONException e) {
throw new RuntimeException(e);
}
RequestBody body = RequestBody.create(jsonBody.toString(),JSON);
Request request = new Request.Builder()
.url("https://api.openai.com/chat/v1/completions")
.addHeader("Authorization", "Bearer HIDDEN_KEY")
.addHeader("Content-Type", "application/json")
.post(body)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
addResponse("由于" + e.getMessage() + "无法加载响应");
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
if(response.isSuccessful()){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(response.body().string());
JSONArray jsonArray = jsonObject.getJSONArray("choices");
String result = jsonArray.getJSONObject(0).getString("message");
addResponse(result.trim());
} catch (JSONException e) {
throw a RuntimeException(e);
}
}else{
addResponse("由于" + response.body().string() + "无法加载响应");
}
}
我尝试更改模型、在URL中删除"/chat/"并将提示直接发送到URL中。我是一个初学者制作应用程序和Java编程(但我在编程方面不是初学者),因此我明白也许这段代码不是很好,因为我几乎只是从教程中复制和粘贴代码。
谢谢你的帮助!
英文:
I followed a tutorial to make an chatgpt app and get this error :
Failed to load response due to {
'error' : {
'message' : 'Invalid URL (POST /chat/v1/completions)',
'type':'invalid_request_error',
'param':null,
'code':null
}
}
This is my code :
JSONObject jsonBody = new JSONObject();
try {
jsonBody.put("model", "gpt-3.5-turbo");
jsonBody.put("messages", question);
jsonBody.put("max_tokens", 4000);
jsonBody.put("temperature", 0);
} catch (JSONException e) {
throw new RuntimeException(e);
}
RequestBody body = RequestBody.create(jsonBody.toString(),JSON);
Request request = new Request.Builder()
.url("https://api.openai.com/chat/v1/completions")
.addHeader("Authorization", "Bearer HIDDEN_KEY")
.addHeader("Content-Type", "application/json")
.post(body)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
addResponse("Failed to load response due to pd "+e.getMessage());
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
if(response.isSuccessful()){
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(response.body().string());
JSONArray jsonArray = jsonObject.getJSONArray("choices");
String result = jsonArray.getJSONObject(0).getString("message");
addResponse(result.trim());
} catch (JSONException e) {
throw new RuntimeException(e);
}
}else{
addResponse("Failed to load response due to "+response.body().string());
}
}
I tried changing the model, removing the \chat\ in the URL and send the prompt directly in URL too
I'm new to app making and java coding (but I'm no beginner in coding) so I understand that maybe this code isn't great as I almost only copy and paste the code from the tutorial.
Thanks for your help !
答案1
得分: 0
更改此处的拼写错误:
https://api.openai.com/chat/v1/completions
...为:
https://api.openai.com/v1/chat/completions
请参阅文档。
英文:
You have a typo.
Change this...
https://api.openai.com/chat/v1/completions
...to this.
https://api.openai.com/v1/chat/completions
See the documentation.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论