我想将图像文件上传到我的 OpenAI 助手线程。我特别希望该文件不被
code_interpreter
或 file_search
使用。如何才能实现这一目标?
为了让您的助手处理图像文件,您需要执行三个步骤。
下面的代码使用了 OpenAI 的 beta API 作为助手!
注意:我使用流式传输来运行线程。
async processImageFile(
assistantId: string,
threadId: string,
text: string,
fileContent: Buffer,
fileName: string,
openAI: OpenAI,
): Promise<AssistantStream> {
// Step 1: Upload file with purpose 'vision'
const file = await openAI.files.create({ file: await toFile(fileContent, fileName), purpose: 'vision' });
// Step 2: Create message referencing the image file
const message = await openAI.beta.threads.messages.create(threadId, {
role: 'user',
content: [
{ type: 'image_file', image_file: { file_id: file.id } },
{ type: 'text', text },
],
});
// Step 3: Create new run & stream it
return openAI.beta.threads.runs.stream(threadId, { assistant_id: assistantId });
}