Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,10 @@ dependencies = [
"mcp==1.23.0", # There might be some async generator problem logs in mcp 1.25.0
"cookiecutter==2.6.0", # For cloud deploy
"omegaconf==2.3.0", # For agent builder
"llama-index==0.14.0",
"llama-index-embeddings-openai-like==0.2.2",
"llama-index-llms-openai-like==0.5.1",
"llama-index-vector-stores-opensearch==0.6.1",
"psycopg2-binary==2.9.10", # For PostgreSQL database (short term memory)
"asyncpg>=0.29.0", # For async PostgreSQL database (short term memory)
"pymysql==1.1.1", # For MySQL database (short term memory)
"aiomysql==0.3.2", # For async MySQL database (short term memory)
"opensearch-py==2.8.0",
"filetype==1.2.0",
"vikingdb-python-sdk>=0.1.3",
"agentkit-sdk-python>=0.2.0",
Expand All @@ -49,13 +44,18 @@ veadk = "veadk.cli.cli:veadk"

[project.optional-dependencies]
extensions = [
"redis>=5.0", # For Redis database
"tos>=2.8.4", # For TOS storage and Viking DB
"llama-index-vector-stores-redis>=0.6.1",
"cozeloop>=0.1.21", #For Cozeloop Prompt manager
"redis>=5.0", # For Redis database
"tos>=2.8.4", # For TOS storage and Viking DB
"cozeloop>=0.1.21", # For Cozeloop Prompt manager
"llama-index==0.14.0", # For KnowledgeBase and LongTermMemory
"llama-index-embeddings-openai-like==0.2.2", # For Embeddings
"llama-index-llms-openai-like==0.5.1", # For KnowledgeBase and LongTermMemory
"llama-index-vector-stores-redis>=0.6.1", # For Redis database
"llama-index-vector-stores-opensearch==0.6.1", # For Opensearch database
"opensearch-py==2.8.0",
]
database = [
"redis>=5.0", # For Redis database
"redis>=5.0", # For Redis database
"pymysql>=1.1.1", # For MySQL database
"volcengine>=1.0.193", # For Viking DB
"tos>=2.8.4", # For TOS storage and Viking DB
Expand Down
64 changes: 36 additions & 28 deletions veadk/knowledgebase/knowledgebase.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,39 +27,47 @@


def _get_backend_cls(backend: str) -> type[BaseKnowledgebaseBackend]:
match backend:
case "local":
from veadk.knowledgebase.backends.in_memory_backend import (
InMemoryKnowledgeBackend,
)

return InMemoryKnowledgeBackend
case "opensearch":
from veadk.knowledgebase.backends.opensearch_backend import (
OpensearchKnowledgeBackend,
)
try:
match backend:
case "local":
from veadk.knowledgebase.backends.in_memory_backend import (
InMemoryKnowledgeBackend,
)

return OpensearchKnowledgeBackend
case "viking":
from veadk.knowledgebase.backends.vikingdb_knowledge_backend import (
VikingDBKnowledgeBackend,
)
return InMemoryKnowledgeBackend
case "opensearch":
from veadk.knowledgebase.backends.opensearch_backend import (
OpensearchKnowledgeBackend,
)

return VikingDBKnowledgeBackend
case "redis":
from veadk.knowledgebase.backends.redis_backend import (
RedisKnowledgeBackend,
)
return OpensearchKnowledgeBackend
case "redis":
from veadk.knowledgebase.backends.redis_backend import (
RedisKnowledgeBackend,
)

return RedisKnowledgeBackend
case "tos_vector":
from veadk.knowledgebase.backends.tos_vector_backend import (
TosVectorKnowledgeBackend,
)
return RedisKnowledgeBackend
case "tos_vector":
from veadk.knowledgebase.backends.tos_vector_backend import (
TosVectorKnowledgeBackend,
)

return TosVectorKnowledgeBackend
return TosVectorKnowledgeBackend
case "viking":
from veadk.knowledgebase.backends.vikingdb_knowledge_backend import (
VikingDBKnowledgeBackend,
)

raise ValueError(f"Unsupported knowledgebase backend: {backend}")
return VikingDBKnowledgeBackend
case _:
raise ValueError(f"Unsupported knowledgebase backend: {backend}")
except ImportError as e:
if "llama_index" in str(e) or "llama-index" in str(e):
raise ImportError(
"KnowledgeBase functionality requires 'veadk-python[extensions]'. "
"Please install it via `pip install veadk-python[extensions]`."
) from e
raise e


class KnowledgeBase(BaseModel):
Expand Down
64 changes: 36 additions & 28 deletions veadk/memory/long_term_memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,39 +37,47 @@


def _get_backend_cls(backend: str) -> type[BaseLongTermMemoryBackend]:
match backend:
case "local":
from veadk.memory.long_term_memory_backends.in_memory_backend import (
InMemoryLTMBackend,
)

return InMemoryLTMBackend
case "opensearch":
from veadk.memory.long_term_memory_backends.opensearch_backend import (
OpensearchLTMBackend,
)
try:
match backend:
case "local":
from veadk.memory.long_term_memory_backends.in_memory_backend import (
InMemoryLTMBackend,
)

return OpensearchLTMBackend
case "viking":
from veadk.memory.long_term_memory_backends.vikingdb_memory_backend import (
VikingDBLTMBackend,
)
return InMemoryLTMBackend
case "opensearch":
from veadk.memory.long_term_memory_backends.opensearch_backend import (
OpensearchLTMBackend,
)

return VikingDBLTMBackend
case "redis":
from veadk.memory.long_term_memory_backends.redis_backend import (
RedisLTMBackend,
)
return OpensearchLTMBackend
case "viking":
from veadk.memory.long_term_memory_backends.vikingdb_memory_backend import (
VikingDBLTMBackend,
)

return RedisLTMBackend
case "mem0":
from veadk.memory.long_term_memory_backends.mem0_backend import (
Mem0LTMBackend,
)
return VikingDBLTMBackend
case "redis":
from veadk.memory.long_term_memory_backends.redis_backend import (
RedisLTMBackend,
)

return Mem0LTMBackend
return RedisLTMBackend
case "mem0":
from veadk.memory.long_term_memory_backends.mem0_backend import (
Mem0LTMBackend,
)

raise ValueError(f"Unsupported long term memory backend: {backend}")
return Mem0LTMBackend
case _:
raise ValueError(f"Unsupported long term memory backend: {backend}")
except ImportError as e:
if "llama_index" in str(e) or "llama-index" in str(e):
raise ImportError(
"LongTermMemory functionality requires 'veadk-python[extensions]'. "
"Please install it via `pip install veadk-python[extensions]`."
) from e
raise e


class LongTermMemory(BaseMemoryService, BaseModel):
Expand Down