瀏覽代碼

clean vector collection redis cache (#6494)

Jyong 9 月之前
父節點
當前提交
f38034e455

+ 12 - 9
api/core/rag/datasource/vdb/analyticdb/analyticdb_vector.py

@@ -293,15 +293,18 @@ class AnalyticdbVector(BaseVector):
         return documents
 
     def delete(self) -> None:
-        from alibabacloud_gpdb20160503 import models as gpdb_20160503_models
-        request = gpdb_20160503_models.DeleteCollectionRequest(
-            collection=self._collection_name,
-            dbinstance_id=self.config.instance_id,
-            namespace=self.config.namespace,
-            namespace_password=self.config.namespace_password,
-            region_id=self.config.region_id,
-        )
-        self._client.delete_collection(request)
+        try:
+            from alibabacloud_gpdb20160503 import models as gpdb_20160503_models
+            request = gpdb_20160503_models.DeleteCollectionRequest(
+                collection=self._collection_name,
+                dbinstance_id=self.config.instance_id,
+                namespace=self.config.namespace,
+                namespace_password=self.config.namespace_password,
+                region_id=self.config.region_id,
+            )
+            self._client.delete_collection(request)
+        except Exception as e:
+            raise e
 
 class AnalyticdbVectorFactory(AbstractVectorFactory):
     def init_vector(self, dataset: Dataset, attributes: list, embeddings: Embeddings):

+ 0 - 2
api/core/rag/datasource/vdb/tencent/tencent_vector.py

@@ -198,8 +198,6 @@ class TencentVector(BaseVector):
         self._db.drop_collection(name=self._collection_name)
 
 
-
-
 class TencentVectorFactory(AbstractVectorFactory):
     def init_vector(self, dataset: Dataset, attributes: list, embeddings: Embeddings) -> TencentVector:
 

+ 4 - 0
api/core/rag/datasource/vdb/vector_base.py

@@ -67,3 +67,7 @@ class BaseVector(ABC):
 
     def _get_uuids(self, texts: list[Document]) -> list[str]:
         return [text.metadata['doc_id'] for text in texts]
+
+    @property
+    def collection_name(self):
+        return self._collection_name

+ 5 - 0
api/core/rag/datasource/vdb/vector_factory.py

@@ -9,6 +9,7 @@ from core.rag.datasource.entity.embedding import Embeddings
 from core.rag.datasource.vdb.vector_base import BaseVector
 from core.rag.datasource.vdb.vector_type import VectorType
 from core.rag.models.document import Document
+from extensions.ext_redis import redis_client
 from models.dataset import Dataset
 
 
@@ -134,6 +135,10 @@ class Vector:
 
     def delete(self) -> None:
         self._vector_processor.delete()
+        # delete collection redis cache
+        if self._vector_processor.collection_name:
+            collection_exist_cache_key = 'vector_indexing_{}'.format(self._vector_processor.collection_name)
+            redis_client.delete(collection_exist_cache_key)
 
     def _get_embeddings(self) -> Embeddings:
         model_manager = ModelManager()