OpenAI Chat Completions API请求报错400:R代码类型不符问题
解决R语言调用OpenAI Chat Completions API的400错误
问题出在messages参数的构造方式上。你当前用c("role" = "user", "content" = "Hello")创建的是一个命名向量,但OpenAI API要求messages是包含对象的数组,对应R里的嵌套列表结构。
修正后的代码:
# 构造正确的messages结构:列表中嵌套一个包含role和content的子列表 param <- list( model = "gpt-3.5-turbo", messages = list( list(role = "user", content = "Hello") ) ) result <- POST( "https://api.openai.com/v1/chat/completions", body = param, add_headers(Authorization = openai_secret_key), encode = "json" )
关键说明:
- 用
list()代替c()来创建消息对象,确保每个消息是一个独立的R列表(对应JSON中的object) - 外层再套一个
list(),让messages成为包含单个对象的数组(对应JSON中的array)
这样构造的参数会被正确序列化为你在Postman中使用的有效JSON格式:
{ "model":"gpt-3.5-turbo", "messages":[{ "role":"user", "content":"Hello" }] }
内容的提问来源于stack exchange,提问作者raph
相关产品推荐
相关产品推荐

