Advanced Usage

Custom Base URL

Override the default API endpoint for any provider:

from llm_async import OpenAIProvider

provider = OpenAIProvider(
    api_key="your-api-key",
    base_url="https://custom-openai-endpoint.com/v1"
)

HTTP/2

Enable HTTP/2 on the underlying aiosonic.HTTPClient:

from llm_async import OpenAIProvider

provider = OpenAIProvider(
    api_key="your-openai-api-key",
    http2=True,
)

Combine with client_kwargs for additional HTTP client options:

provider = OpenAIProvider(
    api_key="your-openai-api-key",
    http2=True,
    client_kwargs={"timeout": 30, "verify": True},
)

HTTP/2 is supported by all providers that inherit from BaseProvider: OpenAIProvider, OpenRouterProvider, ClaudeProvider, GoogleProvider, and OpenAIResponsesProvider.

See also examples/openai_responses_repl_http2_prompt_cache.py for an interactive OpenAI Responses REPL that combines HTTP/2 with tool calling, prompt caching, and previous_response_id conversation chaining.

Direct API Requests

Make raw requests to any provider API endpoint using the request() method. Supports all HTTP verbs: GET, POST, PUT, DELETE, PATCH.

import asyncio
import os
from llm_async import OpenAIProvider

async def main():
    provider = OpenAIProvider(api_key=os.getenv("OPENAI_API_KEY"))

    response = await provider.request("GET", "/models")
    print(f"Available models: {len(response.get('data', []))}")

    response = await provider.request("POST", "/endpoint", json_data={"key": "value"})

    response = await provider.request("GET", "/endpoint", custom_header="value")

asyncio.run(main())

See examples/provider_request.py for a complete example.