langchain_community.vectorstores.vectara.Vectara

class langchain_community.vectorstores.vectara. Vectara(vectara_customer_id: Optional[str] = None, vectara_corpus_id: Optional[str] = None, vectara_api_key: Optional[str] = None, vectara_api_timeout: int = 120, source: str = 'langchain')[source]

Vectara API 向量存储。

请参阅 (https://vectara.com).

示例

from langchain_community.vectorstores import Vectara

vectorstore = Vectara(
    vectara_customer_id=vectara_customer_id,
    vectara_corpus_id=vectara_corpus_id,
    vectara_api_key=vectara_api_key
)

使用 Vectara API 初始化。

属性

embeddings

若可用,访问查询嵌入对象。

方法

__init__([vectara_customer_id, ...])

使用 Vectara API 初始化。

aadd_documents(documents, **kwargs)

异步运行更多文档通过嵌入并添加到向量存储中。

aadd_texts(texts[, metadatas])

异步运行更多文本通过嵌入并添加到向量存储中。

add_documents(documents, **kwargs)

在向量存储中添加或更新文档。

add_files(files_list[, metadatas])

Vectara 提供了一种通过我们的 API 直接添加文档的方式,其中预处理和分块在内部以最佳方式发生。此方法提供了一种在 LangChain 中使用该 API 的方式。

add_texts(texts[, metadatas, doc Metadata])

运行更多文本通过嵌入并添加到向量存储中。

adelete([ids])

通过向量ID或其他标准进行异步删除。

afrom_documents(documents, embedding, **kwargs)

异步返回从文档和嵌入初始化的VectorStore。

afrom_texts(texts, embedding[, metadatas])

异步返回从文本和嵌入初始化的VectorStore。

aget_by_ids(ids, /)

异步根据ID获取文档。

amax_marginal_relevance_search(query[, k, ...])

异步返回使用最大化边缘相关性选择的文档。

amax_marginal_relevance_search_by_vector(...)

异步返回使用最大化边缘相关性选择的文档。

as_chat(config)

返回一个适用于聊天的Vectara RAG可运行。

as_rag(config)

返回一个可运行的Vectara RAG。

as_retriever(**kwargs)

返回一个检索对象。

asearch(query, search_type, **kwargs)

异步返回使用指定的搜索类型与查询最相似的文档。

asimilarity_search(query[, k])

异步返回与查询最相似的文档。

asimilarity_search_by_vector(embedding[, k])

异步返回与嵌入向量最相似的文档。

asimilarity_search_with_relevance_scores(query)

异步返回范围在[0, 1]内的文档和相关度分数。

asimilarity_search_with_score(*args, **kwargs)

异步运行带距离的相似性搜索。

astreaming_upsert(items, /, batch_size, **kwargs)

aupsert(items, /, **kwargs)

delete([ids])

根据向量ID或其他标准进行删除。

from_documents(documents, embedding, **kwargs)

根据文档和嵌入初始化VectorStore。

from_files(files[, embedding, metadatas])

从原始文档构建Vectara包装器。

from_texts(texts[, embedding, metadatas])

从原始文档构建Vectara包装器。

get_by_ids(ids, /)

根据ID获取文档。

max_marginal_relevance_search(query[, ...])

返回使用最大边缘相关度选择的文档。

max_marginal_relevance_search_by_vector(...)

返回使用最大边缘相关度选择的文档。

search(query, search_type, **kwargs)

使用指定的搜索类型返回与查询最相似的文档。

similarity_search(query, **kwargs)

返回与查询最相似的Vectara文档及其评分。

similarity_search_by_vector(embedding[, k])

返回与嵌入向量最相似的文档。

similarity_search_with_relevance_scores(query)

返回范围在[0, 1]内的文档和相关性评分。

similarity_search_with_score(query, **kwargs)

返回与查询最相似的Vectara文档及其评分。

streaming_upsert(items, /, batch_size, **kwargs)

upsert(items, /, **kwargs)

vectara_query(query, config, **kwargs)

运行一个Vectara查询

参数
  • vectara_customer_id (可选[字符串]) –

  • vectara_corpus_id (可选[字符串]) –

  • vectara_api_key (可选[字符串]) –

  • vectara_api_timeout (整数) –

  • source (字符串) –

__init__(vectara_customer_id: Optional[str] = None, vectara_corpus_id: Optional[str] = None, vectara_api_key: Optional[str] = None, vectara_api_timeout: int = 120, source: str = 'langchain')[source]

使用 Vectara API 初始化。

参数
  • vectara_customer_id (可选[字符串]) –

  • vectara_corpus_id (可选[字符串]) –

  • vectara_api_key (可选[字符串]) –

  • vectara_api_timeout (整数) –

  • source (字符串) –

async aadd_documents(documents: List[Document], **kwargs: Any) List[str]

异步运行更多文档通过嵌入并添加到向量存储中。

参数
  • documents (List[Document]) – 要添加到向量存储中的文档。

  • kwargs (Any) – 额外的关键字参数。

返回

添加的文本的ID列表。

抛出

ValueError – 如果ID的数量与文档数量不匹配。

返回类型

List[str]

async aadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str]

