
文本变成向量这个操作是由大模型的embedding模型去做的根据业界约定如果你看到模型内部由encode开头的函数指的就是将XXX变成向量具体XXX是什么不一定文本图片视频什么的都有可能本文的代码是我从官方文档中摘出来的本文将when this guy woke up this morning, he was white这句话变成向量目录安装国产智谱的embedding模型创建一个数据库表使用智谱embedding模型将文本转换成向量并存入到Milvus数据库的collection_05的表中通过ATTU查看Milvus中刚刚插入的数据安装国产智谱的embedding模型我们不用官网的我们这里使用国产embedding模型智谱的模型主要官网简洁申请key特别好找能免费用一些阿里云的控制台太复杂了找个key费死劲了其次就是国产的网络好# 安装paraphrase-albert-small-v2服务器在国外不好用#pipinstallpymilvus[model]-i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com# 安装国产智谱的embedding模型 pip install zhipuai创建一个数据库表from pymilvusimportMilvusClient,DataType clientMilvusClient(urihttp://localhost:19530)schemaclient.create_schema()# 创建一个collection_05的表有3个字段一个叫id的主键字段一个叫vector的向量字段一个叫text的普通字段 schema.add_field(field_nameid,datatypeDataType.INT64,is_primaryTrue,auto_idTrue)# 设置vector字段的维度为2048因为我们后面用的智谱embedding模型将文本转换成的向量维度就是2048否则和数据库维度不同会报错 schema.add_field(field_namevector,datatypeDataType.FLOAT_VECTOR,dim2048)schema.add_field(field_nametext,datatypeDataType.VARCHAR)client.create_collection(collection_namecollection_05,#metric_typeL2,假设我这里设置L2生效的只有vector字段因为在idvector和text三个字段中只有vector字段是向量字段另外两个不是schemaschema)代码执行完毕通过ATTU查看如下图使用智谱embedding模型将文本转换成向量并存入到Milvus数据库的collection_05的表中from zhipuaiimportZhipuAIfrom pymilvusimportMilvusClient# 创建智谱python客户端 zhipu_clientZhipuAI(api_key智谱的API-key在官网注册帐号很好找新建一个key自动免费试用)# 我们自己定义一句话这句话出自经典美剧《越狱》T-bag名场面你不会不知道吧 docs[When this guy woke up this morning,,he was white.]# 我们使用智谱的embedding-3模型它还有2但是我看3便宜以后花钱的时候可以花几块钱买个3测试够用了 responsezhipu_client.embeddings.create(modelembedding-3,inputdocs)vectors[item.embeddingforitem in response.data]data[{id:i,vector:vectors[i],text:docs[i]}fori inrange(len(vectors))]# 将生成的数据插入到数据库 milvus_clientMilvusClient(urihttp://localhost:19530)resmilvus_client.insert(collection_namecollection_05,datadata)print(res)通过ATTU查看Milvus中刚刚插入的数据