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, ...])异步返回使用最大化边缘相关性选择的文档。
异步返回使用最大化边缘相关性选择的文档。
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])异步返回与嵌入向量最相似的文档。
异步返回范围在[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[, ...])返回使用最大边缘相关度选择的文档。
返回使用最大边缘相关度选择的文档。
search
(query, search_type, **kwargs)使用指定的搜索类型返回与查询最相似的文档。
similarity_search
(query, **kwargs)返回与查询最相似的Vectara文档及其评分。
similarity_search_by_vector
(embedding[, k])返回与嵌入向量最相似的文档。
返回范围在[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。
- 返回类型
- 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。
- 返回类型
- async aget_by_ids(ids: Sequence[str], /) List[Document] ¶
异步根据ID获取文档。
返回的文档预计将ID字段设置为向量存储中的文档ID。
如果某些ID找不到或存在重复ID,则返回的文档可能少于请求的数量。
用户不应假设返回的文档顺序与输入ID的顺序相同。相反,用户应依靠返回文档的ID字段。
该方法不应在找不到某些ID的文档时引发异常。
- 参数
ids (String序列) – 要检索的ID列表。
- 返回
文档列表。
- 返回类型
列表[Document]
自版本0.2.11新增。
- async amax_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document]¶
异步返回使用最大化边缘相关性选择的文档。
最大边缘相关性优化查询相似性和所选文档之间的多样性。
- 参数
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) –
- 返回类型
- as_rag(config: VectaraQueryConfig) VectaraRAG [source]¶
返回一个可运行的Vectara RAG。
- 参数
config (VectaraQueryConfig) –
- 返回类型
- as_retriever(**kwargs: Any) VectaraRetriever [来源]¶
返回一个检索对象。
- 参数
kwargs (任意) –
- 返回类型
- 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]
- async asimilarity_search(query: str, k: int = 4, **kwargs: Any) List[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列表的响应对象。
- 返回类型
自版本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。
- 返回类型
- 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 (任意) –
- 返回类型
- 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 (任意) –
- 返回类型
- get_by_ids(ids: Sequence[str], /) List[Document]¶
根据ID获取文档。
返回的文档预计将ID字段设置为向量存储中的文档ID。
如果某些ID找不到或存在重复ID,则返回的文档可能少于请求的数量。
用户不应假设返回的文档顺序与输入ID的顺序相同。相反,用户应依靠返回文档的ID字段。
该方法不应在找不到某些ID的文档时引发异常。
- 参数
ids (String序列) – 要检索的ID列表。
- 返回
文档列表。
- 返回类型
列表[Document]
自版本0.2.11新增。
- max_marginal_relevance_search(query: str, fetch_k: int = 50, lambda_mult: float = 0.5, **kwargs: Any) List[Document] [source]¶
根据最大边际相关性返回文档。最大边际相关性优化查询相似性和所选文档的多样性。
- 参数
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]
- similarity_search(query: str, **kwargs: Any) List[Document] [source]¶
返回与查询最相似的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列表的响应对象。
- 返回类型
自版本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]]