学习路程四 向量数据库Milvus安装与连接

news/2025/2/27 4:46:57

前序

在之前,已经简单完成了文档的加载,分割,向量化这些步骤,最后得到了结果。但是这些数据都是一次性的。假设一个律师所,有几千上万份卷宗,不可能每次使用都重新向量化数据吧。
所以我们需要有一个地方存储起来,比如关系型数据库MySQL,非关系性数据库MangoDB这样,对应类型数据存放起来。
而向量化的数据,需要使用到向量数据库

一、向量数据库简介

向量数据库(Vector Database)也叫矢量数据库,是专为存储、处理、分析「向量数据」而生的,能够基于目标向量快速进行相似度搜索,并返回最相近的数据。总而言之,就是用来存储和处理向量数据的数据库。

随着大型AI语言模型的崛起,向量数据库成为了解决模型“幻觉”问题的关键。它号称是LLM记忆的海马体,是大模型的记忆和存储核心,通过注入实时&私域数据的形式,可以使得LLM能够在更多通用场景中落地应用,缓解模型”幻觉“的问题。

常见的向量数据库:MilvusChromaWeaviateFaiss、Elasticsearch、PGVector、opensearch、腾讯VectorDB,ClickHouse

在这里插入图片描述

二、Milvus 向量数据库

基本介绍

Milvus(米尔乌斯)是一个高性能、高度可扩展的开源的向量数据库,诞生于2019年,由Zilliz开发并维护,后成为LF AI & Data Foundation的托管项目之一,支持针对 TB 级向量的增删改操作和近实时查询,具有高度灵活、稳定可靠以及高速查询等特点。Milvus 集成了 Faiss、NMSLIB、Annoy 等广泛应用的向量索引库,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel 等功能,同时大幅优化了向量检索的性能,可满足任何向量检索场景的应用需求,提供了一整套简单直观的 API,让你可以针对不同场景选择不同的索引类型。还可以对标量数据进行过滤,进一步提高了召回率,增强了搜索的灵活性。

Milvus可在从笔记本电脑到大规模分布式系统的各种环境中高效运行。

官网:https://milvus.io/

文档:https://milvus.io/docs/zh/overview.md

仓库:https://github.com/milvus-io/milvus

安装Milvus数据库

1. 安装docker

目前Milvus运行的环境都是在docker上,所以在安装Milvus之前,我们需要先确认docker和docker-compose已经安装到本地机子上了。

注意:

默认情况下,如果安装的docker是docker-desktop默认会顺便已经安装了docker-compose,则不需要再继续安装docker-compose,否则会报错问题,这时候需要卸载掉python安装的。

如果本地机子没有安装docker-compose,提前按以下命令安装一下:

python"># 这个命令必须保证自己的机子已经安装了docker和python3.8+
pip install docker-compose

跟我一样使用Mac的也需要注意。如果安装了docker desktop,但是在命令行运行docker-compose --version 失败的。可能是以下问题
在这里插入图片描述

python">sudo rm /usr/local/bin/docker-compose
sudo ln -s /Applications/Docker.app/Contents/Resources/cli-plugins/docker-compose /usr/local/bin/docker-compose

我通过上面这个方法后,可以成功解决问题。

2.下载Milvus镜像服务配置文件

下载链接:https://github.com/milvus-io/milvus/releases/download/v2.4.12/milvus-standalone-docker-compose.yml

下载完成以后,执行如下命令即可启动Milvus数据库:

docker-compose -f milvus-standalone-docker-compose.yml up -d

也是极其耗时的操作。
在这里插入图片描述
很容易就拉取失败了,还是配置一下docker,使用国内镜像源吧
在这里插入图片描述
docker设置新增国内镜像源

python">...
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://hub.rat.dev",
    "https://docker.1panel.live"
  ]

在这里插入图片描述
再次运行就可以慢慢等它拉取镜像了zzz

在这里插入图片描述
这样就是启动成功了。

关闭数据库服务镜像,命令如下:

docker-compose -f milvus-standalone-docker-compose.yml down

三、连接Milvus数据库

首先安装三方库

