标签: BSD许可

  • Weaviate:AI 开发者最爱的开源向量数据库,语义搜索与 RAG 的首选数据底座

    Weaviate:AI 开发者最爱的开源向量数据库,语义搜索与 RAG 的首选数据底座

    📦 项目简介

    Weaviate 是一款开源、云原生的向量数据库,同时存储对象和向量,支持大规模语义搜索。它将向量相似度搜索、关键词过滤、检索增强生成(RAG)和重排序功能整合到单个查询接口中,是构建 AI 应用的理想数据底座。

    Weaviate Logo

    Weaviate —— AI 开发者最爱的开源向量数据库

    ⚙️ 安装要求和过程

    环境要求

    • Docker 20.10+(推荐方式)
    • 内存:最低 4GB RAM,生产环境建议 8GB+
    • 存储:持久化卷(可选,用于数据持久化)
    • 客户端:Python 3.8+、Node.js 16+、Java 11+、Go 1.18+ 可选

    快速安装(Docker 本地部署)

    第一步:创建 docker-compose.yml 配置文件:

    services:
      weaviate:
        image: cr.weaviate.io/semitechnologies/weaviate:1.36.0
        ports:
          - "8080:8080"
          - "50051:50051"
        environment:
          ENABLE_MODULES: text2vec-model2vec
          MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080
    
      # 轻量级嵌入模型,导入数据时会自动生成向量
      text2vec-model2vec:
        image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M
    

    第二步:启动服务

    docker compose up -d
    

    第三步:安装 Python 客户端

    pip install -U weaviate-client
    

    也可以使用 Weaviate Cloud 托管服务(免费试用),或部署到 Kubernetes、AWS、GCP 等云平台。

    🚀 核心功能

    ⚡ 毫秒级十亿向量搜索

    基于 Go 构建,高负载下响应稳定。采用 HNSW(Hierarchical Navigable Small World)索引算法,支持 ANN 基准测试领先性能,十亿级向量复杂语义搜索毫秒级返回。

    🔀 混合检索(向量 + 关键词 + 过滤)

    单接口同时支持语义搜索传统关键词(BM25)搜索图像搜索,支持高级过滤,可灵活组合获得最优结果。内置 hybrid 查询类型,自动融合向量相似度与关键词相关性分数。

    🤖 内置 RAG & 重排序

    无需额外工具,直接支持生成式搜索(RAG)重排序(Reranking)能力。可快速构建 Q&A 系统、聊天机器人、摘要工具。集成 Cohere、OpenAI、Voyage 等主流 Reranker 模型。

    📈 生产级可扩展性

    支持水平扩展多租户隔离副本细粒度 RBAC 权限控制,适配从原型到大规模生产场景。存储计算分离架构,支持 Kubernetes 原生编排。

    💾 低成本运维 & 向量压缩

    内置向量压缩能力(标量量化、二进制量化、产品量化),通过向量量化、多向量编码降低内存占用,对搜索性能影响极小。支持对象 TTL 机制,按集合配置数据过期时间,自动清理过期数据。

    💡 典型使用场景

    场景一:RAG(检索增强生成)系统

    将企业文档、知识库导入 Weaviate,结合 LLM 构建精准问答系统。Weaviate 负责语义检索召回相关段落,LLM 负责生成最终答案,大幅降低幻觉率。

    import weaviate
    from weaviate.classes.query import Filter
    
    client = weaviate.connect_to_local()
    
    # 语义搜索 + 元数据过滤
    results = client.collections.get("Document").query.near_text(
        query="如何申请退款?",
        limit=5,
        filters=Filter.by_property("category").equal("help")
    )
    for obj in results.objects:
        print(obj.properties["content"])
    

    场景二:语义搜索 & 推荐引擎

    电商、内容平台可用 Weaviate 实现”理解意图”的搜索体验。用户输入自然语言查询,系统返回语义最匹配的商品或内容,而非简单的关键词匹配。

    Weaviate 也支持多模态搜索(文本 + 图像),用户可用图片搜索相似商品,或用文本描述搜索相关图片。

    📦 Python 快速上手

    import weaviate
    from weaviate.classes.config import Configure, DataType, Property
    
    # 连接本地 Weaviate 服务
    client = weaviate.connect_to_local()
    
    # 创建集合(类似关系数据库的表)
    client.collections.create(
        name="Article",
        properties=[Property(name="content", data_type=DataType.TEXT)],
        # 使用 Model2Vec 向量化器,导入时自动生成向量
        vector_config=Configure.Vectors.text2vec_model2vec(),
    )
    
    # 插入数据并自动生成向量
    articles = client.collections.get("Article")
    articles.data.insert_many([
        {"content": "Vector databases enable semantic search"},
        {"content": "Machine learning models generate embeddings"},
        {"content": "Weaviate supports hybrid search capabilities"},
    ])
    
    # 执行语义搜索
    results = articles.query.near_text(query="Search objects by meaning", limit=1)
    print(results.objects[0].properties["content"])
    
    client.close()
    

    📌 推荐理由

    Weaviate 是我推荐的向量数据库首选之一,尤其适合以下场景:

    • 与已发布的同类项目对比:Qdrant(Rust,极致性能)、Milvus(分布式,大规模)、Chroma(轻量,快速上手)—— Weaviate 则胜在生态最完整集成最丰富
    • AI Agent 生态集成:Weaviate 积极拥抱 AI Agent 生态,官方提供 Agent Skills,支持 Claude Code、Cursor 等 AI 编码工具直接操作
    • 多语言 SDK 覆盖最全:Python、JavaScript/TypeScript、Java、Go、C#/.NET 五大官方 SDK,社区还有 Rust、PHP、Ruby 等扩展
    • BSD-3-Clause 许可:商业友好,可自由修改和分发,适合企业内嵌使用

    如果你正在构建 RAG 系统、语义搜索功能,或任何需要”理解语义”的 AI 应用,Weaviate 值得作为向量数据库的第一选择进行评估。

    📥 下载地址 & 相关链接

    ✝️ 开源协议:BSD 3-Clause License | 开发语言:Go | 2016年发布,持续维护至今