Skip to content

Commit 035e16c

Browse files
committed
fix: typechecking and extensions
1 parent 528f324 commit 035e16c

File tree

3 files changed

+40
-38
lines changed

3 files changed

+40
-38
lines changed

pyproject.toml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@ dependencies = [
2828
"cookiecutter>=2.6.0", # For cloud deploy # For OpenSearch database
2929
"opensearch-py==2.8.0",
3030
"omegaconf>=2.3.0", # For agent builder
31+
]
32+
33+
[project.scripts]
34+
veadk = "veadk.cli.cli:veadk"
35+
36+
[project.optional-dependencies]
37+
extensions = [
38+
"redis>=5.0", # For Redis database
39+
"pymysql>=1.1.1", # For MySQL database
40+
"volcengine>=1.0.193", # For Viking DB
41+
"tos>=2.8.4", # For TOS storage and Viking DB
3142
"llama-index>=0.14.0",
3243
"llama-index-embeddings-openai-like>=0.2.2",
3344
"llama-index-llms-openai-like>=0.5.1",
@@ -36,11 +47,6 @@ dependencies = [
3647
"mcp-server-vikingdb-memory",
3748
"psycopg2-binary>=2.9.10",
3849
]
39-
40-
[project.scripts]
41-
veadk = "veadk.cli.cli:veadk"
42-
43-
[project.optional-dependencies]
4450
database = [
4551
"redis>=5.0", # For Redis database
4652
"pymysql>=1.1.1", # For MySQL database

veadk/agent.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from __future__ import annotations
1616

17-
from typing import Optional, Union
17+
from typing import TYPE_CHECKING, Optional, Union
1818

1919
from google.adk.agents import LlmAgent, RunConfig
2020
from google.adk.agents.base_agent import BaseAgent
@@ -32,15 +32,17 @@
3232
DEFAULT_MODEL_EXTRA_CONFIG,
3333
)
3434
from veadk.evaluation import EvalSetRecorder
35-
from veadk.knowledgebase import KnowledgeBase
36-
from veadk.memory.long_term_memory import LongTermMemory
3735
from veadk.memory.short_term_memory import ShortTermMemory
3836
from veadk.prompts.agent_default_prompt import DEFAULT_DESCRIPTION, DEFAULT_INSTRUCTION
3937
from veadk.tracing.base_tracer import BaseTracer
4038
from veadk.utils.logger import get_logger
4139
from veadk.utils.patches import patch_asyncio
4240
from veadk.version import VERSION
4341

42+
if TYPE_CHECKING:
43+
from veadk.knowledgebase import KnowledgeBase
44+
from veadk.memory.long_term_memory import LongTermMemory
45+
4446
patch_asyncio()
4547
logger = get_logger(__name__)
4648

veadk/knowledgebase/backends/vikingdb_knowledge_backend.py

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,10 @@ def precheck_index_naming(self):
9090
def model_post_init(self, __context: Any) -> None:
9191
self.precheck_index_naming()
9292
# check whether collection exist, if not, create it
93-
if not self._collection_exist():
94-
logger.info(
95-
f"VikingDB knowledgebase collection {self.index} does not exist, creating it..."
93+
if not self.collection_status()["existed"]:
94+
logger.warning(
95+
f"VikingDB knowledgebase collection {self.index} does not exist, please create it first..."
9696
)
97-
self._create_collection()
9897

9998
@override
10099
def add_from_directory(self, directory: str, **kwargs) -> bool:
@@ -175,7 +174,7 @@ def add_from_text(self, text: str | list[str], **kwargs) -> bool:
175174
def search(self, query: str, top_k: int = 5) -> list:
176175
return self._search_knowledge(query=query, top_k=top_k)
177176

178-
def delete_collection(self):
177+
def delete_collection(self) -> bool:
179178
DELETE_COLLECTION_PATH = "/api/knowledge/collection/delete"
180179

181180
response = self._do_request(
@@ -188,21 +187,25 @@ def delete_collection(self):
188187
)
189188

190189
if response.get("code") != 0:
191-
raise ValueError(f"Error during collection deletion: {response}")
190+
logger.error(f"Error during collection deletion: {response}")
191+
return False
192+
return True
192193

193-
def delete_doc_by_id(self, doc_id: str):
194+
def delete_doc_by_id(self, id: str) -> bool:
194195
DELETE_DOC_PATH = "/api/knowledge/doc/delete"
195196
response = self._do_request(
196197
body={
197198
"collection_name": self.index,
198199
"project": self.volcengine_project,
200+
"doc_id": id,
199201
},
200202
path=DELETE_DOC_PATH,
201203
method="POST",
202204
)
203205

204206
if response.get("code") != 0:
205-
raise ValueError(f"Error during document deletion: {response}")
207+
return False
208+
return True
206209

207210
def list_docs(self, offset: int = 0, limit: int = -1):
208211
"""List documents in collection.
@@ -272,30 +275,21 @@ def collection_status(self):
272275
path=COLLECTION_INFO_PATH,
273276
method="POST",
274277
)
275-
return response
276-
277-
def _collection_exist(self) -> bool:
278-
"""List docs in collection, error code 0 means collection exist, error code 1000005 means collection not exist"""
279-
LIST_DOC_PATH = "/api/knowledge/doc/list"
280-
281-
response = self._do_request(
282-
body={
283-
"collection_name": self.index,
284-
},
285-
path=LIST_DOC_PATH,
286-
method="POST",
287-
)
288-
289-
if response.get("code") == 0:
290-
return True
291-
elif response.get("code") == 1000005:
292-
return False
278+
if response["code"] == 0:
279+
status = response["data"]["pipeline_list"][0]["index_list"][0]["status"]
280+
return {
281+
"existed": True,
282+
"status": status,
283+
}
284+
elif response["code"] == 1000005:
285+
return {
286+
"existed": False,
287+
"status": None,
288+
}
293289
else:
294-
raise ValueError(
295-
f"Error during collection existence check: {response.get('code')}"
296-
)
290+
raise ValueError(f"Error during collection status: {response}")
297291

298-
def _create_collection(self) -> None:
292+
def create_collection(self) -> None:
299293
CREATE_COLLECTION_PATH = "/api/knowledge/collection/create"
300294

301295
response = self._do_request(

0 commit comments

Comments
 (0)