Skip to content

Commit 520e641

Browse files
committed
make retrievers dependencies optional
1 parent b3d858a commit 520e641

File tree

4 files changed

+33
-12
lines changed

4 files changed

+33
-12
lines changed

pyproject.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ dependencies = [
5454
"anthropic>=0.62.0",
5555
"litellm>=1.75.3",
5656
"python-dotenv>=1.1.1",
57-
"bm25s>=0.2.14",
58-
"langchain>=0.3.27",
5957
]
6058

6159
[project.optional-dependencies]
@@ -106,6 +104,10 @@ dev = [
106104
hint = [
107105
"sentence-transformers>=5.0.0",
108106
]
107+
retrievers = [
108+
"bm25s>=0.2.14",
109+
"langchain>=0.3.27",
110+
]
109111

110112

111113
[project.scripts]

src/agentlab/agents/bm25_agent/bm25_retriever.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
from dataclasses import dataclass
21
import re
2+
from dataclasses import dataclass
33

4-
import bm25s
4+
try:
5+
import bm25s
6+
except ImportError:
7+
raise ImportError("bm25s is not installed. Please install it using `pip agentlab[retrievers]`.")
58
import tiktoken # Added import for tiktoken
69

710
from .utils import get_chunks_from_tokenizer
@@ -54,7 +57,14 @@ def retrieve(self, query):
5457

5558
def create_text_chunks(self, axtree, chunk_size=200, overlap=50):
5659
if self.use_recursive_text_splitter:
57-
from langchain_text_splitters.character import RecursiveCharacterTextSplitter
60+
try:
61+
from langchain.text_splitter import (
62+
RecursiveCharacterTextSplitter,
63+
)
64+
except ImportError:
65+
raise ImportError(
66+
"langchain is not installed. Please install it using `pip agentlab[retrievers]`."
67+
)
5868

5969
text_splitter = RecursiveCharacterTextSplitter()
6070
return text_splitter.split_text(axtree)

src/agentlab/agents/embedding_agent/embedding_retriever_agent.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,14 @@ def get_new_obs(self, obs: dict) -> dict:
6060
axtree_txt = obs["axtree_txt"] if self.flags.obs.use_ax_tree else obs["pruned_dom"]
6161
axtree_chunks = []
6262
if self.retriever.args.use_recursive_text_splitter:
63-
from langchain_text_splitters.character import (
64-
RecursiveCharacterTextSplitter,
65-
)
63+
try:
64+
from langchain.text_splitter import (
65+
RecursiveCharacterTextSplitter,
66+
)
67+
except ImportError:
68+
raise ImportError(
69+
"langchain is not installed. Please install it using `pip agentlab[retrievers]`."
70+
)
6671

6772
text_splitter = RecursiveCharacterTextSplitter()
6873
axtree_chunks = text_splitter.split_text(axtree_txt)

uv.lock

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

0 commit comments

Comments
 (0)