PDF, áudio e saída estruturada no Gemini
Esta página explica como enviar PDF e áudio ao Gemini e como obter saída estruturada. IDs de modelo e endereços de endpoint estão na visão geral da família Gemini.
PDF e áudio
O endpoint nativo recebe o arquivo codificado em base64 por inline_data, com mime_type como application/pdf, audio/wav, audio/mp3 etc.:
gemini_pdf.py
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"), "Qual é o valor total desta fatura?"],
)
print(resp.text)No endpoint compatível com OpenAI, o PDF usa o bloco de conteúdo file (file_data no formato data:application/pdf;base64,...), e o áudio usa o bloco de conteúdo input_audio ({"data": "<base64>", "format": "wav"}).
Saída estruturada
No endpoint nativo, defina responseMimeType e responseSchema em generationConfig:
gemini_json_schema.py
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="Um taco e uma bola custam juntos 1,10 dólar. O taco custa 1 dólar a mais que a bola. Quanto custa a bola?",
config=types.GenerateContentConfig(response_mime_type="application/json", response_schema=Price),
)
print(resp.parsed)No endpoint compatível com OpenAI, use response_format: {"type": "json_schema", ...}; o formato está em Saída estruturada.
Outros erros estão em Erros comuns.
Última atualização em