Weaviate 向量数据库的配置与使用

01. Weaviate 介绍

Weaviate 是一个完全用 Go 语言构建的开源向量数据库,具备强大的数据存储与检索功能。为了满足不同用户和用例的需求,Weaviate 提供了多种部署方式:

  • Weaviate 云:利用 Weaviate 官方的云服务,支持数据复制、零停机更新和无缝扩展,非常适合评估、开发和生产环境。
  • Docker 部署:通过 Docker 容器进行 Weaviate 向量数据库的部署,适用于评估和开发场景。
  • K8s 部署:在 Kubernetes 环境中部署 Weaviate 向量数据库,适合用于开发和生产场景。
  • 嵌入式 Weaviate:基于本地文件的 Weaviate 向量数据库构建方式,适用于评估场景。但嵌入式 Weaviate 仅支持 Linux 和 macOS 系统,不支持 Windows。

Weaviate 与 Pinecone/TCVectorDB 一样,具有集合的概念。在 Weaviate 中,集合类似于传统关系型数据库中的表,负责管理特定类型的数据/数据对象。使用 Weaviate 的流程相当简单:

  1. 创建并部署 Weaviate 数据库(通过 Weaviate 云或 Docker 部署)。
  2. 安装 Python 客户端或 LangChain 集成包。
  3. 连接 Weaviate(可以是本地连接或云端连接)。
  4. 创建数据集/集合(可以通过代码或可视化管理界面创建)。在 Weaviate 中,集合名称必须以大写字母开头,并且只能包含字母、数字和下划线,这与 Python 的类名规范非常相似。
  5. 添加数据/向量。
  6. 执行相似性搜索或带过滤器的相似性搜索。

参考资料:


02. Weaviate 云服务

Weaviate 官方为所有注册登录的账号提供了无限量的 Weaviate 云服务(免费账号每个实例使用时间最大为 14 天,付费账户不限),通过邮箱注册登录 Weaviate 后,找到后台管理系统的 Clusters(集群) 即可快速创建 Weaviate 向量数据库实例。

  • Weaviate 后台管理面板:https://console.weaviate.cloud/dashboard
  • 模型列表页面:https://yibuapi.com/pricing
    在这里插入图片描述
    创建好 Weaviate 云服务器集群后,平台提供了 REST 和 gRPC 两种链接方式的地址与 API 秘钥,在客户端中即可快速连接到云服务。

03. Docker 部署 Weaviate 向量数据库

在 Docker 上部署 Weaviate 向量数据库非常简单,如果使用默认值,则不需要 docker-compose.yml 文件来运行镜像(适用于开发场景),安装好 Docker 之后,执行如下命令:

docker run -d --name weaviate-dev -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.24.20

上述的命令就会快速创建一个叫 weaviate-dev 的容器并在后台运行,该容器暴露了两个端口,8080 和 50051,其中 8080 端口为 REST 接口连接端口、50051 为 gRPC 服务连接端口。

除此之外,使用 Docker 部署的 Weaviate 向量数据库服务,还有以下几个常见命令:

# 启动 weaviate 服务
docker start weaviate

# 关闭 weaviate 服务
docker stop weaviate

# 移除 weaviate 容器
docker rm weaviate-dev

# 查看当前 docker 容器所有镜像
docker images

# 移除 weaviate 镜像
docker rmi cr.weaviate.io/semitechnologies/weaviate

# 查看当前运行的 docker 服务
docker ps

# 查看所有 docker 容器(涵盖启动和未启动)
docker ps -a
### Weaviate 使用指南 Weaviate 是一款开源的向量数据库,专为高效管理和检索大规模向量数据设计。该平台不仅支持复杂的查询操作,还具备良好的扩展性和灵活性,适合各种规模的应用程序开发需求[^1]。 #### 安装配置 为了开始使用 Weaviate,首先需要安装并启动服务实例。可以通过 Docker 或者 Kubernetes 部署方式轻松完成这一过程: ```bash docker pull semitechnologies/weaviate:latest docker run -p 8080:8080 \ --env AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED="true" \ --env QUERY_DEFAULTS_LIMIT=25 \ --env DEFAULT_VECTORIZER_MODULE="text2vec-contextionary" \ semitechnologies/weaviate:latest ``` 上述命令会下载最新版本镜像文件,并设置一些基本环境变量以便于初次体验[^4]。 #### 数据模型定义 创建类(Class)是构建 Weaviate 应用的基础步骤之一。每个类别代表一类实体对象及其属性描述。下面展示如何利用 RESTful API 创建一个新的 `Article` 类型: ```json POST /v1/schema HTTP/1.1 Host: localhost:8080 Content-Type: application/json { "class": "Article", "description": "A news article or blog post.", "properties": [ { "name": "title", "dataType": ["string"], "description": "The title of the article." }, ... ] } ``` 此 JSON 请求体指定了新类别的名称、说明以及若干字段信息[^5]。 #### 向量索引搜索 一旦建立了适当的数据模式之后就可以考虑导入具体记录了。对于每条新增加的内容项而言,除了常规属性外还可以关联一组或多组特征向量用于后续相似度匹配计算目的。当执行查找请求时,则允许指定目标空间维度大小以及其他参数选项来优化结果质量[^2]。 例如,在 GraphQL 查询语句中加入如下片段即可实现基于内容推荐功能: ```graphql query GetSimilarArticles($id: ID!) { Explore( nearVector: {vector: $embedding, certainty: 0.7}, limit: 5, class: Article ) { ... on Article { id title _additional { distance } } } } ``` 这段代码展示了怎样通过给定的文章ID获取其最接近的五篇其他文章列表,并附带距离分数作为参考依据[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值