Gemini PDF、音频与结构化输出
本页说明如何向 Gemini 传入 PDF 与音频,以及如何获取结构化输出。模型 ID 与接口地址见 Gemini 系列概览。
PDF 与音频
原生接口通过 inline_data 传入 base64 编码的文件,mime_type 为 application/pdf、audio/wav、audio/mp3 等:
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.ai/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"), "这张发票的总金额是多少?"],
)
print(resp.text)OpenAI 兼容接口中,PDF 使用 file 内容块(file_data 为 data:application/pdf;base64,...),音频使用 input_audio 内容块({"data": "<base64>", "format": "wav"})。
结构化输出
原生接口在 generationConfig 中设置 responseMimeType 与 responseSchema:
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.ai/gemini"},
)
resp = client.models.generate_content(
model="google/gemini-3.5-flash",
contents="球拍和球共 1.10 美元,球拍比球贵 1 美元,球多少钱?",
config=types.GenerateContentConfig(response_mime_type="application/json", response_schema=Price),
)
print(resp.parsed)OpenAI 兼容接口使用 response_format: {"type": "json_schema", ...},写法见结构化输出。
其他报错见常见报错。
最后更新于