![]() |
![]() |
![]() |
Die Gemini API unterstützt Prompts mit Text-, Bild-, Audio- und Videodaten, was auch als multimodale Prompts bezeichnet wird. Das bedeutet, dass Sie diese Arten von Mediendateien in Ihre Prompts aufnehmen können. Bei kleinen Dateien können Sie das Gemini-Modell direkt auf eine lokale Datei verweisen, wenn Sie einen Prompt eingeben. Lade größere Dateien mit der File API hoch, bevor du sie in Prompts einfügst.
Mit der File API können Sie bis zu 20 GB an Dateien pro Projekt speichern, wobei jede Datei nicht größer als 2 GB ist. Dateien werden 48 Stunden gespeichert und können innerhalb dieses Zeitraums mit Ihrem API-Schlüssel generiert werden. Sie können nicht von der API heruntergeladen werden. Die Files API ist in allen Regionen, in denen die Gemini API verfügbar ist, kostenlos verfügbar.
Die File API verarbeitet Eingaben, die zum Generieren von Inhalten mit model.generateContent
oder model.streamGenerateContent
verwendet werden können. Informationen zu gültigen Dateiformaten (MIME-Typen) und unterstützten Modellen finden Sie unter Unterstützte Dateiformate.
In diesem Leitfaden wird beschrieben, wie du mit der File API Mediendateien hochlädst und sie in einen GenerateContent
-Aufruf an die Gemini API einfügst. Weitere Informationen finden Sie in den Codebeispielen.
Hinweis: Projekt und API-Schlüssel einrichten
Bevor Sie die Gemini API (oder deren File API) aufrufen, müssen Sie Ihr Projekt einrichten und Ihren API-Schlüssel konfigurieren.
Prompts mit Bildern
In dieser Anleitung laden Sie mithilfe der File API ein Beispielbild hoch und verwenden es dann zum Generieren von Inhalten.
Bilddatei hochladen
Informationen zum Hochladen Ihrer eigenen Datei finden Sie im Abschnitt „Anhang“.
Bereiten Sie ein Beispielbild zum Hochladen vor:
curl -o image.jpg https://storage.googleapis.com/generativeai-downloads/images/jetpack.jpg
Laden Sie diese Datei mit
media.upload
hoch, damit Sie mit anderen API-Aufrufen darauf zugreifen können:sample_file = genai.upload_file(path="image.jpg", display_name="Sample drawing") print(f"Uploaded file '{sample_file.display_name}' as: {sample_file.uri}")
Der response
zeigt, dass das hochgeladene Bild mit der angegebenen display_name
gespeichert wird und eine uri
hat, um in Gemini API-Aufrufen auf die Datei zu verweisen. Mit response
können Sie verfolgen, wie hochgeladene Dateien URIs zugeordnet werden.
Je nach Anwendungsfall können Sie die URIs in Strukturen wie dict
oder einer Datenbank speichern.
Metadaten der Bilddatei abrufen
Nach dem Hochladen der Datei können Sie prüfen, ob die API die Datei erfolgreich gespeichert hat und ihre Metadaten abrufen kann. Dazu rufen Sie files.get
über das SDK auf.
Mit dieser Methode können Sie die Metadaten für eine hochgeladene Datei abrufen, die dem Google Cloud-Projekt zugeordnet ist, das mit Ihrem API-Schlüssel verknüpft ist. Nur die name
(und damit auch die uri
) sind eindeutig. Verwenden Sie display_name
nur dann, um Dateien zu identifizieren, wenn Sie die Eindeutigkeit selbst verwalten.
file = genai.get_file(name=sample_file.name)
print(f"Retrieved file '{file.display_name}' as: {sample_file.uri}")
Inhalte mit der hochgeladenen Bilddatei erstellen
Nach dem Hochladen des Bildes können Sie GenerateContent
-Anfragen stellen, die in der Antwort auf uri
verweisen (entweder durch Hochladen der Datei oder direkt durch Abrufen der Metadaten der Datei).
In diesem Beispiel erstellen Sie einen Prompt, der mit Text beginnt, gefolgt vom URI-Verweis für die hochgeladene Datei:
# The Gemini 1.5 models are versatile and work with multimodal prompts
model = genai.GenerativeModel(model_name="models/gemini-1.5-flash")
response = model.generate_content([sample_file, "Describe the image with a creative description."])
Markdown(">" + response.text)
Bilddatei löschen
Dateien werden nach 48 Stunden automatisch gelöscht. Sie können sie auch manuell mit files.delete
über das SDK löschen.
genai.delete_file(sample_file.name)
print(f'Deleted {sample_file.display_name}.')
Prompts mit Videos
In dieser Anleitung laden Sie ein Beispielvideo mithilfe der File API hoch und generieren damit Inhalte.
Videodatei hochladen
Die Gemini API akzeptiert direkt Videodateiformate. In diesem Beispiel wird der Kurzfilm „Big Buck Bunny“ verwendet.
"Big Buck Bunny" ist (c) Copyright 2008, Blender Foundation / www.bigbuckbunny.org und unter der Creative Commons Attribution 3.0 License lizenziert.
Informationen zum Hochladen Ihrer eigenen Datei finden Sie im Abschnitt „Anhang“.
Bereite die Beispielvideodatei für den Upload vor:
wget https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4
Laden Sie diese Datei mit
media.upload
hoch, damit Sie mit anderen API-Aufrufen darauf zugreifen können:video_file_name = "BigBuckBunny_320x180.mp4" print(f"Uploading file...") video_file = genai.upload_file(path=video_file_name) print(f"Completed upload: {video_file.uri}")
Uploadstatus der Videodatei prüfen
Prüfen Sie, ob die Videodatei in die API hochgeladen wurde. Rufen Sie dazu die Methode files.get
über das SDK auf.
Videodateien haben das Feld State
aus der File API. Wenn ein Video hochgeladen wird, hat es den Status PROCESSING
, bis es für die Inferenz bereit ist. Für die Modellinferenz können nur ACTIVE
-Dateien verwendet werden.
import time
while video_file.state.name == "PROCESSING":
print('.', end='')
time.sleep(10)
video_file = genai.get_file(video_file.name)
if video_file.state.name == "FAILED":
raise ValueError(video_file.state.name)
Metadaten der Videodatei abrufen
Sie können die Metadaten der hochgeladenen Videodatei jederzeit abrufen, indem Sie die Methode files.get
über das SDK aufrufen.
Mit dieser Methode können Sie die Metadaten für eine hochgeladene Datei abrufen, die dem Google Cloud-Projekt zugeordnet ist, das mit Ihrem API-Schlüssel verknüpft ist. Nur die name
(und damit auch die uri
) sind eindeutig. Verwenden Sie display_name
nur dann, um Dateien zu identifizieren, wenn Sie die Eindeutigkeit selbst verwalten.
file = genai.get_file(name=video_file.name)
print(f"Retrieved file '{file.display_name}' as: {video_file.uri}")
Inhalte mit der hochgeladenen Videodatei erstellen
Nach dem Hochladen des Videos kannst du GenerateContent
-Anfragen stellen, die in der Antwort auf uri
verweisen (entweder durch Hochladen der Datei oder durch direktes Abrufen der Metadaten der Datei).
Prüfen Sie, ob Sie den Uploadstatus der Videodatei überprüft haben (siehe Abschnitt oben), bevor Sie eine Inferenz für das Video ausführen.
# Create the prompt.
prompt = "Describe this video."
# The Gemini 1.5 models are versatile and work with multimodal prompts
model = genai.GenerativeModel(model_name="models/gemini-1.5-flash")
# Make the LLM request.
print("Making LLM inference request...")
response = model.generate_content([video_file, prompt],
request_options={"timeout": 600})
print(response.text)
Videodatei löschen
Dateien werden nach 48 Stunden automatisch gelöscht. Sie können sie auch manuell mit files.delete
über das SDK löschen.
genai.delete_file(file_response.name)
print(f'Deleted file {file_response.uri}')
Unterstützte Dateiformate
Gemini-Modelle unterstützen Prompts in mehreren Dateiformaten. In diesem Abschnitt werden Überlegungen zur Verwendung allgemeiner Medienformate für Prompts erläutert, insbesondere Bild-, Audio-, Video- und Nur-Text-Dateien. Sie können Mediendateien nur bei bestimmten Modellversionen für Prompts verwenden, wie in der folgenden Tabelle gezeigt.
Modell | Bilder | Audio | Video | Nur-Text |
---|---|---|---|---|
Gemini 1.5 Pro (Version 008 und höher) | ✔ (max. 3.600 Bilddateien) | ✔ | ✔ | ✔ |
Bildformate
Sie können Bilddaten für Prompts in Gemini 1.5-Modellen verwenden. Wenn Sie Bilder für Prompts verwenden, unterliegen sie den folgenden Einschränkungen und Anforderungen:
- Bilder müssen einem der folgenden MIME-Typen für Bilddaten entsprechen:
- PNG - image/png
- JPEG - image/jpeg
- WEBP - image/webp
- HEIC - image/heic
- HEIF - image/heif
- Maximal 3.600 Bilder für die Gemini 1.5-Modelle.
- Es gibt keine spezifischen Beschränkungen für die Anzahl der Pixel in einem Bild. Größere Bilder werden jedoch so verkleinert, dass sie eine maximale Auflösung von 3.072 × 3.072 erreichen und ihr ursprüngliches Seitenverhältnis erhalten bleibt.
Audioformate
Sie können Audiodaten für Prompts bei Gemini 1.5-Modellen verwenden. Wenn Sie Audio für Prompts verwenden, unterliegen sie den folgenden Einschränkungen und Anforderungen:
- Für Audiodaten werden die folgenden gängigen MIME-Typen für das Audioformat unterstützt:
- WAV – Audio/WAV
- MP3 – Audio/MP3
- AIFF – Audio/AIFF
- AAC – Audio/AAC
- OGG Vorbis – Audio/OGG
- FLAC – Audio/FLAC
- Die maximal unterstützte Länge von Audiodaten in einem einzelnen Prompt beträgt 9,5 Stunden.
- Audiodateien werden auf eine Datenauflösung von 16 Kbit/s neu gesampelt und mehrere Audiokanäle werden zu einem einzigen Kanal zusammengefasst.
- Die Anzahl der Audiodateien in einem einzelnen Prompt ist nicht begrenzt.Die Gesamtlänge aller Audiodateien in einem einzelnen Prompt darf jedoch 9, 5 Stunden nicht überschreiten.
Videoformate
Sie können Videodaten für Prompts mit den Gemini 1.5-Modellen verwenden.
Videodaten werden in den folgenden gängigen MIME-Typen für Videoformate unterstützt:
- video/mp4
- video/mpeg
- Video/MOV
- Video/AVI
- video/x-flv
- Video/mpg
- Video/WebM
- Video/WMV
- Video/3GPP
Der File API-Dienst analysiert Videos mit 1 Frame pro Sekunde (fps) und kann Änderungen unterliegen, um die beste Inferenzqualität zu erzielen. Einzelne Bilder benötigen unabhängig von Auflösung und Qualität 258 Tokens.
Nur-Text-Formate
Die File API unterstützt das Hochladen von Nur-Text-Dateien mit den folgenden MIME-Typen:
- text/plain
- text/html
- text/css
- text/javascript
- application/x-javascript
- Text/X-Typskript
- Anwendung/X-Typscript
- text/csv
- Text/Markierung
- Text/X-Python
- application/x-python-code
- application/json
- text/xml
- Anwendung/RTF
- Text/RTF
Für reine Textdateien mit einem MIME-Typ, der nicht in der Liste aufgeführt ist, können Sie versuchen, einen der oben genannten MIME-Typen manuell anzugeben.
Anhang: Dateien in Colab hochladen
Dieses Notebook verwendet die File API mit Dateien, die aus dem Internet heruntergeladen wurden. Wenn Sie dies in Colab ausführen und Ihre eigenen Dateien verwenden möchten, müssen Sie sie zuerst auf die Colab-Instanz hochladen.
Klicken Sie zuerst in der linken Seitenleiste auf Dateien und dann auf die Schaltfläche Hochladen:
Als Nächstes laden Sie diese Datei in die File API hoch. Geben Sie im Formular für die Codezelle unten den Dateinamen für die hochgeladene Datei ein und geben Sie einen entsprechenden Anzeigenamen für die Datei an. Führen Sie dann die Zelle aus.
my_filename = "gemini_logo.png" # @param {type:"string"}
my_file_display_name = "Gemini Logo" # @param {type:"string"}
my_file = genai.upload_file(path=my_filename,
display_name=my_file_display_name)
print(f"Uploaded file '{my_file.display_name}' as: {my_file.uri}")