linux安装milvus数据库lite版本

linux安装milvus数据库lite版本

https://milvus.io/docs/milvus_lite.md

参考上述教程,直接安装该包即可。标准版和分布式版要运行docker。

pip install -U pymilvus

下面是官方的demo,一起看看

python 复制代码
from pymilvus import MilvusClient # 导入库,客户端
import numpy as np # 

# 创建客户端,并连接到一个名为 milvus_demo.db 的本地数据库。这个文件将用于存储 Milvus 数据库的索引和数据
client = MilvusClient("/root/RAG/milvus/milvus_demo.db")
client.create_collection(
    collection_name="demo_collection",
    dimension=4  # The vectors we will use in this demo has 384 dimensions
) # 创建集合,设置名称和向量维度数


# 待加入的文本,三条。
docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]
# 为这些文本构建虚拟向量
vectors = [[ np.random.uniform(-1, 1) for _ in range(4) ] for _ in range(len(docs)) ]
print(vectors)


# 构建json字典,这是真正传入数据库的东西
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
# insert方法插入数据
res = client.insert(
    collection_name="demo_collection",
    data=data
)
print(data)

# 检索数据,传入Query向量,结合布尔检索
res = client.search(
    collection_name="demo_collection",
    data=[vectors[0]],
    filter="subject == 'history'",
    limit=2,
    output_fields=["text", "subject"],
)
print(res)

# 查询数据,纯布尔检索
res = client.query(
    collection_name="demo_collection",
    filter="subject == 'history'",
    output_fields=["text", "subject"],
)
print(res)

# 根据布尔条件删除记录
res = client.delete(
    collection_name="demo_collection",
    filter="subject == 'history'",
)
print(res)

输出:

vector:

python 复制代码
[[-0.18993033343249377, -0.853204716673974, -0.6934232192055412, -0.7363553533144986], [0.6506801349937705, -0.5114297246706443, -0.6227428721418204, -0.4484672597247552], [0.3325751425210133, -0.5403168744637166, 0.6497994854622242, -0.7438264838676247]]

data:

python 复制代码
[{'id': 0, 'vector': [-0.18993033343249377, -0.853204716673974, -0.6934232192055412, -0.7363553533144986], 'text': 'Artificial intelligence was founded as an academic discipline in 1956.', 'subject': 'history'}, {'id': 1, 'vector': [0.6506801349937705, -0.5114297246706443, -0.6227428721418204, -0.4484672597247552], 'text': 'Alan Turing was the first person to conduct substantial research in AI.', 'subject': 'history'}, {'id': 2, 'vector': [0.3325751425210133, -0.5403168744637166, 0.6497994854622242, -0.7438264838676247], 'text': 'Born in Maida Vale, London, Turing was raised in southern England.', 'subject': 'history'}]

search的res:

python 复制代码
data: ["[{'id': 0, 'distance': 1.0, 'entity': {'text': 'Artificial intelligence was founded as an academic discipline in 1956.', 'subject': 'history'}}, {'id': 1, 'distance': 0.7123634815216064, 'entity': {'text': 'Alan Turing was the first person to conduct substantial research in AI.', 'subject': 'history'}}]"]

query的res:

python 复制代码
data: ["{'id': 0, 'text': 'Artificial intelligence was founded as an academic discipline in 1956.', 'subject': 'history'}", "{'id': 1, 'text': 'Alan Turing was the first person to conduct substantial research in AI.', 'subject': 'history'}", "{'id': 2, 'text': 'Born in Maida Vale, London, Turing was raised in southern England.', 'subject': 'history'}"] 

delete的res:

python 复制代码
[0, 1, 2]

在创建集合并插入数据时,Milvus 会默认使用 FLAT(扁平)索引。

可以在插入数据之后随时创建或修改索引。

PDF解析

安装llama-index:q是指安静模式

pip install -qU llama-index llama-parse

https://cloud.llamaindex.ai/api-key创建key

demo:

python 复制代码
import nest_asyncio
 
nest_asyncio.apply()
 
import os
 
os.environ["LLAMA_CLOUD_API_KEY"] = "llx-3WKY267STksBoUy22M61zilLkzjHCno6AK6QF6LtX8oE5BNl"

from llama_parse import LlamaParse
 
parser = LlamaParse(
    result_type="text", # markdown
    language="ch_sim",
    verbose=True,
    num_workers=4,
)

documents = parser.load_data("/root/RAG/data/刘浩东_应届_LMM.pdf")

print(documents)

