Gemini: PDF, Audio und strukturierte Ausgabe
Diese Seite beschreibt, wie Sie PDFs und Audio an Gemini übergeben und strukturierte Ausgaben erhalten. Modell-IDs und Endpunktadressen finden Sie im Überblick zur Gemini-Reihe.
PDF und Audio
Am nativen Endpunkt übergeben Sie die base64-kodierte Datei über inline_data; mime_type ist z. B. application/pdf, audio/wav oder audio/mp3:
import os
from google import genai
from google.genai import types
client = genai.Client(
api_key=os.environ["OFOX_API_KEY"],
http_options={"api_version": "v1beta", "base_url": "https://api.ofox.io/gemini"},
)
pdf = open("invoice.pdf", "rb").read()
resp = client.models.generate_content(
model="google/gemini-3.5-flash",
contents=[types.Part.from_bytes(data=pdf, mime_type="application/pdf"), "Wie hoch ist der Gesamtbetrag dieser Rechnung?"],
)
print(resp.text)Am OpenAI-kompatiblen Endpunkt verwenden Sie für PDFs einen file-Inhaltsblock (file_data ist data:application/pdf;base64,...) und für Audio einen input_audio-Inhaltsblock ({"data": "<base64>", "format": "wav"}).
Strukturierte Ausgabe
Am nativen Endpunkt setzen Sie responseMimeType und responseSchema in generationConfig:
import os
from google import genai
from google.genai import types
from pydantic import BaseModel
class Price(BaseModel):
price: float
currency: str
client = genai.Client(
api_key=os.environ["OFOX_API_KEY"],
http_options={"api_version": "v1beta", "base_url": "https://api.ofox.io/gemini"},
)
resp = client.models.generate_content(
model="google/gemini-3.5-flash",
contents="Schläger und Ball kosten zusammen 1,10 Dollar. Der Schläger kostet 1 Dollar mehr als der Ball. Wie viel kostet der Ball?",
config=types.GenerateContentConfig(response_mime_type="application/json", response_schema=Price),
)
print(resp.parsed)Am OpenAI-kompatiblen Endpunkt verwenden Sie response_format: {"type": "json_schema", ...}; die Schreibweise finden Sie unter Strukturierte Ausgabe.
Weitere Fehler: Häufige Fehler.