Prerequisites
- Azure OpenAI service setup with DALL-E deployment and chat model deployment 2. Set these environment variables:
- AZURE_OPENAI_API_KEY: Your Azure OpenAI API key
- AZURE_OPENAI_ENDPOINT: The Azure OpenAI endpoint URL
- AZURE_OPENAI_DEPLOYMENT: The deployment name for the language model
- AZURE_OPENAI_IMAGE_DEPLOYMENT: The deployment name for an image generation model
- OPENAI_API_KEY (for standard OpenAI example)
Copy
Ask AI
import sys
from os import getenv
from agno.agent import Agent
from agno.models.azure import AzureOpenAI
from agno.models.openai import OpenAIChat
from agno.tools.models.azure_openai import AzureOpenAITools
# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------
# Check for base requirements first - needed for all examples
# Exit early if base requirements aren't met
# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
if not bool(
getenv("AZURE_OPENAI_API_KEY")
and getenv("AZURE_OPENAI_ENDPOINT")
and getenv("AZURE_OPENAI_IMAGE_DEPLOYMENT")
):
print("Error: Missing base Azure OpenAI requirements.")
print("Required for all examples:")
print("- AZURE_OPENAI_API_KEY")
print("- AZURE_OPENAI_ENDPOINT")
print("- AZURE_OPENAI_IMAGE_DEPLOYMENT")
sys.exit(1)
print("Running Example 1: Standard OpenAI model with Azure OpenAI Tools")
print(
"This approach uses OpenAI for the agent's model but Azure for image generation.\n"
)
standard_agent = Agent(
model=OpenAIChat(id="gpt-4o"), # Using standard OpenAI for the agent
tools=[AzureOpenAITools()], # Using Azure OpenAI for image generation
name="Mixed OpenAI Generator",
description="An AI assistant that uses standard OpenAI for chat and Azure OpenAI for image generation",
instructions=[
"You are an AI artist specializing in creating images based on user descriptions.",
"Use the generate_image tool to create detailed visualizations of user requests.",
"Provide creative suggestions to enhance the images if needed.",
],
debug_mode=True,
)
# Generate an image with the standard OpenAI model and Azure tools
standard_agent.print_response(
"Generate an image of a futuristic city with flying cars and tall skyscrapers",
markdown=True,
)
print("\nRunning Example 2: Full Azure OpenAI setup")
print(
"This approach uses Azure OpenAI for both the agent's model and image generation.\n"
)
# Create an AzureOpenAI model using Azure credentials
azure_endpoint = getenv("AZURE_OPENAI_ENDPOINT")
azure_api_key = getenv("AZURE_OPENAI_API_KEY")
azure_deployment = getenv("AZURE_OPENAI_DEPLOYMENT")
# Explicitly pass all parameters to make debugging easier
azure_model = AzureOpenAI(
azure_endpoint=azure_endpoint,
azure_deployment=azure_deployment,
api_key=azure_api_key,
id=azure_deployment, # Using the deployment name as the model ID
)
# Create an agent with Azure OpenAI model and tools
azure_agent = Agent(
model=azure_model, # Using Azure OpenAI for the agent
tools=[AzureOpenAITools()], # Using Azure OpenAI for image generation
name="Full Azure OpenAI Generator",
description="An AI assistant that uses Azure OpenAI for both chat and image generation",
instructions=[
"You are an AI artist specializing in creating images based on user descriptions.",
"Use the generate_image tool to create detailed visualizations of user requests.",
"Provide creative suggestions to enhance the images if needed.",
],
)
# Generate an image with the full Azure setup
azure_agent.print_response(
"Generate an image of a serene Japanese garden with cherry blossoms",
markdown=True,
)
Run the Example
Copy
Ask AI
# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/91_tools/models
# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate
# Export relevant API keys
export AZURE_OPENAI_API_KEY="***"
python azure_openai_tools.py