langchain_community.vectorstores.lancedb
.LanceDB¶
- class langchain_community.vectorstores.lancedb.LanceDB(connection: Optional[Any] = None, embedding: Optional[Embeddings] = None, uri: Optional[str] = '/tmp/lancedb', vector_key: Optional[str] = 'vector', id_key: Optional[str] = 'id', text_key: Optional[str] = 'text', table_name: Optional[str] = 'vectorstore', api_key: Optional[str] = None, region: Optional[str] = None, mode: Optional[str] = 'overwrite', table: Optional[Any] = None, distance: Optional[str] = 'l2', reranker: Optional[Any] = None, relevance_score_fn: Optional[Callable[[float], float]] = None, limit: int = 4)[source]¶
LanceDB 矢量存储。
要使用,您应该安装了
lancedb
Python 包。您可以使用pip install lancedb
来安装它。- 参数
connection (可选【
】) – 要使用的 LanceDB 连接。如未提供,将创建一个新连接。 embedding (可选【Embeddings】) – 要用于矢量存储的嵌入。
vector_key (可选【
】) – 在数据库中用于矢量的键。默认为 vector
。id_key (可选【
】) – 在数据库中用于 id 的键。默认为 id
。text_key (可选【
】) – 在数据库中用于文本的键。默认为 text
。table_name (可选【
】) – 要使用的表名。默认为 vectorstore
。api_key (可选【
】) – 用于 LanceDB 云数据库的 API 密钥。 region (可选【
】) – 用于 LanceDB 云数据库的区域。 mode (可选【
】) – 将数据添加到表中的模式。默认为 overwrite
。uri (可选【
】) – table (可选【
】) – distance (可选【
】) – reranker (可选【
】) – relevance_score_fn (可选【
】【【float】】,`float`】) – limit (
) –
示例
使用 Lance DB 矢量存储进行初始化
属性
embeddings
访问可用的查询嵌入对象。
方法
__init__
([connection, embedding, uri, ...])使用 Lance DB 矢量存储进行初始化
aadd_documents
(documents, **kwargs)异步运行更多文档通过嵌入并将它们添加到向量存储中。
aadd_texts
(texts[, metadatas])异步运行更多文本通过嵌入并将它们添加到向量存储中。
add_documents
(documents, **kwargs)在向量存储中添加或更新文档。
add_images
(uris[, metadatas, ids])运行更多图像通过嵌入并将它们添加到向量存储中。
add_texts
(texts[, metadatas, 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, **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)create_index
([col_name, vector_col, ...])在表上创建一个标量(适用于非向量列)或向量索引。
delete
([ids, delete_all, filter, ...])允许通过筛选、通过 ids 删除行或从表中删除列。
encode_image
(uri)从图像 URI 获取 base64 字符串。
from_documents
(documents, embedding, **kwargs)返回从文档和嵌入初始化的向量存储。
from_texts
(texts, embedding[, metadatas, ...])返回从文本和嵌入初始化的向量存储。
get_by_ids
(ids, /)通过它们的 ID 获取文档。
get_table
([name, set_default])从数据库获取一个表对象。
max_marginal_relevance_search
(query[, k, ...])使用最大边际相关性返回所选文档。
使用最大边际相关性返回所选文档。
results_to_docs
(results[, score])search
(query, search_type, **kwargs)返回文档,这些文档与查询最相似,并使用指定的搜索类型。
similarity_search
(query[, k, name, filter, fts])返回与查询最相似的文档。
similarity_search_by_vector
(embedding[, k, ...])返回与查询向量最相似的文档。
返回与查询向量最相似的文档以及相关性评分。
返回范围在 [0, 1] 内的文档和相关性评分。
similarity_search_with_score
(query[, k, filter])返回文档最相关得分。
streaming_upsert
(items, /, batch_size, **kwargs)upsert
(items, /, **kwargs)- __init__(connection: Optional[Any] = None, embedding: Optional[Embeddings] = None, uri: Optional[str] = '/tmp/lancedb', vector_key: Optional[str] = 'vector', id_key: Optional[str] = 'id', text_key: Optional[str] = 'text', table_name: Optional[str] = 'vectorstore', api_key: Optional[str] = None, region: Optional[str] = None, mode: Optional[str] = 'overwrite', table: Optional[Any] = None, distance: Optional[str] = 'l2', reranker: Optional[Any] = None, relevance_score_fn: Optional[Callable[[float], float]] = None, limit: int = 4)[source]¶
使用 Lance DB 矢量存储进行初始化
- 参数
连接 (可选[任何]) –
嵌入 (可选[嵌入]) –
uri (可选【
】) – 向量键 (可选[str]) –
id键 (可选[str]) –
文本键 (可选[str]) –
表名 (可选[str]) –
API密钥 (可选[str]) –
区域 (可选[str]) –
模式 (可选[str]) –
table (可选【
】) – distance (可选【
】) – reranker (可选【
】) – relevance_score_fn (可选【
】【【float】】,`float`】) – limit (
) –
- asyncaadd_documents(documents: List[Document], **kwargs: Any) List[str] ¶
异步运行更多文档通过嵌入并将它们添加到向量存储中。
- 参数
documents (列表[文档]) – 需要添加到向量存储的文档。
kwargs (任何) –附加关键字参数。
- 返回
添加文本的ID列表。
- 引发
ValueError – 如果ID的数量与文档的数量不匹配。
- 返回类型
List[str]
- asyncaadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str] ¶
异步运行更多文本通过嵌入并将它们添加到向量存储中。
- 参数
texts (可迭代[str]) – 要添加到向量存储的字符串的集合。
metadatas (可选[列表[字典]]) – 与文本关联的元数据列表。默认为None。
**kwargs (任何) – 向量存储特定参数。
- 返回
将文本添加到向量存储中的ID列表。
- 引发
ValueError – 如果元数据的数量与文本的数量不匹配。
ValueError – 如果 IDs 的数量与文本的数量不匹配。
- 返回类型
列表[字符串]
- add_documents(documents: List[Document], **kwargs: Any) List[str] ¶
在向量存储中添加或更新文档。
- 参数
documents (列表[文档]) – 需要添加到向量存储的文档。
kwargs (Any) – 额外的关键字参数。如果 kwargs 包含 IDs 且文档包含 IDs,kwargs 中的 IDs 将具有优先级。
- 返回
添加文本的ID列表。
- 引发
ValueError – 如果 IDs 的数量与文档的数量不匹配。
- 返回类型
List[str]
- add_images(uris: List[str], metadatas: Optional[List[dict]] = None, ids: Optional[List[str]] = None, **kwargs: Any) List[str] [source]¶
运行更多图像通过嵌入并将它们添加到向量存储中。
- 参数
列表[str] (uris) – 图像的文件路径。
metadatas (Optional[List[dict]], optional) – 可选的元数据列表。
ids (Optional[List[str]], optional) – 可选的 ID 列表。
uris (列表[字符串]) –
kwargs (Any) –
- 返回
已添加图像的 ID 列表。
- 返回类型
List[str]
- add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, ids: Optional[List[str]] = None, **kwargs: Any)
将文本转换为嵌入并将其添加到数据库中
- 参数
texts (可迭代[str]) – 要添加到向量存储的字符串的集合。
metadatas (可选[列表[字典]]) - 可选与文本关联的元数据列表。
ids (可选[列表[字符串]]) - 可选与文本关联的ID列表。
ids - 可选与文本关联的ID列表。
kwargs (Any) –
- 返回
所添加文本的ID列表。
- 返回类型
列表[字符串]
- 异步的adelete(ids: Optional[List[str]] = None, **kwargs: Any)
异步通过矢量ID或其他标准删除。
- 参数
ids (可选[列表[字符串]]) - 要删除的ID列表。如果为None,则删除所有。默认为None。
**kwargs (任何类型) - 子类可能使用的其他关键字参数。
- 返回
如果删除成功则为True,否则为False,如未实现则为None。
- 返回类型
可选[布尔类型]
- async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST ¶
异步返回从文档和嵌入初始化的VectorStore。
- 参数
documents (List[Document]) – 要添加到向量存储中的文档列表。
embedding (Embeddings) – 要使用的嵌入函数。
kwargs (任何) –附加关键字参数。
- 返回
从文档和嵌入初始化的向量存储。
- 返回类型
- async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) VST ¶
异步返回从文本和嵌入初始化的VectorStore。
- 参数
texts (List[str]) – 要添加到向量存储中的文本。
embedding (Embeddings) – 要使用的嵌入函数。
metadatas (可选[列表[字典]]) – 与文本关联的元数据列表。默认为None。
kwargs (任何) –附加关键字参数。
- 返回
从文本和嵌入初始化的向量存储。
- 返回类型
- async aget_by_ids(ids: Sequence[str], /) List[Document] ¶
异步通过其ID获取文档。
返回的文档预期将ID字段设置为您在向量存储中的文档ID。
如果某些ID未找到或存在重复ID,则返回的文档可能比请求的少。
用户不应假定返回的文档顺序与输入ID的顺序一致。相反,用户应依赖返回文档的ID字段。
如果某些ID找不到文档,此方法不应引发异常。
- 参数
ids (序列[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, **kwargs: Any) List[Document]¶
异步返回使用最大边际相关性选择的文档。
最大边际相关度优化排序查询相似性和选中文档间的多样性。
- 参数
query (str) – 查找与类似文档的文本。
k (int) – 要返回的文档数量。默认为4。
fetch_k (int) – 要传递给MMR算法的文档数量。默认为20。
lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性的程度,0表示最大多样性,1表示最小多样性。默认为0.5。
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, **kwargs: Any) List[Document] ¶
异步返回使用最大边际相关性选择的文档。
最大边际相关度优化排序查询相似性和选中文档间的多样性。
- 参数
嵌入 (<em>List<float></em>) – 查找与文档相似的嵌入。
k (int) – 要返回的文档数量。默认为4。
fetch_k (int) – 要传递给MMR算法的文档数量。默认为20。
lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性的程度,0表示最大多样性,1表示最小多样性。默认为0.5。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
由最大边际相关度选择的文档列表。
- 返回类型
List[Document]
- as_retriever(**kwargs: Any) VectorStoreRetriever ¶
从此VectorStore返回VectorStoreRetriever。
- 参数
<strong><em>**kwargs</em></strong> (
传递给搜索函数的关键字参数。可以包括:search_type (Optional[str]):定义检索器应执行搜索的类型。可以是“similarity”(默认)、“mmr”或“similarity_score_threshold”。
search_kwargs (Optional[Dict]):传递给搜索函数的关键字参数。可以包括
- 如下的内容:
k:返回的文档数量(默认:4)
score_threshold:相似度阈值(默认值),用于相似度阈值搜索
- fetch_k:传递给MMR算法的文档数量(默认:20)
(默认: 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, **kwargs: Any) List[Document] ¶
异步返回使用指定搜索类型与查询最相似的文档。
- 参数
query (str) – 输入文本。
search_type (str) – 要执行搜索的类型。可以是“similarity”(相似度)、“mmr”或“similarity_score_threshold”(相似度得分阈值)。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
与查询最相似的文档列表。
- 引发
ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一。
- 返回类型
List[Document]
- async asimilarity_search(query: str, k: int = 4, **kwargs: Any) List[Document] ¶
异步返回与查询最相似的文档。
- 参数
query (str) – 输入文本。
k (int) – 要返回的文档数量。默认为4。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
与查询最相似的文档列表。
- 返回类型
List[Document]
- async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document] ¶
异步返回与嵌入向量最相似的文档。
- 参数
嵌入 (<em>List<float></em>) – 查找与文档相似的嵌入。
k (int) – 要返回的文档数量。默认为4。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
与查询向量最相似的文档列表。
- 返回类型
List[Document]
- async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]]
异步返回范围在[0, 1]内的文档和相关性分数。
0 表示不相似,1 表示最相似。
- 参数
query (str) – 输入文本。
k (int) – 要返回的文档数量。默认为4。
<strong><em>**kwargs</em></strong> (
kwargs 应传递给相似度搜索。应包括:score_threshold:可选,介于 0 到 1 之间的浮点数值,用于
过滤检索到的文档集
- 返回
包含 (doc, similarity_score) 的元组列表
- 返回类型
列表 [Tuple[Document, float]]
- async asimilarity_search_with_score(*args: Any, **kwargs: Any) List[Tuple[Document, float]]
异步执行距离相似性搜索。
- 参数
*args (Any) – 传递给搜索方法的参数。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
包含 (doc, similarity_score) 的元组列表。
- 返回类型
列表 [Tuple[Document, float]]
- astreaming_upsert(items: AsyncIterable[Document], /, batch_size: int, **kwargs: Any) AsyncIterator[UpsertResponse]
Beta
自 0.2.11 版本开始添加。API 可能会发生变化。
以流的形式更新文档。streaming_upsert 的异步版本。
- 参数
items (AsyncIterable[Document]) – 要添加到向量存储的文档的序列。
batch_size (int) – 每个批更新的大小。
kwargs (Any) – 额外关键字参数。kwargs 只应包含所有文档都共有的参数(例如,索引超时、重试策略等)。kwargs 不应包含 id 以避免语义歧义。相反,应将 ID 作为 Document 对象的一部分提供。
- 产出
UpsertResponse – 一个响应对象,包含成功添加或更新在向量存储中的 ID 列表和失败添加或更新的 ID 列表。
- 返回类型
AsyncIterator[UpsertResponse]
自版本0.2.11起引入。
- async aupsert(items: Sequence[Document], /, **kwargs: Any) UpsertResponse
Beta
自 0.2.11 版本开始添加。API 可能会发生变化。
向向量存储中添加或更新文档。upsert 的异步版本。
upsert 功能应利用 Document 对象的 ID 字段(如果提供)。如果没有提供 ID,upsert 方法可以为文档生成一个 ID。
当指定 ID 并且文档已存在于向量存储中时,upsert 方法应使用新数据更新文档。如果文档不存在,upsert 方法应将其添加到向量存储中。
- 参数
items (Sequence[Document]) – 要添加到向量存储的文档序列。
kwargs (任何) –附加关键字参数。
- 返回
包含成功添加或更新在向量存储中的 ID 列表和失败添加或更新的 ID 列表的响应对象。
- 返回类型
自版本0.2.11起引入。
- create_index(col_name: Optional[str] = None, vector_col: Optional[str] = None, num_partitions: Optional[int] = 256, num_sub_vectors: Optional[int] = 96, index_cache_size: Optional[int] = None, metric: Optional[str] = 'L2', name: Optional[str] = None) None [来源]¶
在表上创建标量(用于非向量列)或向量索引。在向列创建索引之前,请确保您的向量列有足够的数据。
- 参数
vector_col (可选)[str] – 如果要在向量列上创建索引,则提供。
col_name (可选)[str] – 如果要在非向量列上创建索引,则提供。
metric (可选)[str] – 提供用于向量索引的度量标准。默认为‘L2’。度量标准的选项:‘L2’,‘dot’,‘cosine’。
num_partitions (可选)[int] – 索引使用的分区数。默认为256。
num_sub_vectors (可选)[int] – 索引使用的子向量数。默认为96。
index_cache_size (可选)[int] – 索引缓存的大小。默认为None。
name (可选)[str] – 要在该表上创建索引的表名。默认为None。
- 返回
None
- 返回类型
None
- delete(ids: Optional[List[str]] = None, delete_all: Optional[bool] = None, filter: Optional[str] = None, drop_columns: Optional[List[str]] = None, name: Optional[str] = None, **kwargs: Any) None [source]¶
允许通过筛选、通过 ids 删除行或从表中删除列。
- 参数
filter (可选[str]) – 提供一个字符串SQL表达式 - “{col} {operation} {value}”。
ids (可选[列表[str]]) – 提供要从中删除的表的id列表。
drop_columns (可选[列表[str]]) – 提供要从此表中删除的列的列表。
delete_all (可选[bool]) – 如果为True,则从表中删除所有行。
name (可选[str]) –
kwargs (Any) –
- 返回类型
None
- classmethod from_documents(documents: List[文档], embedding: Embeddings, **kwargs: Any) VST ¶
返回从文档和嵌入初始化的向量存储。
- 参数
documents (List[Document]) – 要添加到向量存储中的文档列表。
embedding (Embeddings) – 要使用的嵌入函数。
kwargs (任何) –附加关键字参数。
- 返回
从文档和嵌入初始化的向量存储。
- 返回类型
- classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, connection: Optional[Any] = None, vector_key: Optional[str] = 'vector', id_key: Optional[str] = 'id', text_key: Optional[str] = 'text', table_name: Optional[str] = 'vectorstore', api_key: Optional[str] = None, region: Optional[str] = None, mode: Optional[str] = 'overwrite', distance: Optional[str] = 'l2', reranker: Optional[Any] = None, relevance_score_fn: Optional[Callable[[float], float]] = None, **kwargs: Any) LanceDB [source]¶
返回从文本和嵌入初始化的向量存储。
- 参数
texts (List[str]) – 要添加到向量存储中的文本。
embedding (Embeddings) – 要使用的嵌入函数。
metadatas (可选[列表[字典]]) – 与文本关联的元数据列表。默认为None。
kwargs (任何) –附加关键字参数。
连接 (可选[任何]) –
向量键 (可选[str]) –
id键 (可选[str]) –
文本键 (可选[str]) –
表名 (可选[str]) –
API密钥 (可选[str]) –
区域 (可选[str]) –
模式 (可选[str]) –
distance (可选【
】) – reranker (可选【
】) – relevance_score_fn (可选【
】【【float】】,`float`】) –
- 返回
从文本和嵌入初始化的向量存储。
- 返回类型
- get_by_ids(ids: 序列[str], /) 文档列表 ¶
通过它们的 ID 获取文档。
返回的文档预期将ID字段设置为您在向量存储中的文档ID。
如果某些ID未找到或存在重复ID,则返回的文档可能比请求的少。
用户不应假定返回的文档顺序与输入ID的顺序一致。相反,用户应依赖返回文档的ID字段。
如果某些ID找不到文档,此方法不应引发异常。
- 参数
ids (序列[str]) – 要检索的ID列表。
- 返回
文档列表。
- 返回类型
List[Document]
自版本0.2.11起引入。
- get_table(name: Optional[str] = None, set_default: Optional[bool] = False) 任何类型 [源代码]¶
从数据库获取一个表对象。
- 参数
名称 (str、可选)- 要获取的表名称。默认为 None,获取当前表对象。
set_default (bool、可选)- 将获取的表设置为默认表。默认为 False。
- 返回
获取的表对象。
- 返回类型
任何类型
- 引发
ValueError - 如果在数据库中未找到指定的表。
- max_marginal_relevance_search(query: str, k: Optional[int] = None, fetch_k: int = 20, lambda_mult: float = 0.5, filter: Optional[Dict[str, str]] = None, **kwargs: Any) List[Document] [source]¶
使用最大边缘相关度返回文档。最大边缘相关度优化了与查询的相似性和所选文档之间的多样性。
- 参数
query (str) – 查找与类似文档的文本。
k (可选[int]) - 要返回的文档数。默认为4。
fetch_k (int) - 要传递给MMR算法的文档数。
lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性的程度,0表示最大多样性,1表示最小多样性。默认为0.5。
filter (可选[Dict[str, str]]) - 通过元数据过滤。默认为None。
kwargs (Any) –
- 返回
由最大边际相关度选择的文档列表。
- 返回类型
列表[Document]
- max_marginal_relevance_search_by_vector(embedding: List[float], k: Optional[int] = None, fetch_k: int = 20, lambda_mult: float = 0.5, filter: Optional[Dict[str, str]] = None, **kwargs: Any) List[Document] [source]¶
使用最大边缘相关度返回文档。最大边缘相关度优化了与查询的相似性和所选文档之间的多样性。
- 参数
嵌入 (<em>List<float></em>) – 查找与文档相似的嵌入。
k (可选[int]) - 要返回的文档数。默认为4。
fetch_k (int) - 要传递给MMR算法的文档数。
lambda_mult (float) – 介于0和1之间的数字,用于确定结果中多样性的程度,0表示最大多样性,1表示最小多样性。默认为0.5。
filter (可选[Dict[str, str]]) - 通过元数据过滤。默认为None。
kwargs (Any) –
- 返回
由最大边际相关度选择的文档列表。
- 返回类型
列表[Document]
- results_to_docs(results: Any, score: bool = False) Any [source]¶
- 参数
results (Any) –
score (bool) –
- 返回类型
任何类型
- search(query: str, search_type: str, **kwargs: Any) List[Document] ¶
返回文档,这些文档与查询最相似,并使用指定的搜索类型。
- 参数
query (str) – 输入文本
search_type (str) – 要执行搜索的类型。可以是“similarity”(相似度)、“mmr”或“similarity_score_threshold”(相似度得分阈值)。
<strong><em>**kwargs</em></strong> (<em>Any</em>) – 传递给搜索方法的参数。
- 返回
与查询最相似的文档列表。
- 引发
ValueError – 如果 search_type 不是 “similarity”、“mmr” 或 “similarity_score_threshold” 之一。
- 返回类型
List[Document]
- similarity_search(query: str, k: Optional[int] = None, name: Optional[str] = None, filter: Optional[Any] = None, fts: Optional[bool] = False, **kwargs: Any) List[Document] [source]¶
返回与查询最相似的文档。
- 参数
query (str) – 使用向量存储进行查询的字符串。
k (可选[int]) – 返回的文档数量。
filter (可选[Dict]) –
可选的过滤参数 sql_filter(可选[string]): 应用到查询的SQL过滤器。 prefilter(可选[bool]): 是否在向量搜索之前应用过滤器。
name (可选[str]) –
fts (可选[bool]) –
kwargs (Any) –
- 引发
ValueError - 如果在数据库中未找到指定的表。
- 返回
与查询最相似的文档列表。
- 返回类型
列表[Document]
- similarity_search_by_vector(embedding: List[float], k: Optional[int] = None, filter: Optional[Dict[str, str]] = None, name: Optional[str] = None, **kwargs: Any) Any [source]¶
返回与查询向量最相似的文档。
- 参数
embedding (列表[浮点数]) –
k (可选[整数]) –
filter (可选[字典[字符串, 字符串]]) –
name (可选[str]) –
kwargs (Any) –
- 返回类型
任何类型
- similarity_search_by_vector_with_relevance_scores(embedding: List[float], k: Optional[int] = None, filter: Optional[Dict[str, str]] = None, name: Optional[str] = None, **kwargs: Any) Any [source]¶
返回与查询向量最相似的文档以及相关性评分。
- 参数
embedding (列表[浮点数]) –
k (可选[整数]) –
filter (可选[字典[字符串, 字符串]]) –
name (可选[str]) –
kwargs (Any) –
- 返回类型
任何类型
- 相似度搜索带相关性得分(查询: str, k: int = 4, **kwargs: Any) List[Tuple[文档, float]] ¶
返回范围在 [0, 1] 内的文档和相关性评分。
0 表示不相似,1 表示最相似。
- 参数
query (str) – 输入文本。
k (int) – 要返回的文档数量。默认为4。
<strong><em>**kwargs</em></strong> (
kwargs 应传递给相似度搜索。应包括:score_threshold:可选,介于 0 到 1 之间的浮点数值,用于
过滤检索到的文档集。
- 返回
包含 (doc, similarity_score) 的元组列表。
- 返回类型
列表 [Tuple[Document, float]]
- 相似度搜索带得分(查询: str, k: Optional[int] = None, filter: Optional[Dict[str, str]] = None, **kwargs: Any) Any [source]¶
返回文档最相关得分。
- 参数
查询 (str) –
k (可选[整数]) –
filter (可选[字典[字符串, 字符串]]) –
kwargs (Any) –
- 返回类型
任何类型
- streaming_upsert(items: Iterable[文档], /, batch_size: int, **kwargs: Any) Iterator[UpsertResponse] ¶
Beta
自 0.2.11 版本开始添加。API 可能会发生变化。
以流式方式更新文档。
- 参数
items (可迭代对象[文档]) – 要添加到向量存储库的文档的迭代对象。
batch_size (int) – 每个批更新的大小。
kwargs (任何) – 额外的关键字参数。kwargs 应仅包含所有文档共有的参数。(例如,索引的超时时间、重试策略等。)kwargs 应不包括 ID 以避免语义歧义。相反,应将 ID 作为 Document 对象的一部分提供。
- 产出
UpsertResponse – 一个响应对象,包含成功添加或更新在向量存储中的 ID 列表和失败添加或更新的 ID 列表。
- 返回类型
迭代器[UpsertResponse]
自版本0.2.11起引入。
- upsert(items: 序列[Document], /, **kwargs: 任何) UpsertResponse ¶
Beta
自 0.2.11 版本开始添加。API 可能会发生变化。
在向量存储中添加或更新文档。
upsert 功能应利用 Document 对象的 ID 字段(如果提供)。如果没有提供 ID,upsert 方法可以为文档生成一个 ID。
当指定 ID 并且文档已存在于向量存储中时,upsert 方法应使用新数据更新文档。如果文档不存在,upsert 方法应将其添加到向量存储中。
- 参数
items (Sequence[Document]) – 要添加到向量存储的文档序列。
kwargs (任何) –附加关键字参数。
- 返回
包含成功添加或更新在向量存储中的 ID 列表和失败添加或更新的 ID 列表的响应对象。
- 返回类型
自版本0.2.11起引入。