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, ...])

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

amax_marginal_relevance_search_by_vector(...)

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

as_retriever(**kwargs)

从此VectorStore返回VectorStoreRetriever。

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)

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, ...])

使用最大边际相关性返回所选文档。

max_marginal_relevance_search_by_vector(...)

使用最大边际相关性返回所选文档。

results_to_docs(results[, score])

search(query, search_type, **kwargs)

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

similarity_search(query[, k, name, filter, fts])

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

similarity_search_by_vector(embedding[, k, ...])

返回与查询向量最相似的文档。

similarity_search_by_vector_with_relevance_scores(...)

返回与查询向量最相似的文档以及相关性评分。

similarity_search_with_relevance_scores(query)

返回范围在 [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起引入。

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

最大边际相关度优化排序查询相似性和选中文档间的多样性。

参数
  • 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的检索器类。

返回类型

VectorStoreRetriever

示例

# 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]

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

参数
  • 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 列表的响应对象。

返回类型

UpsertResponse

自版本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

encode_image(uri: str) str[source]

从图像 URI 获取 base64 字符串。

参数

uri (str) –

返回类型

str

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_defaultbool可选)- 将获取的表设置为默认表。默认为 False。

返回

获取的表对象。

返回类型

任何类型

引发

ValueError - 如果在数据库中未找到指定的表。

使用最大边缘相关度返回文档。最大边缘相关度优化了与查询的相似性和所选文档之间的多样性。

参数
  • 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]

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

参数
  • 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 列表的响应对象。

返回类型

UpsertResponse

自版本0.2.11起引入。

使用 LanceDB 的示例