v2.25.1 — auth & interop fixes
A maintenance patch: three bug fixes to authentication, LangChain interop, and provider defaults. Validated with the canonical mocked suite (1480 passed), lint, types, and a clean-room build + import gate.
🐛 Notable fixes
- Vertex AI authenticates from a service-account key across all modalities (#249).
VertexTextToSpeechModelandVertexEmbeddingModelpreviously ignored a configured key and shelled out to thegcloudCLI — unusable in containers wheregcloudisn't installed. All three Vertex providers (LLM, TTS, embedding) now share one auth path (VertexAuthMixin): explicit key file (credentials_file/credentials_pathconfig, orGOOGLE_APPLICATION_CREDENTIALS) → Application Default Credentials →gcloudas a last resort. A missinggcloudbinary now raises a clear error instead of an opaque crash. to_langchain()forwards a custom base URL for Anthropic and Cohere (#229). Converting an Anthropic- or Cohere-compatible model configured with a custombase_urlto LangChain previously reconnected silently to the official API. The official endpoint is still omitted so LangChain keeps its own default.
⚠️ Behavior change
- ElevenLabs default models bumped to the latest (#245). Speech-to-text now defaults to
scribe_v2(wasscribe_v1); text-to-speech now defaults toeleven_v3(waseleven_multilingual_v2). Both older models remain usable by passing an explicitmodel_name. Verified against the live ElevenLabs API. If you relied on the previous defaults implicitly, pin them withmodel_name.
🙏 Thanks
All fixes this cycle were reported and shipped in-house. Thanks to everyone opening issues and testing against real provider endpoints — that feedback is what keeps the parity promise honest.
Full details in the CHANGELOG.
Install: pip install esperanto==2.25.1 (extras: esperanto[openai,anthropic,...])