For
gemini-3.5-flash on Vertex AI, current limits are 50 MB for PDF input through the API or Cloud Storage, 7 MB for text/plain, and 30 MB for Cloud Storage image input. See Gemini 3.5 Flash model limits. This example’s blanket 2 GB limit and additional MIME-type claims are stale.gcs_file_input.py
"""
Example: Analyze files directly from Google Cloud Storage (GCS).
The Gemini API now supports GCS URIs natively (up to 2GB).
No need to download or re-upload - just pass the gs:// URI directly.
Requirements:
- Vertex AI must be enabled (GCS URIs require OAuth, not API keys)
- Run: gcloud auth application-default login
- Set environment variables: GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION
- Your GCS bucket must be accessible to your credentials
Supported formats: PDF, JSON, HTML, CSS, XML, images (PNG, JPEG, WebP, GIF)
"""
from agno.agent import Agent
from agno.media import File
from agno.models.google import Gemini
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
# GCS requires Vertex AI (OAuth credentials), not API keys
# Set GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION env vars
agent = Agent(
model=Gemini(
id="gemini-3.5-flash",
vertexai=True,
),
markdown=True,
)
# Pass GCS URI directly - no download or re-upload needed
agent.print_response(
"Summarize this document and extract key insights.",
files=[
File(
url="gs://cloud-samples-data/generative-ai/pdf/2312.11805v3.pdf", # Sample PDF
mime_type="application/pdf",
)
],
)
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
pass
Run the Example
1
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activate
uv venv --python 3.12
.venv\Scripts\activate
2
Install dependencies
uv pip install -U agno google-genai
3
Export environment variables
export GOOGLE_CLOUD_LOCATION="your_google_cloud_location_here"
export GOOGLE_CLOUD_PROJECT="your_google_cloud_project_here"
$Env:GOOGLE_CLOUD_LOCATION="your_google_cloud_location_here"
$Env:GOOGLE_CLOUD_PROJECT="your_google_cloud_project_here"
4
Authenticate with Google Cloud
Sign in with Application Default Credentials:
gcloud auth application-default login
5
Run the example
Save the code above as
gcs_file_input.py, then run:python gcs_file_input.py