OpenAI Tools

Transcribe audio and generate an image with OpenAITools and GPT Image 2.

The source-fidelity code uses gpt-image-1. Replace it with gpt-image-2 before running the example.

openai_tools.py
"""
This example demonstrates how to use the OpenAITools to transcribe an audio file.
"""

import base64
from pathlib import Path

from agno.agent import Agent
from agno.run.agent import RunOutput
from agno.tools.openai import OpenAITools
from agno.utils.media import download_file, save_base64_data

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


# Example 1: Transcription
url = "https://agno-public.s3.amazonaws.com/demo_data/sample_conversation.wav"

local_audio_path = Path("tmp/sample_conversation.wav")

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    print(f"Downloading file to local path: {local_audio_path}")
    download_file(url, local_audio_path)

    transcription_agent = Agent(
        tools=[OpenAITools(transcription_model="gpt-4o-transcribe")],
        markdown=True,
    )
    transcription_agent.print_response(
        f"Transcribe the audio file for this file: {local_audio_path}"
    )

    # Example 2: Image Generation
    agent = Agent(
        tools=[OpenAITools(image_model="gpt-image-1")],
        markdown=True,
    )

    response = agent.run("Generate an image of a sports car and tell me its color.")

    if isinstance(response, RunOutput):
        print("Agent response:", response.content)
        if response.images:
            image_base64 = base64.b64encode(response.images[0].content).decode("utf-8")
            save_base64_data(image_base64, "tmp/sports_car.png")

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno openai

Export your OpenAI API key

export OPENAI_API_KEY="your_openai_api_key_here"

Limit the transcription agent to transcription

Replace OpenAITools(transcription_model="gpt-4o-transcribe") with OpenAITools(transcription_model="gpt-4o-transcribe", enable_image_generation=False, enable_speech_generation=False). Otherwise this agent also registers the default image and speech tools.

Update the image model

When saving the code, replace gpt-image-1 with gpt-image-2.

Run the example

Save the code above as openai_tools.py, then run:

python openai_tools.py

Full source: cookbook/91_tools/models/openai_tools.py