使用OkHttp然后编辑RequestBody无法发送ChatGPT的chat请求并且显示没有选择model
个人对于ChatGPT的总结
·
概念
如果你使用的是OkHttp的化,然后保证所有的ChatGPT的Request请求参数都是正确的话,然后ChatGPT那边返回的状态是400然后显示的错误是model没有选择的话,就像下面一样:
400
{
"error": {
"message": "you must provide a model parameter",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
错误的请求格式
Proxy proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1",7890));
RequestBody requestBody =new FormBody.Builder()
.add("model","gpt-3.5-turbo")
.add("messages","[{'role': 'user', 'content': 'ChatGPT是什么'}]")
.add("temperature","0.7")
.build();
log.info(requestBodyToString(requestBody));
Request request = new Request.Builder()
.addHeader("Content-Type","application/json")
.addHeader("Authorization","Bearer keys")//对应的api keys
.post(requestBody)
.url("https://api.openai.com/v1/chat/completions")
.build();
log.info(request.toString());
OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.proxy(proxy)
.build();
Response execute = okHttpClient.newCall(request).execute();
System.out.println(execute.code());
String string = execute.body().string();
System.out.println(string);
可以发送请求的方式
String API_URL = "https://api.openai.com/v1/chat/completions";
OkHttpClient client = new OkHttpClient.Builder()
.proxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890)))
.build();
MediaType mediaType = MediaType.parse("application/json");
String requestBody = "{\n" +
" \"model\": \"gpt-3.5-turbo\",\n" +
" \"messages\": [{\"role\": \"user\", \"content\": \"解释下什么是ChatGPT\"}],\n" +
" \"temperature\": 0.7\n" +
" }";
Request request = new Request.Builder()
.url(API_URL)
.post(RequestBody.create(mediaType, requestBody))
.addHeader("Authorization", "Bearer keys")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
请求成功之后的结果为
{
"id":"chatcmpl-7HO55p4na7a2P5Lh9Now2MWeJpANU",
"object":"chat.completion",
"created":1684378499,
"model":"gpt-3.5-turbo-0301",
"usage":{"prompt_tokens":18,"completion_tokens":183,"total_tokens":201},
"choices":[
{
"message":{
"role":"assistant",
"content":"ChatGPT是一个基于人工智能技术的聊天机器人,可以与用户进行自然语言交互。它可以回答各种问题,提供各种信息和服务,包括天气、新闻、娱乐、旅游、健康等等。ChatGPT使用了先进的自然语言处理技术,可以理解人类语言的含义和意图,同时还可以学习和改进自己的回答,以提供更准确、更有帮助的答案。ChatGPT可以在多个平台上使用,包括网站、移动应用程序和社交媒体平台。"
},
"finish_reason":"stop","index":0
}
]
}
结论
就是使用RequestBody的时候你的请求格式是加载不进去的,那么有可能就会显示错误或者请求参数有问题

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)