PDF Input Bytes
Send raw PDF bytes to a Vertex AI Claude agent and summarize the contents.
Pass raw PDF bytes with File(content=...).
Code
from pathlib import Path
from agno.agent import Agent
from agno.media import File
from agno.models.vertexai.claude import Claude
from agno.utils.media import download_file
pdf_path = Path(__file__).parent.joinpath("ThaiRecipes.pdf")
# Download the file using the download_file function
download_file(
"https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf", str(pdf_path)
)
agent = Agent(
model=Claude(id="claude-sonnet-4-6"),
markdown=True,
)
agent.print_response(
"Summarize the contents of the attached file.",
files=[
File(
content=pdf_path.read_bytes(),
),
],
)Usage
Complete the Vertex project, model enablement, permissions, and CLI prerequisites first. Use a region that serves Sonnet 4.6.
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateSet your environment variables
export CLOUD_ML_REGION="us-east5"
export GOOGLE_CLOUD_PROJECT=xxxAuthenticate your CLI session
gcloud auth application-default loginYou don't need to authenticate your CLI every time.
Install dependencies
uv pip install -U 'anthropic[vertex]' agnoRun Agent
Save the code above as pdf_input_bytes.py, then run:
python pdf_input_bytes.py