diff --git a/src/common/cache_manager.py b/src/common/cache_manager.py index 7d9003a4a..3bafea825 100644 --- a/src/common/cache_manager.py +++ b/src/common/cache_manager.py @@ -134,7 +134,9 @@ class CacheManager: if semantic_query and self.embedding_model: embedding_result = await self.embedding_model.get_embedding(semantic_query) if embedding_result: - validated_embedding = self._validate_embedding(embedding_result) + # embedding_result是一个元组(embedding_vector, model_name),取第一个元素 + embedding_vector = embedding_result[0] if isinstance(embedding_result, tuple) else embedding_result + validated_embedding = self._validate_embedding(embedding_vector) if validated_embedding is not None: query_embedding = np.array([validated_embedding], dtype='float32') @@ -250,12 +252,14 @@ class CacheManager: ) # 写入语义缓存 - if semantic_query and self.embedding_model: - embedding_result = await self.embedding_model.get_embedding(semantic_query) - if embedding_result: - validated_embedding = self._validate_embedding(embedding_result) - if validated_embedding is not None: - try: + if semantic_query and self.embedding_model and self.chroma_collection: + try: + embedding_result = await self.embedding_model.get_embedding(semantic_query) + if embedding_result: + # embedding_result是一个元组(embedding_vector, model_name),取第一个元素 + embedding_vector = embedding_result[0] if isinstance(embedding_result, tuple) else embedding_result + validated_embedding = self._validate_embedding(embedding_vector) + if validated_embedding is not None: embedding = np.array([validated_embedding], dtype='float32') # 写入 L1 Vector new_id = self.l1_vector_index.ntotal