Skip to content

Documentation / Reference / Provider modules

Provider modules, profiles, and factories

Provider modules are lazy: importing vaani does not import provider SDKs. Install the matching extra and import only the public names in each module's __all__.

Module Public profile/options Public factory
vaani.providers.deepgram DeepgramSpeechRecognitionProfile create_deepgram_adapter
vaani.providers.google Google STT/reasoning/TTS profiles; GoogleProviderRole, GoogleAuthMode, GoogleReasoningOptions create_google_adapter
vaani.providers.sarvam Sarvam STT/TTS/language-detection profiles create_sarvam_adapter
vaani.providers.smallestai SmallestAISpeechGenerationProfile create_smallestai_adapter
vaani.providers.elevenlabs ElevenLabsSpeechGenerationProfile
vaani.providers.cartesia CartesiaSpeechGenerationProfile create_cartesia_adapter
vaani.providers.openai OpenAIReasoningProfile create_openai_adapter
vaani.providers.openrouter OpenRouterReasoningProfile, routing and reasoning options create_openrouter_adapter
vaani.providers.groq GroqReasoningProfile
vaani.providers.silero SileroVADProfile
vaani.providers.turn_detector TurnDetectorProfile
vaani.providers.noise_cancellation NoiseCancellationProfile

A dash is intentional: current public contracts expose a profile but no consumer factory. Do not import private underscore-prefixed builders to fill the gap.

Factory shapes

Deepgram, Cartesia, SmallestAI, and OpenAI factories take explicit credential_source, credential_scope, and declaration tuples such as routes, models, languages, and (for TTS) voices.

Google additionally requires:

  • a consumer-selected adapter_id;
  • ordered, unique GoogleProviderRole values;
  • an appropriate GoogleAuthMode;
  • project and location for Vertex;
  • typed GoogleReasoningOptions.

Sarvam has a fixed reviewed manifest; its factory takes explicit credentials but does not accept arbitrary model/language tuples.

OpenRouter requires OpenRouterProviderRouting and optionally OpenRouterReasoningOptions. Provider order is non-empty and unique; fallback permission is explicit.

Read exact signatures in the repository's contracts/public/v1/supported-types.json contract or the corresponding source module.

Other integration modules

Module Public surface
vaani.adapters.livekit LiveKitCallHandoff, LiveKitTransportAdapter
vaani.adapters.recording.gcs GCSRecordingConfig, LiveKitGCSRecordingAdapter
vaani.publishers.postgres PostgresPublisherConfig, PostgresResultPublisher

Extras authority

The provider guide gives the readable matrix. The machine-readable authority is src/vaani/contracts/supported-adapters.v1.json in the source repository. It also freezes Python/LiveKit compatibility, capabilities, update capabilities, usage dimensions, credential scope, and evidence expectations.

Next: factory walkthrough or configuration reference.