analyzer = build_default_analyzer(language="zh")
bm25_ef = BM25EmbeddingFunction(analyzer)
bm25_ef.load("D:/Downloads/bm25_msmarco_v1.json")
def test():
entities = [....]
for entity in entities:
docs_embeddings = bm25_ef.encode_documents([entity["content"]])
# Convert csr_array to the format Milvus expects (List of Dictionaries)
sparse_vector = {int(idx): float(val) for idx, val in zip(docs_embeddings[0].indices, docs_embeddings[0].data)}
entity["content_sparse"] = sparse_vector
res = client.upsert(collection_name=INDEX_NAME, data=entities)
return res["ids"]
File "d:\Develop\conda\envs\mkb\lib\concurrent\futures\_base.py", line 451, in result
return self.__get_result()
File "d:\Develop\conda\envs\mkb\lib\concurrent\futures\_base.py", line 403, in __get_result
raise self._exception
File "d:\Develop\conda\envs\mkb\lib\concurrent\futures\thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\Develop\CodeProjects\mkb\src\tests\mkb\storage\build_1k_data_for_milvus.py", line 52, in append_rag_eval_entry
res = client.upsert(collection_name=INDEX_NAME, data=entities)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 276, in upsert
raise ex from ex
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\milvus_client\milvus_client.py", line 272, in upsert
res = conn.upsert_rows(
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\decorators.py", line 148, in handler
raise e from e
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\decorators.py", line 144, in handler
return func(*args, **kwargs)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\decorators.py", line 183, in handler
return func(self, *args, **kwargs)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\decorators.py", line 123, in handler
raise e from e
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\decorators.py", line 87, in handler
return func(*args, **kwargs)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\client\grpc_handler.py", line 715, in upsert_rows
request = self._prepare_row_upsert_request(
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\client\grpc_handler.py", line 696, in _prepare_row_upsert_request
return Prepare.row_upsert_param(
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\client\prepare.py", line 461, in row_upsert_param
return cls._parse_row_request(request, fields_info, enable_dynamic, entities)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\client\prepare.py", line 389, in _parse_row_request
entity_helper.pack_field_value_to_field_data(v, field_data, field_info)
File "d:\Develop\conda\envs\mkb\lib\site-packages\pymilvus\client\entity_helper.py", line 361, in pack_field_value_to_field_data
raise ParamError(message="invalid input for sparse float vector")
pymilvus.exceptions.ParamError: <ParamError: (code=1, message=invalid input for sparse float vector)>
code:
trace back output:
What's the reason? How to solve it?