From 64e3d6d56badcbefc6c67939b308fc0b7c600bda Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Tue, 19 Aug 2025 20:19:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(cache):=20=E5=85=BC=E5=AE=B9=E5=85=83?= =?UTF-8?q?=E7=BB=84=E5=BD=A2=E5=BC=8F=E7=9A=84=20embedding=5Fresult?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get_embedding 方法的返回值可能是一个包含向量和模型名称的元组 --- src/common/cache_manager.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) 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