异步运行更多文本通过嵌入并添加到向量存储中。

参数
  • texts (Iterable[str]) – 向矢量数据库中添加字符串的迭代器。

  • metadatas (Optional[List[dict]]) – 与文本相关联的元数据列表(可选)。默认值为None。

  • **kwargs (Any) – 矢量数据库特定的参数。

返回

将文本添加到矢量数据库中返回的id列表。

抛出
  • ValueError – 如果元数据的数量与文本的数量不匹配。

  • ValueError – 如果id的数量与文本的数量不匹配。

返回类型

List[str]

add_documents(documents: List[Document], **kwargs: Any) List[str]

在向量存储中添加或更新文档。

参数
  • documents (List[Document]) – 要添加到向量存储中的文档。

  • kwargs (Any) – 额外的关键字参数。如果kwargs包含id并且文档包含id,kwargs中的id将优先。

返回

添加的文本的ID列表。

抛出

ValueError – 如果id的数量与文档的数量不匹配。

返回类型

List[str]

add_files(files_list: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str][source]

Vectara 提供了一种通过我们的 API 直接添加文档的方式,其中预处理和分块在内部以最佳方式发生。此方法提供了一种在 LangChain 中使用该 API 的方式。

参数
  • files_list (可迭代 字符串[]) – 包含字符串的迭代器,每个字符串表示本地文件路径。文件可以是文本、HTML、PDF、markdown、doc/docx、ppt/pptx等。请参阅API文档获取完整列表

  • metadatas (可选 列表字典[][]) – 与每个文件关联的可选元数据列表

  • kwargs (任意) –

返回

与索引的每个文件相关联的ID列表

返回类型

List[str]

add_texts(texts: 可迭代[str], metadatas: 可选[列表-字典[]] = None, doc_metadata: 可选[字典] = None, **kwargs: 任意) 列表[str][源代码]

运行更多文本通过嵌入并添加到向量存储中。

参数
  • texts (Iterable[str]) – 向矢量数据库中添加字符串的迭代器。

  • metadatas (可选 列表字典[][]) – 与文本关联的可选元数据列表。

  • doc_metadata (可选 字典) – 文档的可选元数据

  • kwargs (任意) –

返回类型

List[str]

此函数将 Vectara 簇中所有输入文本字符串索引为一个单一的 Vectara 文档,其中每个输入文本被视为一个“部分”,并且元数据与每个部分关联。如果提供了‘doc_metadata’,则与 Vectara 文档关联。

返回

添加的文档的文档ID

参数
  • texts (可迭代 字符串[]) –

  • metadatas (可选 列表字典[][]) –

  • doc_metadata (可选 字典) –

  • kwargs (任意) –

返回类型

List[str]

异步adelete(ids: 可选[列表-字符串[]] = None, **kwargs: 任意) Optional[bool]

通过向量ID或其他标准进行异步删除。

参数
  • ids (可选 列表字符串[]) – 要删除的ID列表。如果为 None,则删除所有内容。默认为 None。

  • **kwargs (任意) – 子类可能使用的其他关键字参数。

返回

如果删除成功,则返回 True,否则返回 False,如果没有实现,则返回 None。

返回类型

可选[bool]

async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST

异步返回从文档和嵌入初始化的VectorStore。

参数
  • documents (List[Document]) – 要添加到向量存储中的文档列表。

  • embedding (Embeddings) – 要使用的嵌入函数。

  • kwargs (Any) – 额外的关键字参数。

返回

从文档和嵌入初始化的VectorStore。

返回类型

VectorStore

async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST

异步返回从文本和嵌入初始化的VectorStore。

参数
  • texts (List[str]) – 要添加到向量存储中的文本。

  • embedding (Embeddings) – 要使用的嵌入函数。

  • metadatas (Optional[List[dict]]) – 与文本相关联的元数据列表(可选)。默认值为None。

  • kwargs (Any) – 额外的关键字参数。

返回

从文本和嵌入初始化的VectorStore。

返回类型

VectorStore

async aget_by_ids(ids: Sequence[str], /) List[Document]

