Providers — 108 Integrations
Beluga AI v2 ships with 108 provider implementations across 15 categories. Every provider follows the same registry pattern: import the package, and it auto-registers via init(). Switch between providers by changing an import path and configuration — no code changes required.
Each provider page documents configuration options, code examples, and guidance on when to choose that provider. All examples use the github.com/lookatitude/beluga-ai module path and handle errors explicitly.
Provider Categories
Section titled “Provider Categories”| Category | Providers | Interface | Description |
|---|---|---|---|
| LLM | 22 | llm.ChatModel | OpenAI, Anthropic, Google, Ollama, Bedrock, Groq, and 16 more |
| Embedding | 9 | embedding.Embedder | OpenAI, Cohere, Google, Jina, Mistral, Ollama, Voyage, Sentence Transformers |
| Vector Store | 13 | vectorstore.VectorStore | pgvector, Pinecone, Qdrant, Weaviate, Milvus, Elasticsearch, Redis, and more |
| Voice (STT/TTS) | 14 | stt.STT / tts.TTS | Deepgram, ElevenLabs, AssemblyAI, Cartesia, Whisper, Groq, and more |
| Document Loader | 8 | loader.DocumentLoader | Cloud storage, Confluence, Firecrawl, Google Drive, GitHub, Notion |
| Guard | 5 | guard.Guard | Azure Safety, Guardrails AI, Lakera, LLM Guard, NeMo |
| Evaluation | 3 | eval.Metric | Braintrust, DeepEval, RAGAS |
| Observability | 4 | o11y.TracerProvider | Langfuse, LangSmith, Opik, Phoenix |
| Workflow | 6 | workflow.Engine | Dapr, In-memory, Inngest, Kafka, NATS, Temporal |
| Transport | 3 | transport.Transport | Daily, LiveKit, Pipecat |
| VAD | 2 | vad.Detector | Silero, WebRTC |
| Cache | 1 | cache.Store | In-memory |
| State | 1 | state.Store | In-memory |
| Prompt | 1 | prompt.Loader | File-based |
| MCP | 1 | MCP integration | Composio |
Registry Pattern
Section titled “Registry Pattern”Every provider category uses the same pattern:
import ( "github.com/lookatitude/beluga-ai/llm" _ "github.com/lookatitude/beluga-ai/llm/providers/openai" // auto-registers _ "github.com/lookatitude/beluga-ai/llm/providers/anthropic" // auto-registers)
// Create by namemodel, err := llm.New("openai", cfg)
// Discover available providersnames := llm.List() // ["anthropic", "openai", ...]Adding Custom Providers
Section titled “Adding Custom Providers”Any provider category can be extended by implementing the interface and calling Register() in init():
func init() { llm.Register("my-provider", func(cfg config.ProviderConfig) (llm.ChatModel, error) { return &myModel{apiKey: cfg.APIKey}, nil })}See the API Reference for complete interface definitions, or browse individual provider pages for configuration details and usage examples.