in components/llm_service/src/services/query/query_service.py [0:0]
def delete_engine(q_engine: QueryEngine, hard_delete: bool=False):
"""
Delete query engine and associated models and vector store data.
"""
Logger.info(f"Deleting query engine [{q_engine.id}]"
f" hard_delete=[{hard_delete}]")
# delete vector store data
try:
if q_engine.query_engine_type == QE_TYPE_VERTEX_SEARCH:
delete_vertex_search(q_engine)
else:
qe_vector_store = vector_store_from_query_engine(q_engine)
qe_vector_store.delete()
except Exception:
# we make this error non-fatal as we want to delete the models
Logger.error(
f"error deleting vector store for query engine {q_engine.id}")
Logger.error(traceback.print_exc())
if hard_delete is True:
Logger.info(f"performing hard delete of query engine {q_engine.id}")
# delete query docs and chunks
QueryDocument.collection.filter(
"query_engine_id", "==", q_engine.id
).delete()
QueryDocumentChunk.collection.filter(
"query_engine_id", "==", q_engine.id
).delete()
QueryReference.collection.filter(
"query_engine_id", "==", q_engine.id
).delete()
QueryResult.collection.filter(
"query_engine_id", "==", q_engine.id
).delete()
# delete query engine
QueryEngine.delete_by_id(q_engine.id)
else:
Logger.info(f"performing soft delete of query engine {q_engine.id}")
# delete query docs and chunks
qdocs = QueryDocument.collection.filter(
"query_engine_id", "==", q_engine.id).fetch()
for qd in qdocs:
qd.soft_delete_by_id(qd.id)
qchunks = QueryDocumentChunk.collection.filter(
"query_engine_id", "==", q_engine.id).fetch()
for qc in qchunks:
qc.soft_delete_by_id(qc.id)
qrefs = QueryReference.collection.filter(
"query_engine_id", "==", q_engine.id).fetch()
for qr in qrefs:
qr.soft_delete_by_id(qr.id)
qres = QueryResult.collection.filter(
"query_engine_id", "==", q_engine.id).fetch()
for qr in qres:
qr.soft_delete_by_id(qr.id)
# delete query engine
QueryEngine.soft_delete_by_id(q_engine.id)
Logger.info(f"Successfully deleted q_engine=[{q_engine.name}]")