v2.5.0 - OpenAI-Compatible Providers & Azure Reasoning Support
🚀 Esperanto v2.5.0
This release introduces major new capabilities with OpenAI-compatible providers and enhanced Azure support, making Esperanto more flexible for local AI deployments and reasoning tasks.
✨ Major Features
🔗 OpenAI-Compatible Providers
Three new providers that work with any OpenAI-compatible endpoint (LM Studio, LocalAI, vLLM, etc.):
- Text-to-Speech (TTS) -
openai-compatibleprovider - Speech-to-Text (STT) -
openai-compatibleprovider - Embeddings -
openai-compatibleprovider
from esperanto import AIFactory
# TTS with local endpoint
tts = AIFactory.create_text_to_speech(
"openai-compatible",
model_name="piper-tts",
config={"base_url": "http://localhost:8000"}
)
# STT with custom timeout for large files
stt = AIFactory.create_speech_to_text(
"openai-compatible",
model_name="faster-whisper-large-v3",
config={
"base_url": "http://localhost:8000",
"timeout": 600 # 10 minutes for large files
}
)
# Embeddings with local model
embedder = AIFactory.create_embedding(
"openai-compatible",
model_name="nomic-embed-text",
config={"base_url": "http://localhost:1234/v1"}
)🧠 Azure Reasoning Support
Enhanced Azure integration with support for reasoning models and improved configuration.
🛠️ Technical Improvements
- Graceful Error Handling: Provider-specific error messages for better debugging
- MIME Type Detection: Automatic audio format detection for STT uploads (.mp3, .wav, .m4a, .aac, .ogg, .flac, .webm)
- Configurable Timeouts: Different default timeouts optimized for each provider type
- Comprehensive Testing: Full test coverage for all new providers
- Enhanced Logging: Better visibility into model endpoint availability
🔧 Configuration
Environment Variables
# For all OpenAI-compatible providers
export OPENAI_COMPATIBLE_BASE_URL="http://localhost:8000"
export OPENAI_COMPATIBLE_API_KEY="your-key-if-required"Provider-Specific Defaults
- TTS: Standard timeout, inherits voice handling from OpenAI
- STT: 300s timeout (5 minutes) for audio processing
- Embeddings: 120s timeout (2 minutes) for text processing
📚 Use Cases
Perfect for:
- Local AI Deployments - Run models locally with privacy
- Custom Model Endpoints - Use any OpenAI-compatible API
- Development & Testing - Test with local models before production
- Cost Optimization - Use cheaper local inference
- Data Privacy - Keep sensitive data on-premises
🔄 Breaking Changes
None - this release is fully backward compatible.
📖 Documentation
All providers follow Esperanto's unified interface, making it easy to switch between local and cloud providers without code changes.
Full Changelog: View on GitHub