Milvus-05-将文本变成向量并入库

文本变成向量这个操作是由大模型的embedding模型去做的,根据业界约定,如果你看到模型内部由encode开头的函数,指的就是将XXX变成向量,具体XXX是什么不一定,文本,图片,视频什么的都有可能,本文的代码是我从官方文档中摘出来的,本文将when this guy woke up this morning, he was white这句话变成向量

目录

安装国产智谱的embedding模型

我们不用官网的,我们这里使用国产embedding模型,智谱的模型主要官网简洁,申请key特别好找,能免费用一些,阿里云的控制台太复杂了,找个key费死劲了,其次就是国产的网络好

cpp 复制代码
# 安装paraphrase-albert-small-v2,服务器在国外,不好用
# pip install "pymilvus[model]" -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com  
# 安装国产智谱的embedding模型
pip install zhipuai

创建一个数据库表

cpp 复制代码
from pymilvus import MilvusClient,DataType

client = MilvusClient(uri="http://localhost:19530")
schema = client.create_schema()
# 创建一个collection_05的表,有3个字段,一个叫id的主键字段,一个叫vector的向量字段,一个叫text的普通字段
schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True, auto_id=True)
# 设置vector字段的维度为2048,因为我们后面用的智谱embedding模型将文本转换成的向量,维度就是2048,否则和数据库维度不同会报错
schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=2048)
schema.add_field(field_name="text", datatype=DataType.VARCHAR)
client.create_collection(
    collection_name="collection_05",
    # metric_type="L2",假设我这里设置L2,生效的只有vector字段,因为在id,vector和text三个字段中,只有vector字段是向量字段,另外两个不是
    schema = schema
)

代码执行完毕,通过ATTU查看如下图

使用智谱embedding模型将文本转换成向量并存入到Milvus数据库的collection_05的表中

cpp 复制代码
from zhipuai import ZhipuAI
from pymilvus import MilvusClient
# 创建智谱python客户端
zhipu_client = ZhipuAI(api_key="智谱的API-key,在官网注册帐号,很好找,新建一个key,自动免费试用")

# 我们自己定义一句话,这句话出自经典美剧《越狱》T-bag名场面,你不会不知道吧????
docs = [
    "When this guy woke up this morning,",
    "he was white."
]
# 我们使用智谱的embedding-3模型,它还有2,但是我看3便宜,以后花钱的时候可以花几块钱买个3,测试够用了
response = zhipu_client.embeddings.create(
      model="embedding-3",
      input=docs
  )
vectors = [item.embedding for item in response.data]

data = [
    {"id": i, "vector": vectors[i], "text": docs[i]}
    for i in range(len(vectors))
]

# 将生成的数据插入到数据库
milvus_client = MilvusClient(uri="http://localhost:19530")
res = milvus_client.insert(collection_name="collection_05", data=data)
print(res)

通过ATTU查看Milvus中刚刚插入的数据

相关推荐
TheBestRucy8 天前
从零构建企业级“中文法律智能问答系统”:FastAPI+Milvus+混合检索+真流式RAG实战
fastapi·milvus
Flynn Liang9 天前
内存/Redis/PGVector/Milvus/ES 怎么选?Spring AI VectorStore 抽象与向量库选型对照表
redis·elasticsearch·milvus·rag·springai·pgvector·向量库
kyrie_sakura10 天前
大模型学习19 大模型学习 - LangChain2_Retrieval(RAG-文档处理-向量处理检索-Milvus)
学习·langchain·milvus
Maiko Star10 天前
*【HM-LC】Milvus向量库详解:Collection、索引、混合检索与LangChain实战
langchain·milvus
霸道流氓气质12 天前
AI 图片管理平台:Spring AI 原生多模态、Milvus 向量语义检索与 MinIO 预签名安全管控的 React + 全栈生产级实战
人工智能·spring·milvus
一枕槐安48713 天前
多模态RAG实战:PDF图文混合文档检索问答本地跑通
langchain·pdf·milvus·ai应用开发·多模态rag
ai大模型-探索者17 天前
BGE-M3三种向量在Milvus怎么存(稠密、稀疏、多向量)
milvus·稀疏·多向量·稠密
唠点键盘之外的19 天前
29 切片的权限隔离(实战篇):Milvus + Spring AI,从 0 搭一条带权限过滤的检索链路
人工智能·spring·milvus
ai大模型-探索者19 天前
Milvus向量数据库(介绍与使用)
数据库·milvus
Crayon Lin20 天前
Milvus向量数据库入门
数据库·milvus