Skip to main content
image_agent_file.py
from pathlib import Path

import httpx
from agno.agent import Agent
from agno.media import Image
from agno.models.openai import OpenAIResponses

agent = Agent(
    model=OpenAIResponses(id="gpt-4o"),
    markdown=True,
)

image_path = Path(__file__).parent.joinpath("sample.jpg")

if not image_path.exists():
    resp = httpx.get(
        "https://picsum.photos/id/1/640/480",
        headers={"User-Agent": "agno-cookbook/1.0"},
        follow_redirects=True,
    )
    image_path.write_bytes(resp.content)

# Auto-detect MIME from file extension (.jpg -> image/jpeg)
agent.print_response(
    "Tell me about this image.",
    images=[Image(filepath=image_path)],
    stream=True,
)

# Explicit MIME type override
agent.print_response(
    "What do you see?",
    images=[Image(filepath=image_path, mime_type="image/jpeg")],
    stream=True,
)

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 openai
3

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"
$Env:OPENAI_API_KEY="your_openai_api_key_here"
4

Run the example

Save the code above as image_agent_file.py, then run:
python image_agent_file.py
Full source: cookbook/90_models/openai/responses/image_agent_file.py