python">pip install pymilvus[model]
# 如果上面这个识别不了的,就用下面这种
pip install "pymilvus[model]"

# 如果觉得慢的一批,可以换一下国内镜像源哈
pip install  "pymilvus[model]" -i https://mirrors.aliyun.com/pypi/simple/

启动docker时,可以看到,默认端口是19530

方式1:

python">from pymilvus import connections, db

# 连接milvus数据库服务器
connections.connect(
    host="127.0.0.1",  # 连接服务端地址,
    port=19530,        # 连接端口,milvus默认监听19530
    alias='default',   # 连接的别名,如果不设置,默认为default,
    db_name='default'  # 连接的数据库,默认是default
)

# 判断是否连接成功
res = db.connections.has_connection('default')
print(res)

# 断开数据库连接
# 此处必须填写断开的连接别名
connections.disconnect('default')

在这里插入图片描述
方式2:

python">from pymilvus import MilvusClient

client = MilvusClient("http://localhost:19530")
# client = MilvusClient()  # 上面的内容可以简写
res = client.list_users()

print(res)
# 断开连接
client.close()

"""
输出结果 :['root'] 
"""

可以看到运行成功,能输出结果。针不戳。就可以继续后续的更多数据库相关的学习了。


http://www.niftyadmin.cn/n/5869451.html

相关文章

LangChain系列:精通LangChain的合并文档链

LangChain的合并链旨在解决语言模型处理长文本时的上下文限制问题,包含Stuff、MapReduce、Refine和Rerank四种策略。Stuff链通过简单拼接文档块实现快速处理,适用于短文本但受限于模型token容量;MapReduce链采用分治思想,先独立处…

Gradio全解11——使用transformers.agents构建Gradio UI(6)

大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(6) 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.6 通过agents构建Gradio UI11.6.1 ChatMessage数据类1. 数据结构2. 例程11.6.2 构建Gradio UI示例1. 代码及运行2. 代码解读参考文献前言 本…

【HTML— 快速入门】HTML 基础

准备工作 vscode下载 百度网盘 Subline Text 下载 Sublime Text下载 百度网盘 vscode 下载 Sublime Text 是一款轻量好用的文本编辑器,我们在写前端代码时,使用 Sublime Text 打开比使用记事本打开,得到的代码体验更好,比 vscode…

学习笔记05——HashMap实现原理及源码解析(JDK8)

HashMap实现原理及源码解析(JDK8) 一、核心设计思想 数组链表红黑树:桶数组存储Node节点,哈希冲突时形成链表,链表长度≥8且桶数量≥64时转红黑树扰动函数:(h key.hashCode()) ^ (h >>> 16) 消除…

springBoot统一响应类型3.0版本

前言&#xff1a;起于环境&#xff0c;先于实践&#xff0c;源于变化&#xff0c;升于思考&#xff0c;再于实践&#xff0c;形于总结——实践至上&#xff01; 简单回顾&#xff1a; /*** 基础统一响应类* param <T>*/Data public class apiResult<T> {private in…

九、数据治理架构流程

一、总体结构 《数据治理架构流程图》&#xff08;Data Governance Architecture Flowchart&#xff09; 水平结构&#xff1a;流程图采用水平组织&#xff0c;显示从数据源到数据应用的进程。 垂直结构&#xff1a;每个水平部分进一步划分为垂直列&#xff0c;代表数据治理的…

在WINDOWS系统使用CMake gui编译NLopt配合VSCode使用

1. 准备工作 安装CMake&#xff1a;从CMake官网下载并安装CMake。下载Nlopt源码&#xff1a;从Nlopt官网或GitHub仓库下载Nlopt源码。安装编译器&#xff1a;确保已安装Visual Studio或其他支持的编译器&#xff08;如MinGW&#xff09;。 2. 配置CMake 方式1 打开CMake GU…

网页五子棋——项目测试

目录 测试用例设计 功能测试 注册功能测试 正常注册 异常注册 登录功能测试 正常登录 异常登录 匹配功能测试 对战功能测试 自动化测试 引入依赖 Utils 注册测试 登录测试 匹配测试 RunTest 界面测试 性能测试 总结 测试用例设计 在本篇文章中&#xff0c;…