Skip to content

v2.5.0 - OpenAI-Compatible Providers & Azure Reasoning Support

Choose a tag to compare

@lfnovo lfnovo released this 20 Sep 12:10
3bfdeee

🚀 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-compatible provider
  • Speech-to-Text (STT) - openai-compatible provider
  • Embeddings - openai-compatible provider
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