fix(cache): 兼容元组形式的 embedding_result

get_embedding 方法的返回值可能是一个包含向量和模型名称的元组
This commit is contained in:
minecraft1024a
2025-08-19 20:19:51 +08:00
committed by Windpicker-owo
parent dcecd9cf7d
commit 64e3d6d56b

View File

@@ -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