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.

๐Ÿ“š Documentation Structure

Capabilities (What Can I Do?)

Learn about each AI capability and how to use it:

Providers (How Do I Set This Up?)

Complete setup guides for each provider:

Cloud API Providers:

Enterprise Providers:

Local/Self-Hosted:

๐Ÿ“Š Provider Comparison Matrix - Compare all providers

Advanced Topics

Deep dives into specialized features:

๐ŸŽฏ 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

๐Ÿค 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