查看文档后,看来多轮聊天仅针对接收文本提示进行了优化,但显然这是在许多人工智能产品(Gemini、Claude、ChatGPT 等)中实现的。
那么,我在这里错过了什么?使用 Vertex / Gemini 1.5 管理/支持多回合、多模式对话的正确方法是什么?
startChat
方法开始多轮聊天。 // To generate text output, call generateContent with the text and image
const result = await model.generateContent([prompt, imagePart]);
vertexai-preview
库("firebase": "^10.12.2",
的一部分)包当开始新的聊天会话时,您提交带有用户/模型定义部分的历史记录,这些部分可以是文本/图像/视频等。
如果我们修改您发送的文档链接中的示例:
const chat = model.startChat({
history: [
{
role: "user",
parts: [
{ text: "Hello, I have 2 dogs in my house." },
{
inlineData: {
mimeType: "image/jpeg",
data: `base64-encoded-image-data`,
},
},
],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
generationConfig: {
maxOutputTokens: 100,
},
});
在这里您可以看到如何将 2 个部分包含到单个响应中。
确切的部分定义 - https://firebase.google.com/docs/reference/js/vertexai-preview.content.md#content_interface
向已开始的聊天转换提交回复时也可以执行相同的操作 - https://firebase.google.com/docs/reference/js/vertexai-preview.chatsession#chatsessionsendmessage