ai相关:milvus:报错:pymilvus.exceptions.MilvusException: <MilvusException: (code=65535, message=the length(1024) of float data should divide the dim(1536))>
一,报错信息:
pymilvus.exceptions.MilvusException: <MilvusException: (code=65535, message=the length(1024) of float data should divide the dim(1536))>
二,原因
现这个报错的原因非常明确:传入 Milvus 的向量维度(1024)与 Milvus Collection 在创建时定义的维度(1536)不一致。
报错原因分析
报错信息拆解:
the length(1024) of float data should divide the dim(1536)
-
length(1024):你的 Embedding 模型(例如通义千问)实际生成并传入的向量维度是 1024。 -
dim(1536):Milvus 中对应的 Collection 设定的向量维度是 1536。
这通常是因为:
-
使用了通义千问的
text-embedding-v3模型(它的默认维度是 1024),但你在代码的MilvusVectorStore(dim=1536)中填了1536。 -
之前的旧 Collection 是按 1536 维创建的,后来更换了模型或修改了模型参数,导致维度对不上。
三,解决:
修改代码:
修改 MilvusVectorStore 的 dim 参数为 1024
如果你使用的是 text-embedding-v3,其默认向量维度就是 1024。
直接在代码中将 dim 修改为 1024:
例子:
# 1. 初始化 Milvus 向量存储
vector_store = MilvusVectorStore(
uri="http://localhost:19530", # Milvus 服务地址(若使用本地轻量版,可写为 "./milvus_demo.db")
collection_name="ai_service_docs", # 指定 Collection 名字
dim=1024, # 向量维度(需与使用的 Embedding 模型维度一致)
overwrite=True # 是否覆盖已存在的 collection
)
浙公网安备 33010602011771号