windows下的安装和部署
下载docker-compose.yml文件
https://github.com/milvus-io/milvus/releases
下载完成后修改文件名为docker-compose.yml,然后启动docker-desktop,并在安装目录下打开终端
docker compose up -d
安装完成后,安装可视化界面(可选)
https://github.com/zilliztech/attu/releases
安装完成即可
milvus的使用
创建连接
milvus_client = MilvusClient(host="0.0.0.0", port="19530")
创建集合,集合类似于关系型数据库中的表
milvus_client.create_collection(
collection_name="vector", #集合名称
dimension=768, #集合中存储的向量维度
metric_type="IP", # 设置了用于计算向量之间相似度的距离度量类型。在这里使用的是“内积”
consistency_level="Strong", # 设置了集合的一致性级别
插入向量数据
milvus_client.insert(collection_name="vector",data=data_vector)
向量检索
milvus_client.search(
collection_name=db_name, #检索的数据库
data=[self.embeddings.embed_query(question)], #将问题向量化
limit=3 #返回的entities数量
)
TIps:为理解检索片段输入大模型的细节,顺便复习langchain中prompt的用法
PromptTemplate
prompt_template = PromptTemplate.from_template(
"写一个关于 {content} 的 {adjective} 故事。"
)
prompt_template.format(adjective="文艺", content="历史")
输出
写一个关于历史的文艺的故事
ChatPromptTemplate
定义对话上下文
messages = [SystemMessage(content="你是一位知识问答专家,可以根据用户提供的文档内容和上下文内容来回答用户的问题。若问题与文档内容不想关,则拒绝回答。文档内容:{context}"),
HumanMessage(content="你好"),
AIMessage(content="你好!请问有什么能够帮您?")]
添加用户问题question变量
messages.append(HumanMessage(content=f"{question}"))
创建聊天提示模板
prompt = ChatPromptTemplate.from_messages(messages)
传入变量值,转化为列表格式,contexts和question都是传入的参数
input=prompt.format_messages(context=contexts, question=question)
最后将input喂给大模型