AIR

Example: multiple providers

python
import asyncio
import os
 
from air import AIR
from air.providers.xai import XAIProvider
from air.providers.gemini import GeminiProvider
from air.providers.groq import GroqProvider
from air.providers.openrouter import OpenRouterProvider
 
 
async def main():
    air = AIR()
 
    air.add_provider(
        XAIProvider(api_key=os.environ["XAI_API_KEY"], model="grok-4-0709"),
        priority=1,
    )
    air.add_provider(
        GeminiProvider(api_key=os.environ["GEMINI_API_KEY"], model="gemini-2.5-flash"),
        priority=2,
    )
    air.add_provider(
        GroqProvider(api_key=os.environ["GROQ_API_KEY"], model="llama-3.3-70b-versatile"),
        priority=3,
    )
    air.add_provider(
        OpenRouterProvider(api_key=os.environ["OPENROUTER_API_KEY"], model="meta-llama/llama-3.1-405b"),
        priority=4,
    )
 
    response = await air.chat("Hello")
    print(response.content)
    print("answered by:", response.provider)
 
 
if __name__ == "__main__":
    asyncio.run(main())

With no explicit provider set on the request, AIR tries these in priority order (1 to 4) and falls back automatically on a fallback eligible failure. See automatic-fallback.md.