Skip to main content

Vectara(Vectara)

Vectara是一个面向开发者的API平台,用于构建GenAI应用。

Vectara概述:

  • Vectara是一个开发者优先的API平台,用于构建GenAI应用。
  • 要使用Vectara,请先注册并创建一个账户。然后创建一个语料库和一个用于索引和搜索的API密钥。
  • 您可以使用Vectara的索引API将文档添加到Vectara的索引中。
  • 您可以使用Vectara的搜索API查询Vectara的索引(还支持隐式的混合搜索)。
  • 您可以使用Vectara与LangChain的集成作为向量存储或使用检索器抽象。

安装和设置(Installation and Setup)

使用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"

使用方法(Usage)

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中读取。

获得向量存储之后,您可以按照标准的VectorStore接口使用add_textsadd_documents,例如:

vectara.add_texts(["to be or not to be", "that is the question"])

由于Vectara支持文件上传,我们还添加了直接上传文件(PDF、TXT、HTML、PPT、DOC等)的功能。使用此方法时,文件将直接上传到Vectara后端,在那里进行处理和最佳分块,因此您不必使用LangChain文档加载器或分块机制。

例如:

vectara.add_files(["path/to/file1.pdf", "path/to/file2.pdf",...])

要查询向量存储,您可以使用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包装器的更详细示例,请参阅以下两个示例笔记本之一: