Skip to content

Commit 79a048c

Browse files
authored
feat: update dependencies to latest major versions (v2.13.0) (#55)
Update all LangChain and transformers ecosystem dependencies to their latest major versions with Python 3.10+ support. ## Breaking Changes - Minimum Python version: 3.9 → 3.10 ## LangChain Updates (to v1.x/v3.x/v4.x) - langchain: 0.3.8 → 1.2.0 - langchain-core: 0.3.29 → 1.2.6 - langchain-openai: 0.2.9 → 1.1.6 - langchain-anthropic: 0.3.0 → 1.3.0 - langchain-google-genai: 2.1.2 → 4.1.2 - langchain-ollama: 0.2.0 → 1.0.1 - langchain-groq: 0.2.1 → 1.1.1 - langchain-mistralai: 0.2.1 → 1.1.1 - langchain-deepseek: 0.1.3 → 1.0.1 - langchain-google-vertexai: 2.0.24 → 3.2.0 ## Transformers Ecosystem Updates - transformers: 4.40.0 → 4.57.3 - torch: 2.2.2 → 2.9.1 - tokenizers: 0.15.2 → 0.22.1 - sentence-transformers: 2.2.0 → 5.2.0 - scikit-learn: 1.3.0 → 1.7.2 - numpy: 1.21.0 → 2.2.6 - accelerate: 1.8.1 → 1.12.0 ## Code Changes - Updated LangChain imports from deprecated paths (langchain.schema → langchain_core.documents) - Added google_api_key parameter to Google LangChain conversion (required by langchain-google-genai 4.x) - Updated tests to match new LangChain behavior ## Test Results ✅ 642 passed, 1 skipped, 0 failures
1 parent 4083a39 commit 79a048c

File tree

8 files changed

+729
-1997
lines changed

8 files changed

+729
-1997
lines changed

pyproject.toml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
[project]
22
name = "esperanto"
3-
version = "2.12.1"
3+
version = "2.13.0"
44
description = "A light-weight, production-ready, unified interface for various AI model providers"
55
authors = [
66
{ name = "LUIS NOVO", email = "lfnovo@gmail.com" }
77
]
88
readme = "README.md"
9-
requires-python = ">=3.9,<3.14"
9+
requires-python = ">=3.10,<3.14"
1010
license = { text = "MIT" }
1111
keywords = ["ai", "llm", "text-to-speech", "speech-to-text", "openai", "anthropic", "deepseek", "google", "openrouter", "groq", "x.ai", "gemini", "mistral", "transformers", "elevenlabs"]
1212
urls.repository = "https://github.com/lfnovo/esperanto"
@@ -20,14 +20,14 @@ dependencies = [
2020

2121
[project.optional-dependencies]
2222
transformers = [
23-
"transformers>=4.40.0",
24-
"torch>=2.2.2",
25-
"tokenizers>=0.15.2",
26-
"sentence-transformers>=2.2.0",
27-
"scikit-learn>=1.3.0",
28-
"numpy>=1.21.0",
23+
"transformers>=4.57.3,<5.0.0",
24+
"torch>=2.9.1,<3.0.0",
25+
"tokenizers>=0.22.1,<1.0.0",
26+
"sentence-transformers>=5.2.0,<6.0.0",
27+
"scikit-learn>=1.7.2,<2.0.0",
28+
"numpy>=2.2.6,<3.0.0",
2929
"einops>=0.8.1",
30-
"accelerate>=1.8.1"
30+
"accelerate>=1.12.0,<2.0.0"
3131
]
3232

3333

@@ -73,14 +73,14 @@ dev = [
7373
"types-requests>=2.32.0.20241016",
7474
"build",
7575
"twine",
76-
"langchain>=0.3.8,<0.4.0",
77-
"langchain-core>=0.3.29,<0.4.0",
78-
"langchain-openai>=0.2.9",
79-
"langchain-anthropic>=0.3.0",
80-
"langchain-google-genai>=2.1.2",
81-
"langchain-ollama>=0.2.0",
82-
"langchain-groq>=0.2.1",
83-
"langchain_mistralai>=0.2.1",
84-
"langchain_deepseek>=0.1.3",
85-
"langchain-google-vertexai>=2.0.24",
76+
"langchain>=1.2.0,<2.0.0",
77+
"langchain-core>=1.2.6,<2.0.0",
78+
"langchain-openai>=1.1.6,<2.0.0",
79+
"langchain-anthropic>=1.3.0,<2.0.0",
80+
"langchain-google-genai>=4.1.2,<5.0.0",
81+
"langchain-ollama>=1.0.1,<2.0.0",
82+
"langchain-groq>=1.1.1,<2.0.0",
83+
"langchain_mistralai>=1.1.1,<2.0.0",
84+
"langchain_deepseek>=1.0.1,<2.0.0",
85+
"langchain-google-vertexai>=3.2.0,<4.0.0",
8686
]

src/esperanto/providers/llm/google.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def to_langchain(self):
142142
temperature=self.temperature,
143143
max_tokens=self.max_tokens,
144144
top_p=self.top_p,
145-
# Removed streaming and google_api_key as they cause errors
145+
google_api_key=self.api_key,
146146
)
147147
return self._langchain_model
148148

src/esperanto/providers/reranker/jina.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ async def arerank(
240240
def to_langchain(self):
241241
"""Convert to LangChain-compatible reranker."""
242242
try:
243-
from langchain.schema import Document
243+
from langchain_core.documents import Document
244244
from langchain_core.callbacks.manager import Callbacks
245245
except ImportError:
246246
raise ImportError(

src/esperanto/providers/reranker/transformers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ async def arerank(
506506
def to_langchain(self):
507507
"""Convert to LangChain-compatible reranker."""
508508
try:
509-
from langchain.schema import Document
509+
from langchain_core.documents import Document
510510
from langchain_core.callbacks.manager import Callbacks
511511
except ImportError:
512512
raise ImportError(

src/esperanto/providers/reranker/voyage.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ async def arerank(
221221
def to_langchain(self):
222222
"""Convert to LangChain-compatible reranker."""
223223
try:
224-
from langchain.schema import Document
224+
from langchain_core.documents import Document
225225
from langchain_core.callbacks.manager import Callbacks
226226
except ImportError:
227227
raise ImportError(

tests/integration/test_langchain_integration.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ def test_xai_langchain_conversion(xai_model):
114114
def test_google_langchain_conversion(google_model):
115115
langchain_model = google_model.to_langchain()
116116
assert isinstance(langchain_model, ChatGoogleGenerativeAI)
117-
assert langchain_model.model == "models/gemini-1.5-pro"
117+
assert langchain_model.model == "gemini-1.5-pro"
118118
assert langchain_model.temperature == 0.7
119119
assert langchain_model.max_output_tokens == 100
120120
assert langchain_model.top_p == 0.9

tests/providers/llm/test_gemini_provider.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ def test_to_langchain():
274274
temperature=model.temperature,
275275
max_tokens=model.max_tokens,
276276
top_p=model.top_p,
277+
google_api_key="test-key",
277278
)
278279
assert langchain_model.temperature == 1.0
279280
assert langchain_model.top_p == 0.9

uv.lock

Lines changed: 704 additions & 1973 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)