Skip to content

Providers

Kader supports multiple LLM providers through a unified interface.

Supported Providers

Provider Description
OllamaProvider Local LLM inference
GoogleProvider Google Gemini models
AnthropicProvider Anthropic Claude models
MistralProvider Mistral AI models
OpenAICompatibleProvider OpenAI and compatible APIs

OllamaProvider

For local LLM inference. Best for privacy, speed, and offline capability.

from kader.providers import OllamaProvider, Message

provider = OllamaProvider(
    model="llama3.2",
    base_url="http://localhost:11434",
    timeout=120,
)

messages = [
    Message.system("You are helpful."),
    Message.user("What is Ollama?"),
]
response = provider.invoke(messages)
print(response.content)

# Streaming
for chunk in provider.stream(messages):
    print(chunk.content, end="", flush=True)

# Async
import asyncio
response = await provider.ainvoke(messages)

Parameters

Parameter Type Default Description
model str required Model name
base_url str "http://localhost:11434" API endpoint
timeout int 120 Request timeout

GoogleProvider

Google Gemini models via the Google GenAI SDK.

from kader.providers import GoogleProvider, Message

provider = GoogleProvider(
    model="gemini-2.0-flash",
    temperature=0.7,
    max_tokens=2048,
)

response = provider.invoke([Message.user("Hello from Gemini!")])

Requires GEMINI_API_KEY in environment.

Parameters

Parameter Type Default Description
model str "gemini-2.0-flash" Model name
temperature float 0.7 Sampling temperature
max_tokens int 2048 Maximum tokens

AnthropicProvider

Anthropic Claude models via the Anthropic SDK.

from kader.providers import AnthropicProvider, Message

provider = AnthropicProvider(
    model="claude-3-5-sonnet-20241022",
    temperature=0.7,
)

response = provider.invoke([Message.user("Hello from Claude!")])

Requires ANTHROPIC_API_KEY in environment.

MistralProvider

Mistral AI models for cloud inference.

from kader.providers import MistralProvider, Message

provider = MistralProvider(
    model="mistral-large-latest",
    temperature=0.7,
)

response = provider.invoke([Message.user("Hello from Mistral!")])

Requires MISTRAL_API_KEY in environment.

OpenAICompatibleProvider

Connect to OpenAI, Groq, OpenRouter, Moonshot AI, and other OpenAI-compatible APIs.

from kader.providers import OpenAICompatibleProvider, Message, OpenAIProviderConfig

# Standard OpenAI
openai_provider = OpenAICompatibleProvider(
    model="gpt-4o",
    config=OpenAIProviderConfig(
        api_key="your-openai-key",
    )
)

# Groq (fast inference)
groq_provider = OpenAICompatibleProvider(
    model="llama-3.3-70b-versatile",
    base_url="https://api.groq.com/openai/v1",
    config=OpenAIProviderConfig(
        api_key="your-groq-key",
    )
)

# OpenRouter (200+ models)
openrouter_provider = OpenAICompatibleProvider(
    model="anthropic/claude-3.5-sonnet",
    base_url="https://openrouter.ai/api/v1",
    config=OpenAIProviderConfig(
        api_key="your-openrouter-key",
    )
)

# Moonshot AI (Kimi)
moonshot_provider = OpenAICompatibleProvider(
    model="kimi-k2.5",
    base_url="https://api.moonshot.cn/v1",
    config=OpenAIProviderConfig(
        api_key="your-moonshot-key",
    )
)

Parameters

Parameter Type Default Description
model str required Model name
base_url str "https://api.openai.com/v1" API endpoint
config OpenAIProviderConfig required API configuration

Message Helper

Use the Message class to create messages:

from kader.providers import Message

messages = [
    Message.system("You are a helpful assistant."),
    Message.user("What is Python?"),
    Message.assistant("Python is a programming language."),
    Message.user("Tell me more."),
]