向量数据库weaviate安装和部署
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.*(代理里面使用规则,不要使用全球)
更多推荐
所有评论(0)