使用 Vertex AI in Firebase SDK 从应用中调用 Vertex AI Gemini API 时,您可以提示 Gemini 模型根据多模态输入生成文本。多模态提示可以包含多种模态(或输入类型),例如文本以及图片、PDF、视频和音频。
对于输入的非文本部分(例如媒体文件),您需要使用受支持的文件类型、指定受支持的 MIME 类型,并确保您的文件和多模式请求符合要求并遵循最佳实践。
本页面介绍以下内容:
有关以下文件输入支持的 MIME 类型、最佳实践和限制的详细信息:
图片 | 视频 | 音频 | 文档(例如 PDF 文件)。
在多模态请求中提供文件的选项
在每个多模态请求中,您都必须提供以下信息:
文件的
mimeType
。请参阅本页面的相应部分,了解每个输入文件支持的 MIME 类型。文件。您可以使用文件的网址 / URI 提供文件,也可以将文件作为内嵌数据提供。
您可以在请求中提供的文件大小和数量取决于输入文件类型、提供文件的方式和使用的模型(如需了解详情,请参阅本页面上每种输入文件类型对应的部分)。
方法 1:使用网址或 URI 提供文件
以下是可接受的网址或 URI 类型:
Cloud Storage for Firebase 存储分区网址:文件的网址必须是公开的,或者已登录的用户或客户端必须对文件拥有足够的访问权限。详细了解 Cloud Storage for Firebase 的优势、网址要求和代码示例。
Google Cloud Storage 存储分区网址:文件的网址必须是公开的。
浏览器/HTTP 网址:文件网址必须可公开读取。示例包括媒体托管网站的网址、直接显示媒体的网址(而非托管媒体的网页),或已发布的 Google 云端硬盘或 Google Workspace 文件。
YouTube 视频网址:YouTube 视频必须设为公开或不公开。
如需详细了解对网址和 URI 的要求,请参阅 Google Cloud 文档。
方法 2:以内嵌数据的形式提供文件
关于作为内嵌数据提供的文件,请注意以下几点:
由于请求总大小限制为 20 MB,因此只能将小文件作为内嵌数据发送。
文件会在传输过程中编码为 base64(这会增加文件大小)。
如需查看有关如何将文件作为内嵌数据添加的示例,请参阅使用 Gemini API 根据多模态提示生成文本。
图片:要求、最佳实践和限制
图片:要求
在本部分中,您将了解图片支持的 MIME 类型以及每项请求的限制。
支持的 MIME 类型
多模态 Gemini 模型支持以下图片 MIME 类型:
图片 Mime 类型 | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PNG - image/png |
|||
JPEG - image/jpeg |
|||
WebP - image/webp |
每个请求的限制
对图片中的像素数量没有具体限制。不过,较大的图片会被缩小和填充,以适应最大分辨率 (3072 x 3072),同时保留其原始宽高比。
问题请求中允许的图片文件数量上限如下:
- Gemini 1.0 Pro Vision:16 张图片
- Gemini 1.5 Flash 和 Gemini 1.5 Pro:3,000 张图片
图片:令牌化
以下是图片的 token 计算方式:
- Gemini 1.0 Pro Vision:每张图片占 258 个 token。
- Gemini 1.5 Flash 和 Gemini 1.5 Pro:
- 如果图片的两个维度均小于或等于 384 像素,则使用 258 个 token。
- 如果图片的某个维度大于 384 像素,则图片会被剪裁成图块。每个图块大小默认为最小维度(宽度或高度)除以 1.5。如有必要,系统会调整每个图块,使其不小于 256 像素且不大于 768 像素。随后系统会将每个图块的大小调整为 768x768,并使用 258 个 token。
图片:最佳实践
使用图片时,请遵循以下最佳实践和信息以获得最佳结果。
- 如果您想要检测图片中的文本,则使用包含单张图片的提示可生成比包含多张图片的提示更好的结果。
- 如果您的问题包含单张图片,请在请求中将该图片放在文本问题前面。
- 如果您的提示包含多个图片,并且您希望稍后在提示中引用这些图片,或者希望模型在模型响应中引用这些图片,则在图片之前为每张图片提供索引会有所帮助。对于索引,请使用
或a
b
c
。以下是在提示中使用已编入索引的图片的示例:image 1
image 2
image 3
image 1
image 2 image 3 Write a blogpost about my day using image 1 and image 2. Then, give me ideas for tomorrow based on image 3. - 使用分辨率较高的图片,效果会更好。
- 在提示中添加一些示例。
- 请先将图片旋转到适当方向,然后再将其添加到提示中。
- 避免使用模糊的图片。
图片:限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 内容审核:模型拒绝对违反我们安全政策的图片提供回答。
- 空间推理:模型在定位图片中的文本或对象时并不精确。它们可能只返回对象数的近似值。
- 医疗用途:模型不适合解读医学图片(例如 X 光片和 CT 扫描),也不适合提供医学建议。
- 人物识别:模型不应用于识别图片中并非名人的人。
- 准确率:模型在解读低画质、旋转或分辨率极低的图片时可能会产生幻觉或出错。在解读图片文档中的手写文本时,模型也可能会产生幻觉。
视频:要求、最佳实践和限制
视频:要求
在本部分中,您将了解视频的支持 MIME 类型和每次请求的限制。
支持的 MIME 类型
多模态 Gemini 模型支持以下视频 MIME 类型:
视频 MIME 类型 | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
FLV - video/x-flv |
|||
MOV - video/quicktime |
|||
MPEG - video/mpeg |
|||
MPEGPS - video/mpegps |
|||
MPG - video/mpg |
|||
MP4 - video/mp4 |
|||
WEBM - video/webm |
|||
WMV - video/wmv |
|||
3GPP - video/3gpp |
每个请求的限制
问题请求中允许的视频文件数量上限如下:
- Gemini 1.0 Pro Vision:1 个视频文件
- Gemini 1.5 Flash 和 Gemini 1.5 Pro:10 个视频文件
视频:令牌化
以下是视频的 token 计算方式:
- 所有多模态 Gemini 模型:视频采用
1 帧/秒 (fps) 进行采样。每个视频帧占 258 个词元。 - Gemini 1.5 Flash 和 Gemini 1.5 Pro:音轨随视频帧一起进行编码。音轨还会拆分为
时长 1 秒的主干 ,每个主干占 32 个词元。视频帧和音频词元与其时间戳交错在一起。时间戳表示为 7 个词元。
视频:最佳实践
使用视频时,请遵循以下最佳实践和信息以获得最佳结果:
- 如果提示包含单个视频,请将该视频放在文本提示前面。
- 如果需要对包含音频的视频进行时间戳本地化,请让模型生成
MM:SS
格式的时间戳,其中前两位数表示分钟,后两位数表示秒。对于询问时间戳的问题,请使用相同的格式。 如果您使用的是 Gemini 1.0 Pro Vision,请注意以下事项:
- 每个提示最多使用一个视频。
- 该模型仅处理视频前两分钟内的信息。
- 该模型将视频作为视频中的非连续图片帧处理。音频不包括音频。如果您发现该模型从视频中缺少某些内容,请尝试缩短视频,以便该模型捕获更多视频内容。
- 该模型不会处理任何音频信息或时间戳元数据。因此,在需要音频输入(例如为音频添加字幕)或时间相关信息(例如速度或节奏)的用例中,模型可能表现不佳。
视频:限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 内容审核:模型拒绝对违反我们安全政策的视频提供回答。
- 非语音声音识别:支持音频的模型可能会在识别非语音声音时犯错。
- 高速运动:由于固定的
1 帧/秒 (fps) 采样率,因此模型在理解视频中的高速运动时可能会出错。 - 转写标点符号:(如果使用 Gemini 1.5 Flash)模型可能会返回不包含标点符号的转写内容。
音频:要求和限制
音频:要求
在本部分中,您将了解音频的支持 MIME 类型和每个请求的限制。
支持的 MIME 类型
多模态 Gemini 模型支持以下音频 MIME 类型:
音频 MIME 类型 | Gemini 1.5 Flash | Gemini 1.5 Pro |
---|---|---|
AAC - audio/aac |
||
FLAC - audio/flac |
||
MP3 - audio/mp3 |
||
MPA - audio/m4a |
||
MPEG - audio/mpeg |
||
MPGA - audio/mpga |
||
MP4 - audio/mp4 |
||
OPUS - audio/opus |
||
PCM - audio/pcm |
||
WAV - audio/wav |
||
WEBM - audio/webm |
每个请求的限制
您最多可以在提示请求中包含
音频:限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 非语音声音识别:支持音频的模型可能会在识别非语音声音时犯错。
- 仅音频的时间戳:如需为仅音频文件准确生成时间戳,您必须在
generation_config
中配置audio_timestamp
参数。 - 转写标点符号:(如果使用 Gemini 1.5 Flash)模型可能会返回不包含标点符号的转写内容。
文档(例如 PDF 文件):要求、最佳实践和限制
文件:要求
在本部分中,您将了解文档(例如 PDF 文件)支持的 MIME 类型以及每次请求的限制。
支持的 MIME 类型
多模态 Gemini 模型支持以下文档 MIME 类型:
MIME 类型文档 | Gemini 1.5 Flash | Gemini 1.5 Pro | Gemini 1.0 Pro Vision |
---|---|---|---|
PDF - application/pdf |
|||
文本 - text/plain |
每个请求的限制
PDF 文件被视为图片,因此 PDF 文件的单页被视为一张图片。问题中允许的页面数量取决于模型可以支持的图片数量:
- Gemini 1.0 Pro Vision:16 页
- Gemini 1.5 Pro 和 Gemini 1.5 Flash:1,000 页
文档:令牌化
PDF 词元化
PDF 文件被视为图片,因此 PDF 文件的每页都会以与图片相同的方式进行词元化。
此外,PDF 的费用遵循 Gemini 图片价格。 例如,如果您在 Gemini API 调用中包含一个两页的 PDF 文件,则会产生处理两张图片的输入费用。
纯文本词元化
纯文本文档会被词元化为文本。例如,如果您在 Gemini API 调用中包含一个包含 100 个字符的纯文本文档,则会产生处理 100 个字符的输入费用。
文档:最佳实践
使用 PDF 文件时,请遵循以下最佳实践和信息以获得最佳结果:
- 如果提示包含单个 PDF 文件,请在请求中将该 PDF 文件放在文本提示前面。
- 如果您的文档很长,请考虑将其拆分为多个 PDF 进行处理。
- 使用以文本形式呈现的 PDF 文件,而不是使用扫描图片中的文本。此格式可确保文本是机器可读的,与扫描的图片 PDF 相比,文本更易于模型修改、搜索和操作。在使用合同等包含大量文本的文档时,这样可以提供最佳结果。
文档:限制
虽然多模态 Gemini 模型在许多多模态应用场景中表现出强大功能,但了解模型的限制非常重要:
- 空间推理:模型在定位 PDF 中的文本或对象时并不精确。它们可能只返回对象数的近似值。
- 准确性:模型在解读 PDF 文档中的手写文字时可能会产生幻觉。