Skip to main content

Vectara

Vectara 是什么?

Vectara 概述:

  • Vectara 是一个为构建 GenAI 应用程序而设计的开发人员优先的 API 平台
  • 要使用 Vectara - 首先 注册 并创建一个帐户。然后创建一个语料库和一个用于索引和搜索的 API 密钥。
  • 您可以使用 Vectara 的 indexing API 将文档添加到 Vectara 的索引中
  • 您可以使用 Vectara 的 Search API 查询 Vectara 的索引(还隐式支持混合搜索)。
  • 您可以使用 Vectara 与 LangChain 集成作为向量存储或使用 Retriever 抽象。

安装和设置

要使用 Vectara 与 LangChain,不需要任何特殊的安装步骤。您只需要提供在 Vectara 控制台中创建的 customer_id、corpus ID 和 API 密钥即可启用索引和搜索。

或者,这些可以作为环境变量提供

  • export VECTARA_CUSTOMER_ID = "your_customer_id"
  • export VECTARA_CORPUS_ID = "your_corpus_id"
  • export VECTARA_API_KEY = "your-vectara-api-key"

使用方法

VectorStore

存在一个围绕 Vectara 平台的包装器,允许您将其用作向量存储,无论是用于语义搜索还是示例选择。

要导入此向量存储:

from langchain.vectorstores import Vectara

要创建 Vectara 向量存储的实例:

vectara = Vectara(
vectara_customer_id=customer_id,
vectara_corpus_id=corpus_id,
vectara_api_key=api_key
)

customer_id、corpus_id 和 api_key 是可选的,如果不提供,将从环境变量 VECTARA_CUSTOMER_IDVECTARA_CORPUS_IDVECTARA_API_KEY 中读取。

要查询向量存储,您可以使用 similarity_search 方法(或 similarity_search_with_score),它接受一个查询字符串并返回结果列表:

results = vectara.similarity_score("what is LangChain?")

similarity_search_with_score 还支持以下其他参数:

  • k:要返回的结果数量(默认为 5)
  • lambda_val:混合搜索的 词法匹配 因子(默认为 0.025)
  • filter:要应用于结果的 过滤器(默认为 None)
  • n_sentence_context:返回结果时包括实际匹配段前/后的句子数量。默认为 0,以返回与之匹配的确切文本段,但可以与其他值(例如 2 或 3)一起使用,以返回相邻的文本段。

结果以相关文档的列表和每个文档的相关度分数返回。

有关使用 Vectara 包装器的更详细示例,请参阅以下两个示例笔记本之一: