Weaviate 介绍(向量数据库)

Weaviate 介绍

Weaviate 是一个开源的 AI 原生向量数据库,专为 AI 工程师设计,用于处理大规模的向量搜索和 AI 应用。 它被众多 AI 创新者所信赖,能够快速启动并扩展到数十亿规模的数据。作为 Retrieval Augmented Generation (RAG)、AI 代理以及未来 AI 开发的缺失环节,Weaviate 帮助开发者专注于功能开发而非基础设施管理。

关键特性

Weaviate 提供了丰富的生产级 AI 应用功能,包括:

  • AI 驱动搜索:支持纯向量搜索、语义搜索和混合搜索(向量 + 关键词),能够处理非结构化数据的智能上下文搜索。例如,可以使用 near_vector、near_text 或 hybrid 查询来检索数据集合。
  • Retrieval Augmented Generation (RAG):基于数据的基础上的可信聊天体验。
  • Agentic AI:构建知识丰富的 AI 代理和代理工作流。
  • 语言无关设计:提供 Python、Go、TypeScript 或 JavaScript 的 SDK,以及 GraphQL 或 REST API 接口。
  • 无缝模型集成:连接自定义 ML 模型或内置嵌入服务。
  • 数据库代理:预构建的代理,用于与数据交互并减少手动工作。
  • 一站式 AI 功能:避免使用多个系统和复杂数据管道,减少自定义代码,实现更快构建 AI 原生应用。
  • 亿级规模架构:适应任何工作负载,无缝扩展,同时优化成本。
  • 企业级部署:支持云端或本地安全运行,符合 RBAC、SOC 2 和 HIPAA 等要求。
优势

Weaviate 易于上手,支持无限扩展和灵活部署。它简化了开发流程,将 AI 功能整合到一个系统中,减少了复杂性。开发者可以快速启动集群、连接数据,并利用自动缩放功能。相比传统设置,Weaviate 让 AI 应用构建更高效。此外,它还提供全球专家支持,并拥有超过 5 万名 AI 构建者的社区,用于课程、活动和讨论。

用例
  • AI 驱动搜索:用于非结构化数据的智能上下文搜索。
  • Retrieval Augmented Generation:创建基于数据的可靠聊天系统。
  • Agentic AI:开发智能 AI 代理和工作流。
工作原理

Weaviate 作为一个向量数据库运行,用户可以通过 SDK 或 API 选择数据集合(如 “SupportTickets”),并执行查询(如 near_text 查询 “login issues after OS upgrade”)。它无缝集成 ML 模型进行嵌入生成。部署时,可以使用 Weaviate Cloud 或快速启动指南设置集群,并利用预构建代理管理数据。

支持集成
  • SDK:Python、Go、TypeScript、JavaScript。
  • API:GraphQL、REST。
  • ML 模型:自定义模型或内置嵌入服务。
定价选项

官方内容中未明确指定定价细节,建议访问官网了解 Weaviate Cloud 的订阅选项。

近期更新

官方主页未提及具体近期更新或新闻,但 Weaviate 作为开源项目,建议查看 GitHub 仓库或文档以获取最新版本信息。

Weaviate 安装教程

Weaviate 是一个开源的向量数据库,支持多种安装方式,包括 Docker、本地嵌入式、Kubernetes 和托管的 Weaviate Cloud 服务。以下是最简单的安装指南,基于官方文档。假设你有基本的命令行知识,并已安装必要的工具(如 Docker、Helm 等)。教程针对最新稳定版本(例如 v1.33.x),请根据需要调整版本号。

使用 Docker 安装(推荐本地开发)

Docker 是最快速的本地安装方式,支持单节点或多节点配置。适用于测试和开发。

先决条件

  • 已安装 Docker 和 Docker Compose。
  • 对于 GPU 模块(如 text2vec-transformers),需 NVIDIA GPU 和 CUDA 驱动。
  • 足够的磁盘空间用于持久化存储。