异步根据ID获取文档。

返回的文档预计将ID字段设置为向量存储中的文档ID。

如果某些ID找不到或存在重复ID,则返回的文档可能少于请求的数量。

用户不应假设返回的文档顺序与输入ID的顺序相同。相反,用户应依靠返回文档的ID字段。

该方法不应在找不到某些ID的文档时引发异常。

参数

ids (String序列) – 要检索的ID列表。

返回

文档列表。

返回类型

列表[Document]

自版本0.2.11新增。

异步返回使用最大化边缘相关性选择的文档。

最大边缘相关性优化查询相似性和所选文档之间的多样性。

参数
  • query (str) – 要查找与文本相似的文档。

  • k (int) – 返回的文档数量。默认为4。

  • fetch_k (int) – 返回给MMR算法的文档数量。默认为20。

  • lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性程度,0对应最大多样性,1对应最小多样性。默认为0.5。

  • kwargs (任意) –

返回

根据最大边缘相关性选择的文档列表。

返回类型

列表[Document]

async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]

异步返回使用最大化边缘相关性选择的文档。

最大边缘相关性优化查询相似性和所选文档之间的多样性。

参数
  • embedding (列表[浮点数]) – 检索与类似文档的嵌入。

  • k (int) – 返回的文档数量。默认为4。

  • fetch_k (int) – 返回给MMR算法的文档数量。默认为20。

  • lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性程度,0对应最大多样性,1对应最小多样性。默认为0.5。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

根据最大边缘相关性选择的文档列表。

返回类型

列表[Document]

as_chat(config: VectaraQueryConfig) VectaraRAG[source]

返回一个适用于聊天的Vectara RAG可运行。

参数

config (VectaraQueryConfig) –

返回类型

VectaraRAG

as_rag(config: VectaraQueryConfig) VectaraRAG[source]

返回一个可运行的Vectara RAG。

参数

config (VectaraQueryConfig) –

返回类型

VectaraRAG

as_retriever(**kwargs: Any) VectaraRetriever[来源]

返回一个检索对象。

参数

kwargs (任意) –

返回类型

VectaraRetriever

async asearch(query: str, search_type: str, **kwargs: Any) List[Document]

异步返回使用指定的搜索类型与查询最相似的文档。

参数
  • query (str) – 输入文本。

  • search_type (str) – 搜索类型。可以是“similarity”、“mmr”或“similarity_score_threshold”。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

抛出

ValueError – 如果search_type不是“similarity”、“mmr”或“similarity_score_threshold”之一。

返回类型

列表[Document]

异步返回与查询最相似的文档。

参数
  • query (str) – 输入文本。

  • k (int) – 返回的文档数量。默认为4。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

返回类型

列表[Document]

async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]

异步返回与嵌入向量最相似的文档。

参数
  • embedding (列表[浮点数]) – 检索与类似文档的嵌入。

  • k (int) – 返回的文档数量。默认为4。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

与查询向量最相似的文档列表。

返回类型

列表[Document]

asyncasimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

异步返回范围在[0, 1]内的文档和相关度分数。

0表示不相似,1表示最相似。

参数
  • query (str) – 输入文本。

  • k (int) – 返回的文档数量。默认为4。

  • **kwargs (Any) –

    传递给相似度搜索的kwargs。应包括:score_threshold:可选的,一个介于0到1之间的浮点值,用于过滤检索到的结果集合

    的文档

返回

(doc, similarity_score)的元组列表

返回类型

List[Tuple[Document, float]]

asyncasimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]

异步运行带距离的相似性搜索。

参数
  • *args (Any) – 传递给搜索方法的参数。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

(doc, similarity_score)元组列表。

返回类型

List[Tuple[Document, float]]

astreaming_upsert(items: AsyncIterable[Document], /, batch_size: int, **kwargs: Any) AsyncIterator[UpsertResponse]

测试版

自0.2.11版本起添加。API可能发生变化。

以流的形式批量更新文档。streaming_upsert的异步版本。

参数
  • items (AsyncIterable[Document]) – 要添加到向量存储的文档的可迭代对象。

  • batch_size (int) – 每批更新的尺寸。

  • kwargs (Any) – 额外的关键字参数。kwargs应该只包含所有文档都通用的参数。(例如,索引超时,重试策略等。)kwargs不应包含ID以避免歧义性。相反,ID应作为文档对象的组成部分提供。

生产

UpsertResponse – 一个包含在向量存储中成功添加或更新的文档的ID列表和失败添加或更新的ID列表的响应对象。

返回类型

AsyncIterator[UpsertResponse]

自版本0.2.11新增。

async aupsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse

测试版

自0.2.11版本起添加。API可能发生变化。

添加或更新向量存储中的文档。upsert的异步版本。

如果提供了ID字段,则应该使用Document对象的ID字段执行upsert功能。如果没有提供ID,upsert方法可以为文档生成一个ID。

当指定ID且文档已存在于向量存储中时,upsert方法应使用新数据更新文档。如果文档不存在,upsert方法应添加文档到向量存储。

参数
  • items (Sequence[Document]) – 要添加到向量存储的文档的序列。

  • kwargs (Any) – 额外的关键字参数。

返回

包含成功添加或更新在vectorstore中的ID列表以及未成功添加或更新的ID列表的响应对象。

返回类型

UpsertResponse

自版本0.2.11新增。

delete(ids: Optional[列表[str]] = None, **kwargs: Any) Optional[bool][源码]

通过向量ID或其他标准删除::param ids: 要删除的ID列表。

返回

如果删除成功,则返回 True,否则返回 False,如果没有实现,则返回 None。

返回类型

可选[bool]

参数
  • ids (可选[列表[str]]) –

  • kwargs (任意) –

classmethod from_documents(documents: 列表[Document], embedding: Embeddings, **kwargs: Any) VST

根据文档和嵌入初始化VectorStore。

参数
  • documents (List[Document]) – 要添加到向量存储中的文档列表。

  • embedding (Embeddings) – 要使用的嵌入函数。

  • kwargs (Any) – 额外的关键字参数。

返回

从文档和嵌入初始化的VectorStore。

返回类型

VectorStore

classmethod from_files(files: List[str], embedding: Optional[Embeddings] = None, metadatas: Optional[List[dict]] = None, **kwargs: Any) Vectara[source]

从原始文档构建 Vectara 包装器。这是一种快速开始的方法。 .. rubric:: 示例

from langchain_community.vectorstores import Vectara
vectara = Vectara.from_files(
    files_list,
    vectara_customer_id=customer_id,
    vectara_corpus_id=corpus_id,
    vectara_api_key=api_key,
)
参数
  • files (列表[str]) –

  • embedding (可选[Embeddings]) –

  • metadatas (可选 列表字典[][]) –

  • kwargs (任意) –

返回类型

Vectara

classmethod from_texts(texts: List[str], embedding: Optional[Embeddings] = None, metadatas: Optional[List[dict]] = None, **kwargs: Any) Vectara[source]

从原始文档构建 Vectara 包装器。这是一种快速开始的方法。 .. rubric:: 示例

from langchain_community.vectorstores import Vectara
vectara = Vectara.from_texts(
    texts,
    vectara_customer_id=customer_id,
    vectara_corpus_id=corpus_id,
    vectara_api_key=api_key,
)
参数
  • texts (列表[str]) –

  • embedding (可选[Embeddings]) –

  • metadatas (可选 列表字典[][]) –

  • kwargs (任意) –

返回类型

Vectara

get_by_ids(ids: Sequence[str], /) List[Document]

根据ID获取文档。

返回的文档预计将ID字段设置为向量存储中的文档ID。

如果某些ID找不到或存在重复ID,则返回的文档可能少于请求的数量。

用户不应假设返回的文档顺序与输入ID的顺序相同。相反,用户应依靠返回文档的ID字段。

该方法不应在找不到某些ID的文档时引发异常。

参数

ids (String序列) – 要检索的ID列表。

返回

文档列表。

返回类型

列表[Document]

自版本0.2.11新增。

根据最大边际相关性返回文档。最大边际相关性优化查询相似性和所选文档的多样性。

参数
  • query (str) – 要查找与文本相似的文档。

  • k – 返回的文档数量。默认为5。

  • fetch_k (整数) – 传递给MMR算法的文档数量。默认为50

  • lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性程度,0对应最大多样性,1对应最小多样性。默认为0.5。

  • kwargs (任何) – VectaraQueryConfig中的其他查询变量

返回

根据最大边缘相关性选择的文档列表。

返回类型

列表[Document]

max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]

返回使用最大边缘相关度选择的文档。

最大边缘相关性优化查询相似性和所选文档之间的多样性。

参数
  • embedding (列表[浮点数]) – 检索与类似文档的嵌入。

  • k (int) – 返回的文档数量。默认为4。

  • fetch_k (int) – 返回给MMR算法的文档数量。默认为20。

  • lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性程度,0对应最大多样性,1对应最小多样性。默认为0.5。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

根据最大边缘相关性选择的文档列表。

返回类型

列表[Document]

search(query: str, search_type: str, **kwargs: Any) List[Document]

