You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Weaviate:如何使用text2vec-transformers模块生成向量?

使用text2vec-transformers生成向量并结合nearVector查询Weaviate

两种生成向量的方式

当你将text2vec-transformers设为Weaviate的默认向量化器时,有两种方式获取可用的向量:


1. 自动为存储数据生成向量

导入数据时,Weaviate会自动调用text2vec-transformers模块为你定义的文本字段生成向量并存储,无需手动干预。比如导入对象时只需传入文本内容:

# Python客户端示例
client.data_object.create(
    data_object={
        "title": "示例文本",
        "content": "这是需要向量化的内容"
    },
    class_name="YourClassName"
)

此时该对象的向量已由模块自动生成并存在Weaviate中。


2. 手动生成向量用于nearVector查询

如果你需要生成自定义文本的向量来执行nearVector查询,可以直接调用Weaviate的vectorize GraphQL端点:

{
  vectorize(
    input: ["需要生成向量的目标文本"]
    moduleConfig: {
      text2vec-transformers: {
        model: "sentence-transformers/all-MiniLM-L6-v2" // 替换为你使用的模型
      }
    }
  )
}

执行该查询后,会返回对应文本的浮点型向量数组。将这个向量填入nearVector查询即可:

{
  Get {
    YourClassName(
      nearVector: {
        vector: [0.123, -0.456, 0.789, ...] // 填入生成的完整向量
        distance: 0.6 // 可选,设置相似度阈值
      }
    ) {
      id
      title
      _additional {
        distance // 返回与查询向量的距离
      }
    }
  }
}

额外:获取已存储对象的向量

如果需要基于现有对象的向量执行nearVector查询,可以通过查询对象的_additional字段获取其向量:

{
  Get {
    YourClassName(where: {id: {equalTo: "目标对象ID"}}) {
      _additional {
        vector
      }
    }
  }
}

注意事项

  • 确保Weaviate实例已正确启用text2vec-transformers模块,且配置的模型与你调用时指定的一致
  • 客户端(Python/JS等)也封装了vectorize方法,可直接通过客户端API调用,无需手动编写GraphQL

内容的提问来源于stack exchange,提问作者Hardik Sardhara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:50:05