我正在尝试使用“gpt-4-vision-preview”模型并启用批处理选项(因为目前的限制非常低)。这是我的消息对象(我不确定是否正确,但我尽量按照文档操作)。
let messages = batch.map(doc => { const imageUrl =`someurl`; const question = doc.questao; const answers = doc.respostas; let options = Object.keys(answers).map(key => `${key}: ${answers[key]}`).join('\n'); return { role: "user", content: [ { type: "text", text: `${question} \n ${options} \n ${questionExplanation}` }, { type: "image_url", image_url: { url: imageUrl } } ] }; });
这是我发送请求的方式。
const response = await openai.chat.completions.create({ model: "gpt-4-vision-preview", max_tokens: 4000, // 根据需要调整 messages: messages });
我在文档中没有看到任何地方提到是否可以这样做。
回答:
关于批处理,目前只能在一个文本消息中传递多张图片。
你的messages
应该看起来像这样
const PROMPT_MESSAGES = [ { role: "user", content: [ { type: "text", text: "<PROMPT MESSAGE>", }, ...batch.map((doc) => ({ type: "image_url", image_url: { url: "<IMAGE_URL>" detail: "low", }, })), ], },
可选:通过传递detail: "low"
,你可以指定模型使用512像素 x 512像素的低分辨率版本的图片,这将使用65个令牌的预算来表示图片。