向量数据库weaviate安装和部署

向量数据库weaviate

1.简介

  • Weaviate 是一种开源的类型向量搜索引擎数据库。
  • Weaviate 允许您以类属性的方式存储 JSON 文档,同时将机器学习向量附加到这些文档上,以在向量空间中表示它们。
  • Weaviate 可以独立使用(即带上您的向量),也可以与各种模块一起使用,这些模块可以为您进行向量化并扩展核心功能。
  • Weaviate 具有 GraphQL-API,以便轻松访问您的数据。
    Weaviate 详细介绍:
    Weaviate 是一种低延迟的向量搜索引擎,支持不同的媒体类型(文本、图像等)。它提供语义搜索、问答提取、分类、可定制模型(PyTorch/TensorFlow/Keras)等功能。Weaviate 从头开始使用 Go 构建,可以存储对象和向量,允许将向量搜索与结构化过滤器和云原生数据库的容错性结合起来。通过 GraphQL、REST 和各种客户端编程语言都可以访问它。
    官网地址:https://weaviate.io/

2.各种向量库对比

向量数据库对比:Weaviate、Milvus和Qdrant

3.安装weaviate

1.使用Xshell连接到Ubuntu服务器
2.下载Weaviate Docker镜像

注意:从Docker Hub下载Weaviate的最新镜像,如果拉不下来需要替换镜像。

docker pull semitechnologies/weaviate:latest
3.运行Weaviate容器
docker run -d --name weaviate \
    --restart=always \
    -p 8080:8080 \
    -p 50051:50051 \
    -e "AUTHENTICATION_APIKEY_ENABLED=true" \
    -e "AUTHENTICATION_APIKEY_ALLOWED_KEYS=test-secret-key,test2-secret-key" \
    -e "AUTHENTICATION_APIKEY_USERS=test@2024.com,test2@2024.com" \
    -e "AUTHORIZATION_ADMINLIST_ENABLED=true" \
    -e "AUTHORIZATION_ADMINLIST_USERS=test@2024.com" \
    -e "AUTHORIZATION_ADMINLIST_READONLY_USERS=test2@2024.com" \
    -e WEAVIATE_HOSTNAME=0.0.0.0 \
    semitechnologies/weaviate:latest

-d: 这个选项让容器在后台运行,即以守护进程模式运行。
–name weaviate: 给容器命名为 weaviate,这有助于以后通过名称来引用该容器。
–restart=always: 配置容器在宿主机重启后自动启动。
-p 8080:8080: 将容器内的 8080 端口映射到宿主机的 8080 端口。这样,你就可以通过访问宿主机的 8080 端口来访问容器内的服务。
-p 50051:50051: 同上,但映射的是 50051 端口,通常用于 gRPC 通信。
-e “AUTHENTICATION_APIKEY_ENABLED=true”: 启用 API 密钥认证功能。
-e “AUTHENTICATION_APIKEY_ALLOWED_KEYS=test-secret-key,test2-secret-key”: 指定允许使用的 API 密钥列表。
-e “AUTHENTICATION_APIKEY_USERS=test@2024.com,test2@2024.com”: 关联密钥与用户邮箱,这里两个密钥分别对应两个用户。
-e “AUTHORIZATION_ADMINLIST_ENABLED=true”: 开启管理员列表授权。
-e “AUTHORIZATION_ADMINLIST_USERS=test@2024.com”: 指定管理员列表中的用户,这里的 test@2024.com 具有管理员权限。
-e “AUTHORIZATION_ADMINLIST_READONLY_USERS=test2@2024.com”: 指定只读权限的用户列表,test2@2024.com 在此配置下只能进行读取操作。
-e WEAVIATE_HOSTNAME=0.0.0.0: 设置 Weaviate 的主机名。0.0.0.0 表示监听所有可用网络接口。
semitechnologies/weaviate:latest: 指定要从 Docker Hub 下载并运行的 Weaviate 镜像的最新版本。
通过这个命令,你将启动一个安全配置的 Weaviate 实例,具有用户身份验证和访问控制功能。

4.测试连接

导入依赖

pip install -U weaviate-client

test.py

import weaviate
from weaviate.auth import AuthApiKey

client = weaviate.connect_to_local(
    auth_credentials=AuthApiKey("test-secret-key")
)
# 自定义连接
client = weaviate.connect_to_custom(
    skip_init_checks=False,
    http_host="127.0.0.1",
    http_port=8080,
    http_secure=False,
    grpc_host="127.0.0.1",
    grpc_port=50051,
    grpc_secure=False,
    # 对应AUTHENTICATION_APIKEY_ALLOWED_KEYS中的密钥
    # 注意:此处只需要密钥即可,不需要用户名称
    auth_credentials=AuthApiKey("test-secret-key")
)
print(client.is_ready())
print(client.close())

注意:weaviate.connect_to_local连接的本地部署的,weaviate.connect_to_custom可以连接服务器上部署的向量服务器。http_host和grpc_host替换服务器地址,两个是一样的

5.注意事项

如果你翻墙了或者开了代理,weaviate.connect_to_custom/weaviate.connect_to_local报502,连接失败。
开启代理解决办法:Clash Verge点击系统代理,代理绕过里面添加192.168.*(代理里面使用规则,不要使用全球)

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
向量数据库分布式部署是指将向量数据库的存储和计算能力分布到多个节点上,以提高系统的性能和可扩展性。在分布式部署中,通常会有一个主节点和多个从节点组成集群,主节点负责协调整个系统的工作,而从节点则负责存储和处理数据。 在向量数据库分布式部署中,常见的架构模式有以下几种: 1. 主从架构:主节点负责接收客户端请求,并将数据分发给从节点进行存储和计算。从节点将处理结果返回给主节点,再由主节点返回给客户端。这种架构模式可以提高系统的读写性能和容错能力。 2. 分片架构:将数据按照一定的规则进行分片,每个节点负责存储和处理一部分数据。客户端请求时,根据数据的分片规则将请求路由到相应的节点进行处理。这种架构模式可以提高系统的并发处理能力和数据存储容量。 3. 副本架构:将数据复制到多个节点上,每个节点都可以处理客户端请求。当一个节点故障时,其他节点可以接替其工作,保证系统的可用性。这种架构模式可以提高系统的容错性和读取性能。 4. 分布式索引架构:将索引数据分布到多个节点上,每个节点负责一部分索引数据的存储和查询。客户端请求时,根据索引数据的分布情况将请求路由到相应的节点进行查询。这种架构模式可以提高系统的查询性能和扩展性。 以上是向量数据库分布式部署的一些常见架构模式,具体的实现方式和选择要根据实际需求和系统规模来确定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值