步骤

  1. 快速启动单节点(无持久化)

    docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.33.1
    
    • 访问 http://localhost:8080/v1/meta 验证运行(应返回 200 OK)。
  2. 使用 Docker Compose 配置持久化

    • 创建 docker-compose.yml 文件:
      ---
      services:
        weaviate:
          command:
          - --host
          - 0.0.0.0
          - --port
          - '8080'
          - --scheme
          - http
          image: cr.weaviate.io/semitechnologies/weaviate:1.33.1
          ports:
          - 8080:8080
          - 50051:50051
          volumes:
          - weaviate_data:/var/lib/weaviate
          restart: on-failure:0
          environment:
            QUERY_DEFAULTS_LIMIT: 25
            AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
            PERSISTENCE_DATA_PATH: '/var/lib/weaviate'
            CLUSTER_HOSTNAME: 'node1'
      volumes:
        weaviate_data:
      
    • 运行:docker compose up -d
    • 停止:docker compose down(数据持久化)。
  3. 添加模块(如 text2vec-transformers)

    • 修改 docker-compose.yml 添加模块服务,并设置 ENABLE_MODULESDEFAULT_VECTORIZER_MODULE
  4. 多节点配置

    • docker-compose.yml 中定义多个服务(如 weaviate-node-1、node-2、node-3),设置 CLUSTER_JOINRAFT_BOOTSTRAP_EXPECT

注意事项

  • 默认启用匿名访问,仅用于开发。生产环境配置认证。
  • 故障排除:检查日志 docker compose logs -f,确保端口不冲突。

使用 Embedded Weaviate 安装(嵌入应用)

Embedded Weaviate 允许从代码中启动实例,适用于 Python 或 TypeScript 应用。数据持久化,但实例随客户端退出。

先决条件

  • Linux 或 macOS。
  • Python 客户端 v3.15.4+(Linux)/v3.21.0+(macOS),或 TypeScript npm install weaviate-ts-embedded

步骤(Python 示例)

  1. 安装客户端pip install -U weaviate-client

  2. 启动实例

    import weaviate
    import os
    
    client = weaviate.connect_to_embedded(
        version="1.33.1",
        headers={"X-OpenAI-Api-Key": os.getenv("OPENAI_APIKEY")},
        environment_variables={"LOG_LEVEL": "error"}
    )
    # 使用客户端代码
    client.close()
    
  3. 自定义配置

    • 使用 EmbeddedOptions 添加环境变量,如启用模块 ENABLE_MODULES

注意事项

  • 默认模块包括 text2vec-openai 等。实验性功能,API 可能变更。
  • 日志过多时设置 LOG_LEVEL 为 error。

使用 Kubernetes 安装(生产环境)

Kubernetes 适合大规模部署,使用 Helm 图表。

先决条件

  • Kubernetes v1.23+ 集群,支持 PersistentVolumes。
  • Helm v3+。
  • kubectl 配置访问集群。

步骤

  1. 添加 Helm 仓库

    helm repo add weaviate https://weaviate.github.io/weaviate-helm
    helm repo update
    
  2. 获取并编辑 values.yaml

    helm show values weaviate/weaviate > values.yaml
    
    • 设置 Weaviate 版本、模块、认证(如 API 密钥、OIDC)、资源限制、gRPC 等。
  3. 部署

    kubectl create namespace weaviate
    helm upgrade --install "weaviate" weaviate/weaviate --namespace "weaviate" --values ./values.yaml
    
  4. 升级:重新运行 helm upgrade 以应用变更。

注意事项

  • 默认单副本;配置多副本以提高可用性。
  • 对于 AWS EFS 或 Azure CSI,手动创建 PV 以避免问题。
  • 升级到 v1.25+ 时,可能需删除 StatefulSet 并重新部署。

使用 Weaviate Cloud 安装(托管服务)

Weaviate Cloud (WCD) 是托管选项,无需管理基础设施。支持 Sandbox(免费测试)和 Serverless(生产)。

先决条件

  • Weaviate Cloud 账户(在 https://console.weaviate.cloud 注册)。
  • 对于 RAG,可选 Cohere 或 OpenAI API 密钥。

步骤

  1. 创建集群

    • 登录 https://console.weaviate.cloud。
    • 创建 Sandbox 或 Serverless 集群(1-3 分钟)。
    • 获取 REST 端点 URL 和 API 密钥。
  2. 安装客户端(Python 示例):pip install -U weaviate-client

  3. 连接

    import weaviate
    from weaviate.classes.init import Auth
    import os
    
    client = weaviate.connect_to_weaviate_cloud(
        cluster_url=os.getenv("WEAVIATE_URL"),
        auth_credentials=Auth.api_key(os.getenv("WEAVIATE_API_KEY"))
    )
    print(client.is_ready())  # True
    client.close()
    
  4. 填充数据

    • 创建集合(如 “Question”),使用 batch 导入数据。

注意事项

  • 新集群默认启用 RBAC;创建 API 密钥并分配角色(admin/viewer)。
  • Sandbox 集群短期有效;升级到 Serverless 以持久化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值