Laravel OpenAI客户端调用gpt-3.5-turbo返回列表时抛出异常
问题原因及解决方案
核心问题
你用错了API端点。gpt-3.5-turbo是聊天模型,必须调用chat()->create()方法,而非用于文本补全模型的completions()->create()。
报错根源
当用completions()->create()调用聊天模型时,OpenAI API返回的响应结构和文本补全接口完全不匹配,没有库预期的choices数组,导致解析时触发Undefined array key "choices"和array_map()类型错误。
修正后的代码
use OpenAI\Laravel\Facades\OpenAI; $response = OpenAI::chat()->create([ 'model' => 'gpt-3.5-turbo', 'messages' => [ ['role' => 'user', 'content' => 'Top 3 richest people'] ] ]); // 提取返回结果示例 foreach ($response->choices as $choice) { echo $choice->message->content; }
关键注意点
- 聊天模型请求用
messages数组,每个元素需包含role(可选值:user/assistant/system)和content字段,不能用文本补全接口的prompt参数。 - 响应的
choices数组中,每个元素是message对象,需通过$choice->message->content获取返回内容。
内容的提问来源于stack exchange,提问作者Mr.KING
相关产品推荐
相关产品推荐

