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
GoogleProviderRolevalues; - an appropriate
GoogleAuthMode; projectandlocationfor 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.