Skip to content

Commit 4254822

Browse files
committed
feat: delete kb on viking and vector
1 parent 26c4755 commit 4254822

File tree

4 files changed

+37
-16
lines changed

4 files changed

+37
-16
lines changed

veadk/database/database_adapter.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,18 @@ def query(self, query: str, index: str, top_k: int) -> list[str]:
201201
top_k=top_k,
202202
)
203203

204+
def delete(self, index: str) -> bool:
205+
self._validate_index(index)
206+
logger.debug(f"Deleting collection from vector database: index={index}")
207+
try:
208+
self.client.delete(collection_name=index)
209+
return True
210+
except Exception as e:
211+
logger.error(
212+
f"Failed to delete collection from vector database: index={index} error={e}"
213+
)
214+
return False
215+
204216
def delete_doc(self, index: str, id: str) -> bool:
205217
self._validate_index(index)
206218
logger.debug(f"Deleting documents from vector database: index={index} id={id}")
@@ -278,6 +290,11 @@ def query(self, query: str, index: str, top_k: int) -> list[str]:
278290

279291
return self.client.query(query, collection_name=index, top_k=top_k)
280292

293+
def delete(self, index: str) -> bool:
294+
self._validate_index(index)
295+
logger.debug(f"Deleting collection from Viking database: index={index}")
296+
return self.client.delete(collection_name=index)
297+
281298
def delete_doc(self, index: str, id: str) -> bool:
282299
self._validate_index(index)
283300
logger.debug(f"Deleting documents from vector database: index={index} id={id}")
@@ -343,6 +360,9 @@ def add(self, data: list[str], **kwargs):
343360
def query(self, query: str, **kwargs):
344361
return self.client.query(query, **kwargs)
345362

363+
def delete(self, index: str):
364+
self.client.delete()
365+
346366
def delete_doc(self, index: str, id: str) -> bool:
347367
return self.client.delete_doc(id)
348368

veadk/database/local_database.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def query(self, query: str, **kwargs: Any) -> list[str]:
4141

4242
def delete(self, **kwargs: Any):
4343
self.data = {}
44+
return True
4445

4546
def add(self, texts: list[str], **kwargs: Any):
4647
return self.add_texts(texts)

veadk/database/viking/viking_database.py

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,8 @@ def delete(self, **kwargs: Any):
270270
result = rsp.json()
271271
if result["code"] != 0:
272272
logger.error(f"Error in add_doc: {result['message']}")
273-
return {"error": result["message"]}
274-
return {}
273+
return False
274+
return True
275275

276276
def query(self, query: str, **kwargs: Any) -> list[str]:
277277
"""
@@ -413,19 +413,17 @@ def list_docs(
413413
"limit": limit,
414414
}
415415

416-
create_collection_req = prepare_request(
416+
list_doc_req = prepare_request(
417417
method="POST",
418418
path=list_docs_path,
419419
config=self.config,
420420
data=request_params,
421421
)
422422
resp = requests.request(
423-
method=create_collection_req.method,
424-
url="https://{}{}".format(
425-
g_knowledge_base_domain, create_collection_req.path
426-
),
427-
headers=create_collection_req.headers,
428-
data=create_collection_req.body,
423+
method=list_doc_req.method,
424+
url="https://{}{}".format(g_knowledge_base_domain, list_doc_req.path),
425+
headers=list_doc_req.headers,
426+
data=list_doc_req.body,
429427
)
430428

431429
result = resp.json()
@@ -450,19 +448,17 @@ def delete_by_id(self, collection_name: str, id: str) -> bool:
450448
"point_id": id,
451449
}
452450

453-
create_collection_req = prepare_request(
451+
delete_by_id_req = prepare_request(
454452
method="POST",
455453
path=delete_docs_path,
456454
config=self.config,
457455
data=request_params,
458456
)
459457
resp = requests.request(
460-
method=create_collection_req.method,
461-
url="https://{}{}".format(
462-
g_knowledge_base_domain, create_collection_req.path
463-
),
464-
headers=create_collection_req.headers,
465-
data=create_collection_req.body,
458+
method=delete_by_id_req.method,
459+
url="https://{}{}".format(g_knowledge_base_domain, delete_by_id_req.path),
460+
headers=delete_by_id_req.headers,
461+
data=delete_by_id_req.body,
466462
)
467463

468464
result = resp.json()

veadk/knowledgebase/knowledgebase.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ def search(self, query: str, app_name: str, top_k: int | None = None) -> list[st
8181
logger.warning(f"No documents found in knowledgebase. Query: {query}")
8282
return result
8383

84+
def delete(self, app_name: str) -> bool:
85+
index = build_knowledgebase_index(app_name)
86+
return self.adapter.delete(index=index)
87+
8488
def delete_doc(self, app_name: str, id: str) -> bool:
8589
index = build_knowledgebase_index(app_name)
8690
return self.adapter.delete_doc(index=index, id=id)

0 commit comments

Comments
 (0)