如何使用 Gemini / Vertex AI 将非文本部分添加到多轮聊天中?

问题描述 投票:0回答:1

概述

查看文档后,看来多轮聊天仅针对接收文本提示进行了优化,但显然这是在许多人工智能产品(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]);

堆栈

  • Javascript
  • vertexai-preview
    库(
    "firebase": "^10.12.2",
    的一部分)包
javascript firebase google-cloud-vertex-ai google-gemini
1个回答
0
投票

当开始新的聊天会话时,您提交带有用户/模型定义部分的历史记录,这些部分可以是文本/图像/视频等。

如果我们修改您发送的文档链接中的示例:

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

© www.soinside.com 2019 - 2024. All rights reserved.