fix: rare embedding issue.

This commit is contained in:
david
2024-12-10 09:00:22 +08:00
parent 11d8440393
commit d0a4ef252e

View File

@@ -107,10 +107,16 @@ class NanoVectorDBStorage(BaseVectorStorage):
embeddings = await f embeddings = await f
embeddings_list.append(embeddings) embeddings_list.append(embeddings)
embeddings = np.concatenate(embeddings_list) embeddings = np.concatenate(embeddings_list)
for i, d in enumerate(list_data): if len(embeddings) == len(list_data):
d["__vector__"] = embeddings[i] for i, d in enumerate(list_data):
results = self._client.upsert(datas=list_data) d["__vector__"] = embeddings[i]
return results results = self._client.upsert(datas=list_data)
return results
else:
# sometimes the embedding is not returned correctly. just log it.
logger.error(
f"embedding is not 1-1 with data, {len(embeddings)} != {len(list_data)}"
)
async def query(self, query: str, top_k=5): async def query(self, query: str, top_k=5):
embedding = await self.embedding_func([query]) embedding = await self.embedding_func([query])