使用指定的搜索类型返回与查询最相似的文档。

参数
  • query (str) – 输入文本

  • search_type (str) – 搜索类型。可以是“similarity”、“mmr”或“similarity_score_threshold”。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

与查询最相似的文档列表。

抛出

ValueError – 如果search_type不是“similarity”、“mmr”或“similarity_score_threshold”之一。

返回类型

列表[Document]

返回与查询最相似的Vectara文档及其评分。

参数
  • query (str) – 要查找与文本相似的文档。

  • VectaraQueryConfig (查询中的其他任何变量) –

  • kwargs (任意) –

返回

与查询最相似的文档列表

返回类型

列表[Document]

similarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document]

返回与嵌入向量最相似的文档。

参数
  • embedding (列表[浮点数]) – 检索与类似文档的嵌入。

  • k (int) – 返回的文档数量。默认为4。

  • **kwargs (任何) – 传递给搜索方法的参数。

返回

与查询向量最相似的文档列表。

返回类型

列表[Document]

similarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]

返回范围在[0, 1]内的文档和相关性评分。

0表示不相似,1表示最相似。

参数
  • query (str) – 输入文本。

  • k (int) – 返回的文档数量。默认为4。

  • **kwargs (Any) –

    传递给相似度搜索的kwargs。应包括:score_threshold:可选的,一个介于0到1之间的浮点值,用于过滤检索到的结果集合

    筛选检索文档集的结果。

返回

(doc, similarity_score)元组列表。

返回类型

List[Tuple[Document, float]]

similarity_search_with_score(query: str, **kwargs: Any) List[Tuple[Document, float]][source]

返回与查询最相似的Vectara文档及其评分。

参数
  • query (str) – 要查找与文本相似的文档。

  • k – 返回的文档数量。默认为10。

  • like (任何其他在 VectaraQueryConfig 中的查询变量) –

  • lambda_val (-) – 混合搜索的词法匹配参数。

  • filter (-) – 过滤字符串

  • score_threshold (-) – 结果的最小分数阈值。

  • n_sentence_before (-) – 匹配段之前句子的数量

  • n_sentence_after (-) – 匹配段之后句子的数量

  • rerank_config () – 为重排名提供可选配置(请参阅RerankConfig数据类)

  • summary_config () – 为摘要提供可选配置(请参阅SummaryConfig数据类)

  • kwargs (任意) –

返回

查询最相似的文档列表及其评分。

返回类型

列表 Tuple[Document, float]]

streaming_upsert(items: Iterable[Document], /, batch_size: int, **kwargs: Any) Iterator[UpsertResponse]

测试版

自0.2.11版本起添加。API可能发生变化。

以流式方式上插文档。

参数
  • items (可迭代[Document]) – 需要添加到vectorstore中的文档的可迭代序列。

  • batch_size (int) – 每批更新的尺寸。

  • kwargs (Any) – 附加关键字参数。kwargs应仅包括所有文档共有的参数(例如,索引的超时时间、重试策略等)。kwargs不包含id以避免模糊的语义。相反,ID应作为Document对象的一部分提供。

生产

UpsertResponse – 一个包含在向量存储中成功添加或更新的文档的ID列表和失败添加或更新的ID列表的响应对象。

返回类型

UpsertResponse的可迭代对象

自版本0.2.11新增。

upsert(items: 序列[Document], /, **kwargs: Any) UpsertResponse

测试版

自0.2.11版本起添加。API可能发生变化。

在向量存储中添加或更新文档。

如果提供了ID字段,则应该使用Document对象的ID字段执行upsert功能。如果没有提供ID,upsert方法可以为文档生成一个ID。

当指定ID且文档已存在于向量存储中时,upsert方法应使用新数据更新文档。如果文档不存在,upsert方法应添加文档到向量存储。

参数
  • items (Sequence[Document]) – 要添加到向量存储的文档的序列。

  • kwargs (Any) – 额外的关键字参数。

返回

包含成功添加或更新在vectorstore中的ID列表以及未成功添加或更新的ID列表的响应对象。

返回类型

UpsertResponse

自版本0.2.11新增。

vectara_query(query: str, config: VectaraQueryConfig, **kwargs: Any) List[Tuple[Document, float]][source]

运行一个Vectara查询

参数
  • query (str) – 要查找与文本相似的文档。

  • config (VectaraQueryConfig) – VectaraQueryConfig对象

  • kwargs (任意) –

返回

匹配查询的k个文档列表。如果启用了摘要,最后文档是具有“summary”=True的摘要文本

返回类型

列表 Tuple[Document, float]]

使用Vectara的示例