Код: Выделить всё
arduino
ParamError: (code=1, message=invalid input для разреженного вектора с плавающей запятой: ожидается 1 строка)
Может ли кто-нибудь помочь мне понять, что может быть причиной этой проблемы?
Вот минимальный воспроизводимый пример моего кода:
Код: Выделить всё
from pymilvus import Collection, CollectionSchema, FieldSchema, DataType, connections
# Connect to Milvus
connections.connect()
# Define collection schema
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True),
FieldSchema(name="dense_vector", dtype=DataType.FLOAT_VECTOR, dim=3),
FieldSchema(name="sparse_vector", dtype=DataType.SPARSE_FLOAT_VECTOR),
]
schema = CollectionSchema(fields, description="Demo collection with dense and sparse vectors")
# Create collection
collection_name = "test_collection"
collection = Collection(name=collection_name, schema=schema)
# Data to insert
dense_vectors = [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]]
sparse_vectors = [[(0, 0.1), (2, 0.3)], [(1, 0.2), (2, 0.6)]]
data = [
[None, None], # Auto-ID
dense_vectors,
sparse_vectors,
]
# Insert data into the collection
try:
collection.insert(data)
except Exception as e:
print(f"Error: {e}")
Когда я запускаю этот код, я обнаруживаю следующую ошибку:
Код: Выделить всё
ParamError: (code=1, message=invalid input for sparse float vector: expect 1 row)
Я ожидаю, что как плотные, так и разреженные векторы будут успешно вставлены в коллекцию.
Фактическое поведение
Вставка завершается ошибкой, описанной выше.
Дополнительная информация
- Версия Milvus: 2.4.7
- Версия Python: 3.11
Подробнее здесь: https://stackoverflow.com/questions/791 ... ng-vectors