Skip to main content

Providers

Providers are pluggable adapters that connect LLMRTC to AI services. They abstract away the differences between OpenAI, Anthropic, Google, local models, and others behind a consistent interface.


Why Providers?​

Different AI services have different APIs, authentication methods, and capabilities. Providers normalize these differences:

This means you can:

  • Switch from OpenAI to Anthropic without changing your app code
  • Use cloud services in production and local models in development
  • Mix providers (e.g., OpenAI for LLM, ElevenLabs for TTS)

Provider Types​

LLMRTC uses four types of providers:

LLM Provider​

Generates text responses from conversation history.

Capabilities:

  • Text completion (streaming and non-streaming)
  • Tool/function calling
  • Vision (with image attachments)

STT Provider​

Converts speech audio to text.

Capabilities:

  • One-shot transcription
  • Streaming transcription (partial results)
  • Language detection

TTS Provider​

Converts text to speech audio.

Capabilities:

  • One-shot synthesis
  • Streaming synthesis (for low latency)
  • Voice selection

Vision Provider (Optional)​

Analyzes images and returns descriptions.

Used when LLM provider doesn't support native vision.


Available Providers​

Cloud Providers​

ProviderLLMSTTTTSVision
OpenAI✅✅ (Whisper)✅✅
Anthropic✅--✅
Google Gemini✅--✅
AWS Bedrock✅--varies
OpenRouter✅--varies
ElevenLabs--✅-

Local Providers​

ProviderLLMSTTTTSVision
Ollama✅--varies
LM Studio✅---
Faster-Whisper-✅--
Piper--✅-
LLaVA---✅

Provider Selection​

Providers can be selected in multiple ways:

Explicit - Pass provider instances directly:

const server = new LLMRTCServer({
providers: {
llm: new OpenAILLMProvider({ apiKey: '...' }),
stt: new OpenAIWhisperProvider({ apiKey: '...' }),
tts: new ElevenLabsTTSProvider({ apiKey: '...' })
}
});

Environment - Auto-detect from environment variables:

  • OPENAI_API_KEY → OpenAI providers
  • ANTHROPIC_API_KEY → Anthropic provider
  • ELEVENLABS_API_KEY → ElevenLabs TTS

Streaming Support​

Providers can support streaming for lower latency:

Streaming allows the orchestrator to start the next step (e.g., TTS) before the current step (e.g., LLM) completes.