使用媒体文件进行提示


在 ai.google.dev 上查看 在 Google Colab 中运行 查看 GitHub 上的源代码

Gemini API 支持使用文本、图片、音频和视频数据进行提示(也称为多模态提示),这意味着您可以在提示中包含这些类型的媒体文件。对于小型文件,您可以在提供提示时直接将 Gemini 模型指向本地文件。在将较大的文件添加到提示中之前,请先使用 File API 上传较大的文件。

File API 允许每个项目存储最多 20 GB 的文件,每个文件的大小不超过 2 GB。文件会存储 48 小时,在这段时间内可以使用您的 API 密钥访问以生成,但无法通过 API 下载。Files API 在提供 Genmini API 的所有区域都是免费的。

File API 会处理可用于通过 model.generateContentmodel.streamGenerateContent 生成内容的输入。如需了解有效文件格式(MIME 类型)和支持的模型,请参阅支持的文件格式

本指南介绍了如何使用 File API 上传媒体文件,以及如何将它们添加到对 Gemini API 的 GenerateContent 调用中。如需了解详情,请参阅代码示例

支持的文件格式

Gemini 模型支持使用多种文件格式进行提示。本部分介绍了使用常规媒体格式(尤其是图片、音频、视频和纯文本文件)进行提示时的注意事项。您只能将媒体文件用于针对特定模型版本进行提示,如下表所示。

模型 Images 音频 视频 纯文本
Gemini 1.5 Pro(008 及更高版本) ✔(最多 3600 个图片文件)
Gemini Pro Vision ✔(最多 16 个图片文件)

图片格式

您可以通过 gemini-pro-visiongemini-1.5-pro 模型使用图片数据进行提示。使用图片进行提示时,需要遵循以下限制和要求:

  • 图片必须采用以下任一图片数据 MIME 类型
    • PNG - image/png
    • JPEG - image/jpeg
    • WEBP - image/webp
    • HEIC - image/heic
    • HEIF - image/heif
  • gemini-pro-vision 最多 16 张单独的图片,gemini-1.5-pro 最多 3600 张图片
  • 图片中的像素数没有特定限制;不过,较大的图片会缩小以适应最大分辨率 3072 x 3072,同时保持其原始宽高比。

音频格式

您可以通过 gemini-1.5-pro 模型使用音频数据进行提示。使用音频进行提示时,需要遵循以下限制和要求:

  • 音频数据支持以下常见音频格式 MIME 类型
    • WAV - 音频/wav
    • MP3 - 音频/mp3
    • AIFF - 音频/aiff
    • AAC - 音频/aac
    • OGG Vorbis - 音频/ogg
    • FLAC - audio/flac
  • 单个提示中支持的音频数据长度上限为 9.5 小时。
  • 系统会将音频文件重新采样到 16 Kbps 的数据分辨率,并将多个声道的音频合并为一个声道。
  • 单个提示中的音频文件数量没有特定限制;但是,单个提示中所有音频文件的总长度不能超过 9.5 小时。

视频格式

您可以通过 gemini-1.5-pro 模型使用视频数据进行提示。

  • 以下常见视频格式 MIME 类型支持视频数据:

    • video/mp4
    • video/mpeg
    • 视频/MOV
    • 视频/avi
    • video/x-flv
    • 视频/mpg
    • 视频/webm
    • 视频/WMV
    • 视频/3GPP
  • File API 服务以 1 帧/秒 (FPS) 的速度将视频采样到图像中,并且可能会发生变化以提供最佳推理质量。无论分辨率和画质如何,每张图片都需要占用 258 个词元。

纯文本格式

File API 支持上传具有以下 MIME 类型的纯文本文件:

  • text/plain
  • text/html
  • text/css
  • text/javascript
  • application/x-javascript
  • 文字/x-typescript
  • application/x-typescript
  • 文本/csv
  • 文本/Markdown
  • text/x-python
  • application/x-python-code
  • application/json
  • text/xml
  • 应用/rtf
  • 文本/RTF

对于 MIME 类型不在列表中的纯文本文件,您可以尝试手动指定上述 MIME 类型之一。