Skip to content

Commit 2f08071

Browse files
authored
chore: remove llama-index from basic dependencies (#465)
1 parent e63a63e commit 2f08071

File tree

3 files changed

+82
-66
lines changed

3 files changed

+82
-66
lines changed

pyproject.toml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,10 @@ dependencies = [
2929
"mcp==1.23.0", # There might be some async generator problem logs in mcp 1.25.0
3030
"cookiecutter==2.6.0", # For cloud deploy
3131
"omegaconf==2.3.0", # For agent builder
32-
"llama-index==0.14.0",
33-
"llama-index-embeddings-openai-like==0.2.2",
34-
"llama-index-llms-openai-like==0.5.1",
35-
"llama-index-vector-stores-opensearch==0.6.1",
3632
"psycopg2-binary==2.9.10", # For PostgreSQL database (short term memory)
3733
"asyncpg>=0.29.0", # For async PostgreSQL database (short term memory)
3834
"pymysql==1.1.1", # For MySQL database (short term memory)
3935
"aiomysql==0.3.2", # For async MySQL database (short term memory)
40-
"opensearch-py==2.8.0",
4136
"filetype==1.2.0",
4237
"vikingdb-python-sdk>=0.1.3",
4338
"agentkit-sdk-python>=0.2.0",
@@ -49,13 +44,18 @@ veadk = "veadk.cli.cli:veadk"
4944

5045
[project.optional-dependencies]
5146
extensions = [
52-
"redis>=5.0", # For Redis database
53-
"tos>=2.8.4", # For TOS storage and Viking DB
54-
"llama-index-vector-stores-redis>=0.6.1",
55-
"cozeloop>=0.1.21", #For Cozeloop Prompt manager
47+
"redis>=5.0", # For Redis database
48+
"tos>=2.8.4", # For TOS storage and Viking DB
49+
"cozeloop>=0.1.21", # For Cozeloop Prompt manager
50+
"llama-index==0.14.0", # For KnowledgeBase and LongTermMemory
51+
"llama-index-embeddings-openai-like==0.2.2", # For Embeddings
52+
"llama-index-llms-openai-like==0.5.1", # For KnowledgeBase and LongTermMemory
53+
"llama-index-vector-stores-redis>=0.6.1", # For Redis database
54+
"llama-index-vector-stores-opensearch==0.6.1", # For Opensearch database
55+
"opensearch-py==2.8.0",
5656
]
5757
database = [
58-
"redis>=5.0", # For Redis database
58+
"redis>=5.0", # For Redis database
5959
"pymysql>=1.1.1", # For MySQL database
6060
"volcengine>=1.0.193", # For Viking DB
6161
"tos>=2.8.4", # For TOS storage and Viking DB

veadk/knowledgebase/knowledgebase.py

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,47 @@
2727

2828

2929
def _get_backend_cls(backend: str) -> type[BaseKnowledgebaseBackend]:
30-
match backend:
31-
case "local":
32-
from veadk.knowledgebase.backends.in_memory_backend import (
33-
InMemoryKnowledgeBackend,
34-
)
35-
36-
return InMemoryKnowledgeBackend
37-
case "opensearch":
38-
from veadk.knowledgebase.backends.opensearch_backend import (
39-
OpensearchKnowledgeBackend,
40-
)
30+
try:
31+
match backend:
32+
case "local":
33+
from veadk.knowledgebase.backends.in_memory_backend import (
34+
InMemoryKnowledgeBackend,
35+
)
4136

42-
return OpensearchKnowledgeBackend
43-
case "viking":
44-
from veadk.knowledgebase.backends.vikingdb_knowledge_backend import (
45-
VikingDBKnowledgeBackend,
46-
)
37+
return InMemoryKnowledgeBackend
38+
case "opensearch":
39+
from veadk.knowledgebase.backends.opensearch_backend import (
40+
OpensearchKnowledgeBackend,
41+
)
4742

48-
return VikingDBKnowledgeBackend
49-
case "redis":
50-
from veadk.knowledgebase.backends.redis_backend import (
51-
RedisKnowledgeBackend,
52-
)
43+
return OpensearchKnowledgeBackend
44+
case "redis":
45+
from veadk.knowledgebase.backends.redis_backend import (
46+
RedisKnowledgeBackend,
47+
)
5348

54-
return RedisKnowledgeBackend
55-
case "tos_vector":
56-
from veadk.knowledgebase.backends.tos_vector_backend import (
57-
TosVectorKnowledgeBackend,
58-
)
49+
return RedisKnowledgeBackend
50+
case "tos_vector":
51+
from veadk.knowledgebase.backends.tos_vector_backend import (
52+
TosVectorKnowledgeBackend,
53+
)
5954

60-
return TosVectorKnowledgeBackend
55+
return TosVectorKnowledgeBackend
56+
case "viking":
57+
from veadk.knowledgebase.backends.vikingdb_knowledge_backend import (
58+
VikingDBKnowledgeBackend,
59+
)
6160

62-
raise ValueError(f"Unsupported knowledgebase backend: {backend}")
61+
return VikingDBKnowledgeBackend
62+
case _:
63+
raise ValueError(f"Unsupported knowledgebase backend: {backend}")
64+
except ImportError as e:
65+
if "llama_index" in str(e) or "llama-index" in str(e):
66+
raise ImportError(
67+
"KnowledgeBase functionality requires 'veadk-python[extensions]'. "
68+
"Please install it via `pip install veadk-python[extensions]`."
69+
) from e
70+
raise e
6371

6472

6573
class KnowledgeBase(BaseModel):

veadk/memory/long_term_memory.py

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,47 @@
3737

3838

3939
def _get_backend_cls(backend: str) -> type[BaseLongTermMemoryBackend]:
40-
match backend:
41-
case "local":
42-
from veadk.memory.long_term_memory_backends.in_memory_backend import (
43-
InMemoryLTMBackend,
44-
)
45-
46-
return InMemoryLTMBackend
47-
case "opensearch":
48-
from veadk.memory.long_term_memory_backends.opensearch_backend import (
49-
OpensearchLTMBackend,
50-
)
40+
try:
41+
match backend:
42+
case "local":
43+
from veadk.memory.long_term_memory_backends.in_memory_backend import (
44+
InMemoryLTMBackend,
45+
)
5146

52-
return OpensearchLTMBackend
53-
case "viking":
54-
from veadk.memory.long_term_memory_backends.vikingdb_memory_backend import (
55-
VikingDBLTMBackend,
56-
)
47+
return InMemoryLTMBackend
48+
case "opensearch":
49+
from veadk.memory.long_term_memory_backends.opensearch_backend import (
50+
OpensearchLTMBackend,
51+
)
5752

58-
return VikingDBLTMBackend
59-
case "redis":
60-
from veadk.memory.long_term_memory_backends.redis_backend import (
61-
RedisLTMBackend,
62-
)
53+
return OpensearchLTMBackend
54+
case "viking":
55+
from veadk.memory.long_term_memory_backends.vikingdb_memory_backend import (
56+
VikingDBLTMBackend,
57+
)
6358

64-
return RedisLTMBackend
65-
case "mem0":
66-
from veadk.memory.long_term_memory_backends.mem0_backend import (
67-
Mem0LTMBackend,
68-
)
59+
return VikingDBLTMBackend
60+
case "redis":
61+
from veadk.memory.long_term_memory_backends.redis_backend import (
62+
RedisLTMBackend,
63+
)
6964

70-
return Mem0LTMBackend
65+
return RedisLTMBackend
66+
case "mem0":
67+
from veadk.memory.long_term_memory_backends.mem0_backend import (
68+
Mem0LTMBackend,
69+
)
7170

72-
raise ValueError(f"Unsupported long term memory backend: {backend}")
71+
return Mem0LTMBackend
72+
case _:
73+
raise ValueError(f"Unsupported long term memory backend: {backend}")
74+
except ImportError as e:
75+
if "llama_index" in str(e) or "llama-index" in str(e):
76+
raise ImportError(
77+
"LongTermMemory functionality requires 'veadk-python[extensions]'. "
78+
"Please install it via `pip install veadk-python[extensions]`."
79+
) from e
80+
raise e
7381

7482

7583
class LongTermMemory(BaseMemoryService, BaseModel):

0 commit comments

Comments
 (0)