Esperanto Documentation
September 5, 2026 ยท View on GitHub
Welcome to the Esperanto documentation! Esperanto provides a unified interface for interacting with multiple AI model providers through a consistent API.
๐ Quick Links
- Quick Start Guide - Get started in 5 minutes
- Provider Comparison - Choose the right provider
- Configuration Guide - Environment setup
- Main README - Project overview and installation
๐ Documentation Structure
Capabilities (What Can I Do?)
Learn about each AI capability and how to use it:
- Language Models (LLM) - Text generation, chat, reasoning
- Embeddings - Vector representations for semantic search
- Reranking - Improve search relevance
- Speech-to-Text - Audio transcription
- Text-to-Speech - Voice generation
Providers (How Do I Set This Up?)
Complete setup guides for each provider:
Cloud API Providers:
- OpenAI - GPT-4, Embeddings, Whisper, TTS
- Anthropic - Claude models
- Google (GenAI) - Gemini, Embeddings, TTS
- Groq - Fastest inference
- Mistral - European AI
- DeepSeek - Cost-effective reasoning
- SiliconFlow - Cost-effective OpenAI-compatible models
- Perplexity - Web-search LLM
- xAI - Grok models
- OpenRouter - 100+ models, one API
- Jina - Advanced embeddings & reranking
- Voyage - Specialized retrieval
- ElevenLabs - Premium voice quality
- Deepgram - Aura TTS voices
Enterprise Providers:
- Azure OpenAI - Enterprise compliance
- Vertex AI - Google Cloud
Local/Self-Hosted:
- Ollama - Local model deployment
- Transformers - HuggingFace models
- OpenAI-Compatible - LM Studio, vLLM, etc.
๐ Provider Comparison Matrix - Compare all providers
Advanced Topics
Deep dives into specialized features:
- Task-Aware Embeddings - Optimize embeddings for specific tasks
- Transformers Advanced Features - Local model optimizations
- LangChain Integration - Use with LangChain
- Timeout Configuration - Request timeout management
- Model Discovery - Discover available models
๐ฏ Find What You Need
By Goal
"I want to generate text" โ Language Models Guide โ Choose Provider
"I want semantic search" โ Embeddings Guide โ Reranking Guide
"I want voice capabilities" โ Speech-to-Text Guide or Text-to-Speech Guide
"I need privacy/local deployment" โ Ollama, Transformers, or OpenAI-Compatible
"I need enterprise features" โ Azure OpenAI or Vertex AI
"I want the best quality" โ OpenAI (GPT-4), Anthropic (Claude), ElevenLabs (voice)
"I want the fastest responses" โ Groq
"I want cost optimization" โ DeepSeek, SiliconFlow, Ollama, or OpenRouter
By Provider
"How do I set up [Provider]?" โ Check Providers directory for provider-specific guides
"Which provider should I use?" โ Provider Comparison Matrix
"What models are available?" โ See individual provider pages or use Model Discovery
By Feature
"How do I use task-aware embeddings?" โ Task-Aware Embeddings
"How do I integrate with LangChain?" โ LangChain Integration
"How do I configure timeouts?" โ Timeout Configuration
"How do I use local models?" โ Transformers Advanced Features
๐ก Common Patterns
Single Provider Setup
Use one provider for all capabilities:
from esperanto.factory import AIFactory
# OpenAI for everything
llm = AIFactory.create_language("openai", "gpt-4")
embedder = AIFactory.create_embedding("openai", "text-embedding-3-small")
transcriber = AIFactory.create_speech_to_text("openai", "whisper-1")
speaker = AIFactory.create_text_to_speech("openai", "tts-1")
Multi-Provider Setup
Choose best-in-class for each capability:
# Best reasoning
llm = AIFactory.create_language("anthropic", "claude-sonnet-5")
# Best embeddings with advanced features
embedder = AIFactory.create_embedding("jina", "jina-embeddings-v3")
# Best voice quality
speaker = AIFactory.create_text_to_speech("elevenlabs", "eleven_multilingual_v2")
Local/Cloud Hybrid
Privacy-sensitive data locally, specialized tasks in cloud:
# Local for privacy
local_llm = AIFactory.create_language("ollama", "llama3.2")
local_embedder = AIFactory.create_embedding("transformers", "BAAI/bge-large-en-v1.5")
# Cloud for specialized needs
cloud_llm = AIFactory.create_language("anthropic", "claude-sonnet-5")
๐ Documentation Conventions
Code Examples
All examples use the Factory pattern (recommended):
from esperanto.factory import AIFactory
model = AIFactory.create_language("provider", "model-name")
Direct instantiation is also supported (see individual capability guides).
Environment Variables
Configure providers via environment variables (see Configuration Guide):
# Copy example file
cp .env.example .env
# Edit with your API keys
nano .env
See .env.example in project root for all available variables.
Async Support
All methods have async equivalents with a prefix:
# Sync
response = model.chat_complete(messages)
# Async
response = await model.achat_complete(messages)
๐ Migration from Old Docs
The documentation has been restructured for better navigation:
Old Structure:
- docs/llm.md (all LLM providers mixed)
- docs/embedding/* (embedding-specific)
- docs/speech_to_text.md (all STT providers)
- docs/text_to_speech.md (all TTS providers)
New Structure:
- docs/capabilities/* (what each capability does)
- docs/providers/* (how to set up each provider)
- docs/advanced/* (specialized topics)
Key Changes:
- Provider-specific info now in dedicated provider pages
- Capability guides focus on API and usage patterns
- Environment variables documented per-provider
- Comparison matrices for easy provider selection
๐ Getting Help
Documentation Issues
- Provider setup unclear? โ Check the provider page
- Capability usage unclear? โ Check the capability guide
- Feature not working? โ Check provider page troubleshooting section
- Need examples? โ Every guide includes multiple examples
Common Questions
Q: Which provider should I use? โ See Provider Comparison Matrix
Q: How do I get API keys? โ See Prerequisites section in each provider page
Q: Can I use multiple providers? โ Yes! See Multi-Provider Setup above
Q: Do I need to pay for everything? โ No! See Ollama, Transformers for free options
Q: How do I configure timeouts? โ See Timeout Configuration
Q: What about LangChain integration? โ See LangChain Integration
External Resources
- GitHub: github.com/lfnovo/esperanto
- PyPI: pypi.org/project/esperanto
- Issues: github.com/lfnovo/esperanto/issues
- Changelog: CHANGELOG.md
๐ค Contributing
See CONTRIBUTING.md for guidelines on contributing to documentation or code.
๐ License
MIT License - See LICENSE for details.
Ready to get started? โ Quick Start Guide