Langflow中配置Milvus注意事项

若在Langflow中使用Milvus作为Vector DB,则在配置时注意以下几点,很容易出错。

1.字段名称与字段属性必须要与Milvus中定义的匹配。Primary Field Name,Text Field Name与Vector Field Name


如上图对应的Milvus字段定义如下所示(使用Attu工具)

注意:vector字段的类型与长度必须要与Embedding中返回的长度与格式一致,否则会存入失败;另外metric_type要与具体的检索数据格式匹配。

2.若Milvus开启了认证功能,则填写的Connection Password不能只填写Milvus的密码,而应该是username:password格式的组合(若Milvus账号与密码分别为root与Abc123#,则此处填写的值应该为 root:Abc123#)。

一段milvus java sdk创建collection的示例

        //创建collection
        FieldType primaryKey = FieldType.newBuilder()
                .withName(ID)
                .withPrimaryKey(true)
                .withDataType(DataType.VarChar)
                .withMaxLength(20)
                .withDescription("pk")
                .build();
        //向量数据
        FieldType vectorKey = FieldType.newBuilder()
                .withName(VECTOR)
                .withDataType(DataType.FloatVector)
                .withDimension(this.dbPrivateDimension)
                .withDescription("vector")
                .build();
        //原始数据
        FieldType rawKey = FieldType.newBuilder()
                .withName(RAW)
                .withDataType(DataType.VarChar)
                .withMaxLength(2048)
                .withDescription("Raw data")
                .build();

        CollectionSchemaParam schemaParam = CollectionSchemaParam.newBuilder()
                .withFieldTypes(Arrays.asList(primaryKey, vectorKey, rawKey))
                .withEnableDynamicField(true)
                .build();
        CreateCollectionParam param = CreateCollectionParam.newBuilder()
                .withCollectionName(collectionName)
                .withDescription(collectionName + " desc...")
                .withSchema(schemaParam)
                .withConsistencyLevel(ConsistencyLevelEnum.BOUNDED)
                .build();
        R<RpcStatus> createStatus =milvusServiceClient.createCollection(param);

使用milvus java sdk 版本:2.3.5。