mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-07-23 04:12:13 +00:00
fix (vector store) Database refresh error, vector collection deduplication consistency issue (#2465)
Co-authored-by: tam <tanwe@fulan.com.cn>
This commit is contained in:
parent
11c544ef5d
commit
6a79c8c622
@ -201,16 +201,53 @@ class ChromaStore(VectorStoreBase):
|
|||||||
return ids
|
return ids
|
||||||
|
|
||||||
def delete_vector_name(self, vector_name: str):
|
def delete_vector_name(self, vector_name: str):
|
||||||
"""Delete vector name."""
|
"""Delete vector name and clean up resources.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
vector_name (str): Name of the vector to delete
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if deletion was successful, False otherwise
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
Exception: If any error occurs during deletion
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
from chromadb.api.client import SharedSystemClient
|
from chromadb.api.client import SharedSystemClient
|
||||||
except ImportError:
|
except ImportError:
|
||||||
raise ImportError("Please install chroma package first.")
|
raise ImportError("Please install chroma package first.")
|
||||||
|
|
||||||
logger.info(f"chroma vector_name:{vector_name} begin delete...")
|
logger.info(f"chroma vector_name:{vector_name} begin delete...")
|
||||||
self._chroma_client.delete_collection(self._collection.name)
|
|
||||||
SharedSystemClient.clear_system_cache()
|
try:
|
||||||
self._clean_persist_folder()
|
# Check if collection exists first
|
||||||
return True
|
collections = self._chroma_client.list_collections()
|
||||||
|
collection_exists = self._collection.name in collections
|
||||||
|
|
||||||
|
if not collection_exists:
|
||||||
|
logger.warning(
|
||||||
|
f"Collection {self._collection.name} does not exist, skip delete"
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
|
||||||
|
# Delete collection if it exists
|
||||||
|
self._chroma_client.delete_collection(self._collection.name)
|
||||||
|
SharedSystemClient.clear_system_cache()
|
||||||
|
|
||||||
|
# Clean persist folder if it exists
|
||||||
|
if os.path.exists(self.persist_dir):
|
||||||
|
try:
|
||||||
|
self._clean_persist_folder()
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to clean persist folder: {e}")
|
||||||
|
# Even if folder cleanup fails, collection deletion succeeded
|
||||||
|
return True
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error during vector store deletion: {e}")
|
||||||
|
raise
|
||||||
|
|
||||||
def delete_by_ids(self, ids):
|
def delete_by_ids(self, ids):
|
||||||
"""Delete vector by ids."""
|
"""Delete vector by ids."""
|
||||||
|
Loading…
Reference in New Issue
Block a user