langchain_community.vectorstores.zep
.ZepVectorStore¶
- class langchain_community.vectorstores.zep.ZepVectorStore(collection_name: str, api_url: str, *, api_key: Optional[str] = None, config: Optional[CollectionConfig] = None, embedding: Optional[Embeddings] = None)[source]¶
Zep 向量存储。
它提供了将文本或文档添加到存储、搜索相似文档和删除文档的方法。
搜索分数使用余弦相似度计算,并归一化到 [0, 1]。
- 参数
api_url (str) – Zep API 的 URL。
collection_name (str) – Zep 存储中集合的名称。
api_key (Optional[str]) – Zep API 的 API 密钥。
config (Optional[CollectionConfig]) – 集合的配置。如果集合尚不存在,则为必需项。
embedding (Optional[Embeddings]) – 用于嵌入文本的可选嵌入函数。如果集合不是自动嵌入的,则为必需项。
属性
embeddings
如果可用,则访问查询嵌入对象。
方法
__init__
(collection_name, api_url, *[, ...])aadd_documents
(documents, **kwargs)异步地通过嵌入运行更多文档并添加到向量存储。
aadd_texts
(texts[, metadatas, document_ids])通过嵌入运行更多文本并添加到向量存储。
add_documents
(documents, **kwargs)在向量存储中添加或更新文档。
add_texts
(texts[, metadatas, document_ids])通过嵌入运行更多文本并添加到向量存储。
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_retriever
(**kwargs)返回从此 VectorStore 初始化的 VectorStoreRetriever。
asearch
(query, search_type[, metadata, k])返回与使用指定搜索类型查询最相似的文档。
asimilarity_search
(query[, k, metadata])返回与查询最相似的文档。
asimilarity_search_by_vector
(embedding[, k, ...])返回与嵌入向量最相似的文档。
返回与查询最相似的文档。
asimilarity_search_with_score
(*args, **kwargs)异步运行带距离的相似性搜索。
astreaming_upsert
(items, /, batch_size, **kwargs)aupsert
(items, /, **kwargs)ZepVectorStore.delete()
通过 Zep 向量 UUID 删除。
ZepVectorStore.from_documents()
返回从文档和嵌入初始化的 VectorStore。
ZepVectorStore.from_texts()
返回从文本初始化的 ZepVectorStore 实例的类方法。
ZepVectorStore.get_by_ids()
通过 ID 获取文档。
ZepVectorStore.max_marginal_relevance_search()
返回使用最大边际相关性选择的文档。
返回使用最大边际相关性选择的文档。
ZepVectorStore.search()
返回与使用指定搜索类型查询最相似的文档。
ZepVectorStore.similarity_search()
返回与查询最相似的文档。
ZepVectorStore.similarity_search_by_vector()
返回与嵌入向量最相似的文档。
ZepVectorStore.similarity_search_with_relevance_scores()
返回范围在 [0, 1] 内的文档和相关性分数。
ZepVectorStore.similarity_search_with_score()
运行带距离的相似性搜索。
ZepVectorStore.streaming_upsert()
ZepVectorStore.upsert()
- __init__(collection_name: str, api_url: str, *, api_key: Optional[str] = None, config: Optional[CollectionConfig] = None, embedding: Optional[Embeddings] = None) None [source]¶
- 参数
collection_name (str) –
api_url (str) –
api_key (Optional[str]) –
config (Optional[CollectionConfig]) –
embedding (Optional[Embeddings]) –
- 返回类型
None
- 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[str, Any]]] = None, document_ids: Optional[List[str]] = None, **kwargs: Any) List[str] [source]¶
通过嵌入运行更多文本并添加到向量存储。
- 参数
texts (Iterable[str]) –
metadatas (Optional[List[Dict[str, Any]]]) –
document_ids (Optional[List[str]]) –
kwargs (Any) –
- 返回类型
List[str]
- add_documents(documents: List[Document], **kwargs: Any) List[str] ¶
在向量存储中添加或更新文档。
- 参数
documents (List[Document]) – 要添加到向量存储的文档列表。
kwargs (Any) – 附加关键字参数。如果 kwargs 包含 ids 并且 documents 包含 ids,则 kwargs 中的 ids 将优先。
- 返回
添加的文本的 ID 列表。
- 引发
ValueError – 如果 ids 的数量与文档的数量不匹配。
- 返回类型
List[str]
- add_texts(texts: Iterable[str], metadatas: Optional[List[Dict[str, Any]]] = None, document_ids: Optional[List[str]] = None, **kwargs: Any) List[str] [source]¶
通过嵌入运行更多文本并添加到向量存储。
- 参数
texts (Iterable[str]) – 要添加到向量存储的字符串的可迭代对象。
metadatas (Optional[List[Dict[str, Any]]]) – 与文本关联的可选元数据列表。
document_ids (Optional[List[str]]) – 与文本关联的可选文档 ID 列表。
kwargs (Any) – 向量存储特定的参数
- 返回
从将文本添加到向量存储中获得的 ID 列表。
- 返回类型
List[str]
- async adelete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool] ¶
通过向量 ID 或其他条件异步删除。
- 参数
ids (Optional[List[str]]) – 要删除的 ID 列表。如果为 None,则删除全部。默认为 None。
**kwargs (Any) – 子类可能使用的其他关键字参数。
- 返回
如果删除成功,则为 True,否则为 False,如果未实现,则为 None。
- 返回类型
Optional[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 (Sequence[str]) – 要检索的 ID 列表。
- 返回
文档列表。
- 返回类型
List[Document]
0.2.11 版本新增功能。
- async amax_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回使用最大边际相关性选择的文档。
- 参数
query (str) – 查询
k (int) –
fetch_k (int) –
lambda_mult (float) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回使用最大边际相关性选择的文档。
- 参数
embedding (List[float]) – 嵌入向量 (浮点数列表)
k (int) –
fetch_k (int) –
lambda_mult (float) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- as_retriever(**kwargs: Any) VectorStoreRetriever ¶
返回从此 VectorStore 初始化的 VectorStoreRetriever。
- 参数
**kwargs (Any) –
要传递给搜索函数的关键字参数。可以包括:search_type (Optional[str]): 定义检索器应执行的搜索类型。
可以是 “similarity”(默认),“mmr” 或 “similarity_score_threshold”。
- search_kwargs (Optional[Dict]): 要传递给
- 搜索函数的关键字参数。可以包括如下内容:
k: 返回的文档数量 (默认: 4) score_threshold: 相似度分数阈值的最小相关性阈值
对于 similarity_score_threshold
- fetch_k: 传递给 MMR 算法的文档数量
(默认: 20)
- lambda_mult: MMR 返回结果的多样性;
1 表示最小多样性,0 表示最大多样性。(默认: 0.5)
filter: 按文档元数据过滤
- 返回
VectorStore 的检索器类。
- 返回类型
示例
# Retrieve more documents with higher diversity # Useful if your dataset has many similar documents docsearch.as_retriever( search_type="mmr", search_kwargs={'k': 6, 'lambda_mult': 0.25} ) # Fetch more documents for the MMR algorithm to consider # But only return the top 5 docsearch.as_retriever( search_type="mmr", search_kwargs={'k': 5, 'fetch_k': 50} ) # Only retrieve documents that have a relevance score # Above a certain threshold docsearch.as_retriever( search_type="similarity_score_threshold", search_kwargs={'score_threshold': 0.8} ) # Only get the single most similar document from the dataset docsearch.as_retriever(search_kwargs={'k': 1}) # Use a filter to only retrieve documents from a specific paper docsearch.as_retriever( search_kwargs={'filter': {'paper_title':'GPT-4 Technical Report'}} )
- async asearch(query: str, search_type: str, metadata: Optional[Dict[str, Any]] = None, k: int = 3, **kwargs: Any) List[Document] [source]¶
返回与使用指定搜索类型查询最相似的文档。
- 参数
query (str) – 查询
search_type (str) – 搜索类型
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
k (int) –
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- async asimilarity_search(query: str, k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回与查询最相似的文档。
- 参数
query (str) – 查询
k (int) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- async asimilarity_search_by_vector(embedding: List[float], k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回与嵌入向量最相似的文档。
- 参数
embedding (List[float]) – 嵌入向量 (浮点数列表)
k (int) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- async asimilarity_search_with_relevance_scores(query: str, k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Tuple[Document, float]] [source]¶
返回与查询最相似的文档。
- 参数
query (str) – 查询
k (int) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Tuple[Document, float]] – 文档和相关性分数元组的列表
- async asimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]] ¶
异步运行带距离的相似性搜索。
- 参数
*args (Any) – 传递给搜索方法的参数。
**kwargs (Any) – 传递给搜索方法的参数。
- 返回
List of Tuples of (doc, similarity_score).
- 返回类型
List[Tuple[Document, float]] – (文档, 相似度分数) 元组的列表。
- astreaming_upsert(items: AsyncIterable[Document], /, batch_size: int, **kwargs: Any) AsyncIterator[UpsertResponse] ¶
Beta
Added in 0.2.11. The API is subject to change.
Upsert documents in a streaming fashion. Async version of streaming_upsert.
- 参数
items (AsyncIterable[Document]) – 文档的异步可迭代对象,用于添加到向量存储。
batch_size (int) – 每次更新批处理的大小。
kwargs (Any) – 额外的关键字参数。kwargs 应该只包含所有文档通用的参数。(例如,索引超时,重试策略等)kwargs 不应包含 ids 以避免语义模糊。相反,ID 应该作为 Document 对象的一部分提供。
- Yields
UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储中的 ID 列表,以及未能添加或更新的 ID 列表。
- 返回类型
AsyncIterator[UpsertResponse] – UpsertResponse 的异步迭代器
0.2.11 版本新增功能。
- async aupsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse ¶
Beta
Added in 0.2.11. The API is subject to change.
Add or update documents in the vectorstore. Async version of upsert.
The upsert functionality should utilize the ID field of the Document object if it is provided. If the ID is not provided, the upsert method is free to generate an ID for the document.
When an ID is specified and the document already exists in the vectorstore, the upsert method should update the document with the new data. If the document does not exist, the upsert method should add the document to the vectorstore.
- 参数
items (Sequence[Document]) – 要添加到向量存储的文档序列。
kwargs (Any) – 附加关键字参数。
- 返回
A response object that contains the list of IDs that were successfully added or updated in the vectorstore and the list of IDs that failed to be added or updated.
- 返回类型
UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储中的 ID 列表,以及未能添加或更新的 ID 列表。
0.2.11 版本新增功能。
- delete(ids: Optional[List[str]] = None, **kwargs: Any) None [source]¶
通过 Zep 向量 UUID 删除。
- 参数
ids (Optional[List[str]]) – 要删除的向量的 UUID 列表(可选)。
kwargs (Any) –
- 引发
ValueError – 如果未提供 UUID。
- 返回类型
None
- classmethod from_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST ¶
返回从文档和嵌入初始化的 VectorStore。
- 参数
documents (List[Document]) – 要添加到向量存储的文档列表。
embedding (Embeddings) – 要使用的嵌入函数。
kwargs (Any) – 附加关键字参数。
- 返回
从文档和嵌入初始化的 VectorStore。
- 返回类型
- classmethod from_texts(texts: List[str], embedding: Optional[Embeddings] = None, metadatas: Optional[List[dict]] = None, collection_name: str = '', api_url: str = '', api_key: Optional[str] = None, config: Optional[CollectionConfig] = None, **kwargs: Any) ZepVectorStore [source]¶
返回从文本初始化的 ZepVectorStore 实例的类方法。
If the collection does not exist, it will be created.
- 参数
texts (List[str]) – 要添加到向量存储的文本列表。
embedding (Optional[Embeddings]) – 可选的嵌入函数,用于嵌入文本。
metadatas (Optional[List[Dict[str, Any]]]) – 与文本关联的可选元数据列表。
collection_name (str) – Zep 存储中集合的名称。
api_url (str) – Zep API 的 URL。
api_key (Optional[str]) – Zep API 的 API 密钥。
config (Optional[CollectionConfig]) – 集合的配置。
kwargs (Any) – 特定于向量存储的附加参数。
- 返回
An instance of ZepVectorStore. – ZepVectorStore 的一个实例。
- 返回类型
- get_by_ids(ids: Sequence[str], /) List[Document] ¶
通过 ID 获取文档。
返回的文档应将其 ID 字段设置为向量存储中文档的 ID。
如果某些 ID 未找到或存在重复 ID,则返回的文档可能少于请求的文档。
用户不应假设返回的文档的顺序与输入 ID 的顺序匹配。相反,用户应依赖返回文档的 ID 字段。
如果对于某些 ID 未找到任何文档,则此方法不应引发异常。
- 参数
ids (Sequence[str]) – 要检索的 ID 列表。
- 返回
文档列表。
- 返回类型
List[Document]
0.2.11 版本新增功能。
- max_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回使用最大边际相关性选择的文档。
最大边际相关性优化查询的相似性和所选文档之间的多样性。
- 参数
query (str) – 用于查找相似文档的文本。
k (int) – 返回的文档数量。默认为 4。
fetch_k (int) –
要获取并传递给 MMR 算法的文档数量。Zep 会自动确定此参数,因此该参数被
忽略。
lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。
metadata (Optional[Dict[str, Any]]) – 可选,用于过滤检索到的文档结果集的元数据
kwargs (Any) –
- 返回
由最大边际相关性选择的文档列表。
- 返回类型
List[Document] – 文档列表
- max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回使用最大边际相关性选择的文档。
最大边际相关性优化查询的相似性和所选文档之间的多样性。
- 参数
embedding (List[float]) – 用于查找相似文档的嵌入向量。
k (int) – 返回的文档数量。默认为 4。
fetch_k (int) –
要获取并传递给 MMR 算法的文档数量。Zep 会自动确定此参数,因此该参数被
忽略。
lambda_mult (float) – 介于 0 和 1 之间的数字,用于确定结果之间多样性的程度,其中 0 对应于最大多样性,1 对应于最小多样性。默认为 0.5。
metadata (Optional[Dict[str, Any]]) – 可选,用于过滤检索到的文档结果集的元数据
kwargs (Any) –
- 返回
由最大边际相关性选择的文档列表。
- 返回类型
List[Document] – 文档列表
- search(query: str, search_type: str, metadata: Optional[Dict[str, Any]] = None, k: int = 3, **kwargs: Any) List[Document] [source]¶
返回与使用指定搜索类型查询最相似的文档。
- 参数
query (str) – 查询
search_type (str) – 搜索类型
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
k (int) –
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- similarity_search(query: str, k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回与查询最相似的文档。
- 参数
query (str) – 查询
k (int) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Document] – 文档列表
- similarity_search_by_vector(embedding: List[float], k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Document] [source]¶
返回与嵌入向量最相似的文档。
- 参数
embedding (List[float]) – 用于查找相似文档的嵌入向量。
k (int) – 返回的文档数量。默认为 4。
metadata (Optional[Dict[str, Any]]) – 可选的元数据过滤器
kwargs (Any) –
- 返回
与查询向量最相似的文档列表。
- 返回类型
List[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: Optional,介于 0 到 1 之间的浮点值,用于
过滤检索到的文档结果集。
- 返回
List of Tuples of (doc, similarity_score).
- 返回类型
List[Tuple[Document, float]] – (文档, 相似度分数) 元组的列表。
- similarity_search_with_score(query: str, k: int = 4, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) List[Tuple[Document, float]] [source]¶
运行带距离的相似性搜索。
- 参数
query (str) – 查询
k (int) –
metadata (Optional[Dict[str, Any]]) – 元数据(可选的字典,键为字符串,值为任意类型)
kwargs (Any) –
- 返回类型
List[Tuple[Document, float]] – 文档和相关性分数元组的列表
- streaming_upsert(items: Iterable[Document], /, batch_size: int, **kwargs: Any) Iterator[UpsertResponse] ¶
Beta
Added in 0.2.11. The API is subject to change.
以流式方式更新文档。
- 参数
items (Iterable[Document]) – 要添加到向量存储的可迭代文档。
batch_size (int) – 每次更新批处理的大小。
kwargs (Any) – 附加的关键字参数。 kwargs 应仅包含所有文档通用的参数。(例如,索引的超时时间、重试策略等)kwargs 不应包含 id 以避免语义模糊。相反,ID 应作为 Document 对象的一部分提供。
- Yields
UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储中的 ID 列表,以及未能添加或更新的 ID 列表。
- 返回类型
Iterator[UpsertResponse]
0.2.11 版本新增功能。
- upsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse ¶
Beta
Added in 0.2.11. The API is subject to change.
在向量存储中添加或更新文档。
The upsert functionality should utilize the ID field of the Document object if it is provided. If the ID is not provided, the upsert method is free to generate an ID for the document.
When an ID is specified and the document already exists in the vectorstore, the upsert method should update the document with the new data. If the document does not exist, the upsert method should add the document to the vectorstore.
- 参数
items (Sequence[Document]) – 要添加到向量存储的文档序列。
kwargs (Any) – 附加关键字参数。
- 返回
A response object that contains the list of IDs that were successfully added or updated in the vectorstore and the list of IDs that failed to be added or updated.
- 返回类型
UpsertResponse – 响应对象,其中包含成功添加到或更新到向量存储中的 ID 列表,以及未能添加或更新的 ID 列表。
0.2.11 版本新增功能。