Document(id_='7f37e73f-b251-4c76-9c50-1e3c0a271e8a', embedding=None, metadata={}, excluded_embed_metadata_keys=\[\], excluded_llm_metadata_keys=\[\], relationships={}, text=' 刘浩东\\n 156-9160-4654 2272463882@qq.com\\n\\n 教育经历\\n江苏大学 信息资源管理 硕士 2022.09 - 2025.07\\n西北大学 信息资源管理 本科 2018.09 - 2022.07\\n 主修课程:Python语言、信息检索、知识组织、数据挖掘\\n\\n 实习经历\\n医者AI 研发部 大模型算法实习生 2024.06 - 2024.08\\n口腔健康模型训练\\n 数据工程:调研华佗、好大夫等开源医学和口腔领域对话数据集,筛选、清洗并整理数据。\\n 指令微调:使用DeepSpeed和PEFT基于Qwen1.5-32B-chat进行单机多卡分布式训练,根据训练和验证集loss曲线调整超\\n 参数。在测试集上计算BLEU,ROUGE等指标验证微调效果。\\n 业务场景对比测试:使用vLLM部署模型,嵌入Dify工作流测试,封装为大模型竞技场,和Qwen1.5-32B-chat、Qwen2-\\n 72B-Instruct和真实回复内容进行主观评价。经过10余人的共计6000次投票,微调模型elo得分高出第二名210分,验证了\\n 微调模型的在口腔领域的专业性与用户接受度。\\n滴滴出行 效能平台部 nlp算法实习生 2023.10 - 2024.05\\n企业知识百科AI搜索框架设计和搭建,支持员工信息和公司内部文档问答\\n 数据工程:对多源异构数据进行清洗和集成,确保数据的质量和一致性;构建高质量的自我认知微调数据集;基于员工信\\n 息,构建监督微调数据集;使用大模型对内部文档进行语义摘要,与员工信息一起进行向量化处理,存入Milvus数据库,\\n 便于高效检索。\\n 模型微调:基于百川13B-chat进行自我认知微调和员工信息对话数据微调;构造相应测试集,准确率近75%;构造通用能\\n 力测试集,测试模型在提升特定领域性能的同时,不影响其通用能力。\\n 企业级RAG系统搭建:使用Milvus向量数据库存储员工信息和公司内部文档,建立高效的向量索引系统;通过多路召回机\\n 制提高检索相关性,结合BGE进行重排,确保检索结果的高相关性和精确度;设计并优化提示词,提升模型回复的质量和连\\n 贯性。在测试集上进行端到端的效果评测,整体准确率提升了近20%。\\n\\n 项目经历\\n舆情评论情感细粒度分析 负责人 2023.12 - 2024.02\\n改进含表情符号评论的细粒度情感分析能力\\n 数据处理:基于SMP2020开源数据集构造包含评论和表情符号的图文多模态数据集。\\n 模型构建:利用CLIP和BERT对表情图像和文本进行特征提取,通过交叉注意力机制实现两者的有效融合。\\n 研究成果:模型在测试集上的表现优越,六分类任务的F1得分达到75.31%,准确率为75.99%。论文正在审稿中。\\n微博舆情主题及情感演化的时空分析 负责人 2021.05 - 2021.07\\n分析新冠疫苗微博舆情主题和情感的时空变化\\n 数据采集与预处理:使用 Python 爬虫采集近2万微博和20万评论数据,并进行去重和清洗。\\n 分析框架搭建:使用Python实现LDA主题模型,采用飞桨训练BI-LSTM模型用于情感分类。\\n 研究成果:研究被提交至全国高校数据创新大赛并获优秀奖。此研究为公共卫生机构和医药公司提供了可复用的社交网络\\n 分析流程和有价值的公众情感洞察。代码在GitHub开源,已有543个star。\\n\\n 技能描述\\n LLM微调和应用:熟悉Linux,DeepSpeed分布式训练,PEFT参数高效微调,RAG系统构建及优化,实践经验丰富。\\n pytorch和SQL:熟悉pytorch模型开发全流程,擅长高效的数据查询和管理。\\n CET-6:具备良好的英文读写和沟通能力。\\n\\n 自我评价\\n 熟悉大模型微调应用全流程:从数据采集、预处理、构造到大模型微调和 RAG 系统搭建,都有深入的参与和实践。\\n 较强的自驱力及团队协作能力:能够积极探索新技术,与团队成员顺利协作,推进项目进展。', mimetype='text/plain', start_char_idx=None, end_char_idx=None, text_template='{metadata_str}\\n\\n{content}', metadata_template='{key}: {value}', metadata_seperator='\\n')

向量化

https://docs.llamaindex.ai/en/stable/examples/embeddings/huggingface/

采用本地的,直接用抱抱脸的接口

数据库

集合实例化,字段设置
https://milvus.io/docs/schema.md#Field-schema
https://blog.csdn.net/qq_43814415/article/details/134446263

数据搜索:
https://milvus.io/docs/index.md?tab=floating

实践教程

https://docs.llamaindex.ai/en/stable/use_cases/q_and_a/

rag的prompt:
https://docs.llamaindex.ai/en/stable/examples/prompts/prompts_rag/

相关推荐
一叶龙洲2 分钟前
ubuntu 25.10安装oh-my-zsh
linux·ubuntu
IT19952 分钟前
Linux笔记-使用systemd管理进程
linux·运维·笔记
J_liaty4 分钟前
SpringBoot整合Canal实现数据库实时同步
数据库·spring boot·后端·canal
草莓熊Lotso10 分钟前
从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析
linux·运维·服务器·数据库·c++·人工智能
User_芊芊君子13 分钟前
【LeetCode原地复写零】:双指针+逆向填充,O(n)时间O(1)空间最优解!
android·linux·leetcode
Mr_Xuhhh2 小时前
MySQL核心知识梳理:从连接到查询的完整指南
数据库·sql·mysql
wsxlgg2 小时前
MySQL中count(*)、count(1)、count(字段)的区别
数据库·mysql
pengdott8 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle
微露清风9 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
csudata9 小时前
绿色便携版PostgreSQL发行版重磅发布
数据库·postgresql