Qdrant#

class langchain_qdrant.vectorstores.Qdrant(client: Any, collection_name: str, embeddings: Embeddings | None = None, content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', distance_strategy: str = 'COSINE', vector_name: str | None = None, async_client: Any | None = None, embedding_function: Callable | None = None)[来源]#

自版本0.1.2起已弃用:请改用QdrantVectorStore。它将在langchain-qdrant==0.5.0中移除。

Qdrant 向量存储。

示例

from qdrant_client import QdrantClient
from langchain_qdrant import Qdrant

client = QdrantClient()
collection_name = "MyCollection"
qdrant = Qdrant(client, collection_name, embedding_function)

使用必要的组件进行初始化。

属性

CONTENT_KEY

METADATA_KEY

VECTOR_NAME

embeddings

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

方法

__init__(client, collection_name[, ...])

使用必要的组件进行初始化。

aadd_documents(documents, **kwargs)

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

aadd_texts(texts[, metadatas, ids, batch_size])

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

aconstruct_instance(texts, embedding[, ...])

add_documents(documents, **kwargs)

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

add_texts(texts[, metadatas, ids, batch_size])

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

adelete([ids])

通过向量ID或其他条件删除。

afrom_documents(documents, embedding, **kwargs)

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

afrom_texts(texts, embedding[, metadatas, ...])

从文本列表构建Qdrant包装器。

aget_by_ids(ids, /)

异步通过ID获取文档。

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

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

amax_marginal_relevance_search_by_vector(...)

Return docs selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents. :param embedding: Embedding vector to look up documents similar to. :param k: Number of Documents to return. Defaults to 4. :param fetch_k: Number of Documents to fetch to pass to MMR algorithm. Defaults to 20. :param lambda_mult: Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5. :param filter: Filter by metadata. Defaults to None. :param search_params: Additional search params :param score_threshold: Define a minimal score threshold for the result. If defined, less similar results will not be returned. Score of the returned result might be higher or smaller than the threshold depending on the Distance function used. E.g. for cosine similarity only higher scores will be returned. :param consistency: Read consistency of the search. Defines how many replicas should be queried before returning the result. Values: - int - number of replicas to query, values should present in all queried replicas - 'majority' - query all replicas, but return values present in the majority of replicas - 'quorum' - query the majority of replicas, return values present in all of them - 'all' - query all replicas, and return values present in all replicas :param **kwargs: Any other named arguments to pass through to AsyncQdrantClient.Search().

amax_marginal_relevance_search_with_score_by_vector(...)

返回使用最大边际相关性选择的文档。最大边际相关性优化了查询的相似性和所选文档之间的多样性。 :param embedding: 用于查找相似文档的嵌入向量。 :param k: 要返回的文档数量。默认为4。 :param fetch_k: 要传递给MMR算法的文档数量。默认为20。 :param lambda_mult: 介于0和1之间的数字,决定了结果之间的多样性程度,0对应最大多样性,1对应最小多样性。默认为0.5。

as_retriever(**kwargs)

返回从此VectorStore初始化的VectorStoreRetriever。

asearch(query, search_type, **kwargs)

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

asimilarity_search(query[, k, filter])

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

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

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

asimilarity_search_with_relevance_scores(query)

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

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

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

asimilarity_search_with_score_by_vector(...)

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

construct_instance(texts, embedding[, ...])

delete([ids])

通过向量ID或其他条件删除。

from_documents(documents, embedding, **kwargs)

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

from_existing_collection(embedding[, path, ...])

获取现有Qdrant集合的实例。

from_texts(texts, embedding[, metadatas, ...])

从文本列表构建Qdrant包装器。

get_by_ids(ids, /)

通过ID获取文档。

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

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

max_marginal_relevance_search_by_vector(...)

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

max_marginal_relevance_search_with_score_by_vector(...)

Return docs selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents. :param embedding: Embedding vector to look up documents similar to. :param k: Number of Documents to return. Defaults to 4. :param fetch_k: Number of Documents to fetch to pass to MMR algorithm. Defaults to 20. :param lambda_mult: Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5. :param filter: Filter by metadata. Defaults to None. :param search_params: Additional search params :param score_threshold: Define a minimal score threshold for the result. If defined, less similar results will not be returned. Score of the returned result might be higher or smaller than the threshold depending on the Distance function used. E.g. for cosine similarity only higher scores will be returned. :param consistency: Read consistency of the search. Defines how many replicas should be queried before returning the result. Values: - int - number of replicas to query, values should present in all queried replicas - 'majority' - query all replicas, but return values present in the majority of replicas - 'quorum' - query the majority of replicas, return values present in all of them - 'all' - query all replicas, and return values present in all replicas :param **kwargs: Any other named arguments to pass through to QdrantClient.search().

search(query, search_type, **kwargs)

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

similarity_search(query[, k, filter, ...])

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

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

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

similarity_search_with_relevance_scores(query)

返回文档和相关度分数,范围在[0, 1]之间。

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

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

similarity_search_with_score_by_vector(embedding)

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

Parameters:
  • client (Any)

  • collection_name (str)

  • embeddings (可选[Embeddings])

  • content_payload_key (str)

  • metadata_payload_key (str)

  • distance_strategy (str)

  • vector_name (可选[str])

  • async_client (可选[任意])

  • embedding_function (可选[可调用])

__init__(client: Any, collection_name: str, embeddings: Embeddings | None = None, content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', distance_strategy: str = 'COSINE', vector_name: str | None = None, async_client: Any | None = None, embedding_function: Callable | None = None)[源代码]#

使用必要的组件进行初始化。

Parameters:
  • client (Any)

  • collection_name (str)

  • embeddings (Embeddings | None)

  • content_payload_key (str)

  • metadata_payload_key (str)

  • distance_strategy (str)

  • vector_name (str | None)

  • async_client (任意 | )

  • embedding_function (可调用 | )

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

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

Parameters:
  • documents (list[Document]) – 要添加到向量存储中的文档。

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

Returns:

已添加文本的ID列表。

Raises:

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

Return type:

列表[字符串]

async aadd_texts(texts: Iterable[str], metadatas: List[dict] | None = None, ids: Sequence[str] | None = None, batch_size: int = 64, **kwargs: Any) List[str][source]#

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

Parameters:
  • texts (Iterable[str]) – 要添加到向量存储中的字符串的可迭代对象。

  • metadatas (List[dict] | None) – 可选的与文本关联的元数据列表。

  • ids (Sequence[str] | None) – 可选的与文本关联的id列表。id必须是类似uuid的字符串。

  • batch_size (int) – 每次请求上传多少向量。 默认值:64

  • kwargs (Any)

Returns:

将文本添加到向量存储中后的ID列表。

Return type:

列表[str]

async classmethod aconstruct_instance(texts: List[str], embedding: Embeddings, location: str | None = None, url: str | None = None, port: int | None = 6333, grpc_port: int = 6334, prefer_grpc: bool = False, https: bool | None = None, api_key: str | None = None, prefix: str | None = None, timeout: int | None = None, host: str | None = None, path: str | None = None, collection_name: str | None = None, distance_func: str = 'Cosine', content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', vector_name: str | None = None, shard_number: int | None = None, replication_factor: int | None = None, write_consistency_factor: int | None = None, on_disk_payload: bool | None = None, hnsw_config: HnswConfigDiff | None = None, optimizers_config: OptimizersConfigDiff | None = None, wal_config: WalConfigDiff | None = None, quantization_config: ScalarQuantization | ProductQuantization | BinaryQuantization | None = None, init_from: InitFrom | None = None, on_disk: bool | None = None, force_recreate: bool = False, **kwargs: Any) Qdrant[来源]#
Parameters:
  • 文本 (列表[字符串])

  • embedding (Embeddings)

  • 位置 (字符串 | )

  • url (str | None)

  • port (int | None)

  • grpc_port (int)

  • prefer_grpc (bool)

  • https (bool | None)

  • api_key (str | None)

  • prefix (str | None)

  • timeout (int | None)

  • host (str | None)

  • path (str | None)

  • collection_name (str | None)

  • distance_func (str)

  • content_payload_key (str)

  • metadata_payload_key (str)

  • vector_name (str | None)

  • shard_number (int | None)

  • replication_factor (int | None)

  • write_consistency_factor (int | None)

  • on_disk_payload (bool | None)

  • hnsw_config (HnswConfigDiff | None)

  • optimizers_config (OptimizersConfigDiff | None)

  • wal_config (WalConfigDiff | None)

  • quantization_config (ScalarQuantization | ProductQuantization | BinaryQuantization | None)

  • init_from (InitFrom | None)

  • on_disk (bool | None)

  • force_recreate (bool)

  • kwargs (Any)

Return type:

Qdrant

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

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

Parameters:
  • documents (list[Document]) – 要添加到向量存储中的文档。

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

Returns:

已添加文本的ID列表。

Raises:

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

Return type:

列表[字符串]

add_texts(texts: Iterable[str], metadatas: List[dict] | None = None, ids: Sequence[str] | None = None, batch_size: int = 64, **kwargs: Any) List[str][source]#

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

Parameters:
  • texts (Iterable[str]) – 要添加到向量存储中的字符串的可迭代对象。

  • metadatas (List[dict] | None) – 可选的与文本关联的元数据列表。

  • ids (Sequence[str] | None) – 可选的与文本关联的id列表。id必须是类似uuid的字符串。

  • batch_size (int) – 每次请求上传多少向量。 默认值:64

  • kwargs (Any)

Returns:

将文本添加到向量存储中后的ID列表。

Return type:

列表[str]

async adelete(ids: List[str] | None = None, **kwargs: Any) bool | None[来源]#

根据向量ID或其他条件删除。

Parameters:
  • ids (List[str] | None) – 要删除的ID列表。

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

Returns:

如果删除成功则为True,否则为False。

Return type:

布尔值 | 无

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

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

Parameters:
  • documents (list[Document]) – 要添加到向量存储中的文档列表。

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

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

Returns:

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

Return type:

VectorStore

async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: List[dict] | None = None, ids: Sequence[str] | None = None, location: str | None = None, url: str | None = None, port: int | None = 6333, grpc_port: int = 6334, prefer_grpc: bool = False, https: bool | None = None, api_key: str | None = None, prefix: str | None = None, timeout: int | None = None, host: str | None = None, path: str | None = None, collection_name: str | None = None, distance_func: str = 'Cosine', content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', vector_name: str | None = None, batch_size: int = 64, shard_number: int | None = None, replication_factor: int | None = None, write_consistency_factor: int | None = None, on_disk_payload: bool | None = None, hnsw_config: HnswConfigDiff | None = None, optimizers_config: OptimizersConfigDiff | None = None, wal_config: WalConfigDiff | None = None, quantization_config: ScalarQuantization | ProductQuantization | BinaryQuantization | None = None, init_from: InitFrom | None = None, on_disk: bool | None = None, force_recreate: bool = False, **kwargs: Any) Qdrant[来源]#

从文本列表构建Qdrant包装器。

Parameters:
  • texts (List[str]) – 要在Qdrant中索引的文本列表。

  • embedding (Embeddings) – Embeddings 的一个子类,负责文本向量化。

  • metadatas (List[dict] | None) – 一个可选的元数据列表。如果提供,它必须与文本列表的长度相同。

  • ids (Sequence[str] | None) – 可选的与文本关联的id列表。id必须是类似uuid的字符串。

  • location (str | None) – 如果为‘:memory:’ - 使用内存中的Qdrant实例。 如果为str - 将其用作url参数。 如果为None - 回退到依赖hostport参数。

  • url (str | None) – 主机或“Optional[scheme], host, Optional[port], Optional[prefix]”的字符串。默认值:None

  • port (int | None) – REST API接口的端口。默认值:6333

  • grpc_port (int) – gRPC接口的端口。默认值:6334

  • prefer_grpc (bool) – 如果为真 - 在自定义方法中尽可能使用gPRC接口。 默认值:False

  • https (bool | None) – 如果为真 - 使用HTTPS(SSL)协议。默认值:None

  • api_key (str | None) – 用于在Qdrant Cloud中进行身份验证的API密钥。默认值:None 也可以通过环境变量 QDRANT_API_KEY 设置。

  • prefix (str | None) –

    如果不为 None - 将前缀添加到 REST URL 路径。 示例:service/v1 将导致

    http://localhost:6333/service/v1/{qdrant-endpoint} 用于 REST API。

    默认值:None

  • timeout (int | None) – REST 和 gRPC API 请求的超时时间。 默认值:REST 为 5.0 秒,gRPC 无限制

  • host (str | None) – Qdrant 服务的主机名。如果 url 和 host 都为 None,则设置为 'localhost'。默认值:None

  • path (str | None) – 使用本地模式时,向量将存储的路径。 默认值:None

  • collection_name (str | None) – 要使用的Qdrant集合的名称。如果未提供,将随机创建。默认值:None

  • distance_func (str) – 距离函数。可选值之一:“Cosine” / “Euclid” / “Dot”。 默认值:“Cosine”

  • content_payload_key (str) – 用于存储文档内容的payload键。 默认值: “page_content”

  • metadata_payload_key (str) – 用于存储文档元数据的有效载荷键。 默认值:“metadata”

  • vector_name (str | None) – 在Qdrant内部使用的向量名称。 默认值:None

  • batch_size (int) – 每次请求上传多少向量。 默认值:64

  • shard_number (int | None) – 集合中的分片数量。默认为1,最小为1。

  • replication_factor (int | None) – 集合的复制因子。默认值为1,最小值为1。 定义每个分片将创建多少个副本。 仅在分布式模式下有效。

  • write_consistency_factor (int | None) – 集合的写入一致性因子。默认值为1,最小值为1。 定义了多少个副本应该应用操作,我们才认为它是成功的。增加这个数字将使集合对不一致性更具弹性,但如果可用的副本不足,也会使其失败。 对性能没有任何影响。 仅在分布式模式下有效。

  • on_disk_payload (bool | None) – 如果为true - 点的有效载荷将不会存储在内存中。 每次请求时都会从磁盘读取。 此设置通过(略微)增加响应时间来节省RAM。 注意:那些参与过滤并被索引的有效载荷值 - 仍然保留在RAM中。

  • hnsw_config (HnswConfigDiff | None) – HNSW 索引的参数

  • optimizers_config (OptimizersConfigDiff | None) – 优化器的参数

  • wal_config (WalConfigDiff | None) – 用于预写日志的参数

  • quantization_config (ScalarQuantization | ProductQuantization | BinaryQuantization | None) – 量化参数,如果为 None - 量化将被禁用

  • init_from (InitFrom | None) – 使用存储在另一个集合中的数据来初始化此集合

  • force_recreate (bool) – 强制重新创建集合

  • **kwargs (Any) – 直接传递给REST客户端初始化的额外参数

  • on_disk (bool | None)

Return type:

Qdrant

这是一个用户友好的界面,它: 1. 为每个文本创建嵌入 2. 默认情况下将Qdrant数据库初始化为内存中的文档存储

(并且可以覆盖为远程文档存储)

  1. 将文本嵌入添加到Qdrant数据库

这是快速入门的一种方式。

示例

from langchain_qdrant import Qdrant
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
qdrant = await Qdrant.afrom_texts(texts, embeddings, "localhost")
async aget_by_ids(ids: Sequence[str], /) list[Document]#

通过ID异步获取文档。

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

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

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

如果没有找到某些ID的文档,此方法不应引发异常。

Parameters:

ids (Sequence[str]) – 要检索的ID列表。

Returns:

文档列表。

Return type:

列表[Document]

在版本0.2.11中添加。

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

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

Parameters:
  • query (str) – 用于查找相似文档的文本。

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

  • fetch_k (int) – 要获取并传递给MMR算法的文档数量。 默认值为20。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

Returns:

通过最大边际相关性选择的文档列表。

Return type:

列表[Document]

async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Document][source]#

返回使用最大边际相关性选择的文档。 最大边际相关性优化了与查询的相似性和所选文档之间的多样性。 :param embedding: 用于查找相似文档的嵌入向量。 :param k: 要返回的文档数量。默认为4。 :param fetch_k: 要获取并传递给MMR算法的文档数量。

默认为20。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

  • embedding (列表[浮点数])

  • k (整数)

  • fetch_k (int)

Returns:

通过最大边际相关性和距离选择的文档列表。

Return type:

列表[Document]

async amax_marginal_relevance_search_with_score_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][source]#

返回使用最大边际相关性选择的文档。 最大边际相关性优化了与查询的相似性和所选文档之间的多样性。 :param embedding: 用于查找相似文档的嵌入向量。 :param k: 要返回的文档数量。默认为4。 :param fetch_k: 要获取并传递给MMR算法的文档数量。

默认为20。

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

  • embedding (列表[浮点数])

  • k (整数)

  • fetch_k (int)

  • filter (可选[MetadataFilter])

  • search_params (可选[models.SearchParams])

  • score_threshold (可选[浮点数])

  • 一致性 (可选[models.ReadConsistency])

  • kwargs (Any)

Returns:

通过最大边际相关性和距离选择的文档列表。

Return type:

列表[元组[Document, 浮点数]]

as_retriever(**kwargs: Any) VectorStoreRetriever#

返回从此VectorStore初始化的VectorStoreRetriever。

Parameters:

**kwargs (Any) –

传递给搜索函数的关键字参数。 可以包括: search_type (Optional[str]): 定义检索器应执行的搜索类型。 可以是“similarity”(默认)、“mmr”或“similarity_score_threshold”。

检索器应执行的搜索类型。 可以是“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: 按文档元数据过滤

Returns:

VectorStore的检索器类。

Return type:

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

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

Parameters:
  • query (str) – 输入文本。

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

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

Returns:

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

Raises:

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

Return type:

列表[Document]

返回与查询最相似的文档。 :param query: 要查找相似文档的文本。 :param k: 要返回的文档数量。默认为4。 :param filter: 通过元数据进行过滤。默认为None。

Returns:

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

Parameters:
  • query (str)

  • k (整数)

  • filter (可选[MetadataFilter])

  • kwargs (Any)

Return type:

列表[Document]

async asimilarity_search_by_vector(embedding: List[float], k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Document][source]#

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

Parameters:
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页显示结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

Returns:

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

Return type:

列表[Document]

async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) list[tuple[Document, float]]#

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

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

Parameters:
  • query (str) – 输入文本。

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

  • **kwargs (Any) –

    传递给相似性搜索的kwargs。应包括: score_threshold: 可选,一个介于0到1之间的浮点值

    过滤检索到的文档集

Returns:

(文档,相似度分数)的元组列表

Return type:

列表[元组[Document, 浮点数]]

async asimilarity_search_with_score(query: str, k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][source]#

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

Parameters:
  • query (str) – 用于查找相似文档的文本。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页显示结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

Returns:

与查询文本最相似的文档列表及每个文档的距离。

Return type:

列表[元组[Document, 浮点数]]

async asimilarity_search_with_score_by_vector(embedding: List[float], k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][source]#

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

Parameters:
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 AsyncQdrantClient.Search() 的任何其他命名参数。

Returns:

与查询文本最相似的文档列表及每个文档的距离。

Return type:

列表[元组[Document, 浮点数]]

classmethod construct_instance(texts: List[str], embedding: Embeddings, location: str | None = None, url: str | None = None, port: int | None = 6333, grpc_port: int = 6334, prefer_grpc: bool = False, https: bool | None = None, api_key: str | None = None, prefix: str | None = None, timeout: int | None = None, host: str | None = None, path: str | None = None, collection_name: str | None = None, distance_func: str = 'Cosine', content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', vector_name: str | None = None, shard_number: int | None = None, replication_factor: int | None = None, write_consistency_factor: int | None = None, on_disk_payload: bool | None = None, hnsw_config: HnswConfigDiff | None = None, optimizers_config: OptimizersConfigDiff | None = None, wal_config: WalConfigDiff | None = None, quantization_config: ScalarQuantization | ProductQuantization | BinaryQuantization | None = None, init_from: InitFrom | None = None, on_disk: bool | None = None, force_recreate: bool = False, **kwargs: Any) Qdrant[source]#
Parameters:
  • 文本 (列表[字符串])

  • embedding (Embeddings)

  • 位置 (字符串 | )

  • url (str | None)

  • port (int | None)

  • grpc_port (int)

  • prefer_grpc (bool)

  • https (bool | None)

  • api_key (str | None)

  • prefix (str | None)

  • timeout (int | None)

  • host (str | None)

  • path (str | None)

  • collection_name (str | None)

  • distance_func (str)

  • content_payload_key (str)

  • metadata_payload_key (str)

  • vector_name (str | None)

  • shard_number (int | None)

  • replication_factor (int | None)

  • write_consistency_factor (int | None)

  • on_disk_payload (bool | None)

  • hnsw_config (HnswConfigDiff | None)

  • optimizers_config (OptimizersConfigDiff | None)

  • wal_config (WalConfigDiff | None)

  • quantization_config (ScalarQuantization | ProductQuantization | BinaryQuantization | None)

  • init_from (InitFrom | None)

  • on_disk (bool | None)

  • force_recreate (bool)

  • kwargs (Any)

Return type:

Qdrant

delete(ids: List[str] | None = None, **kwargs: Any) bool | None[source]#

根据向量ID或其他条件删除。

Parameters:
  • ids (List[str] | None) – 要删除的ID列表。

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

Returns:

如果删除成功则为True,否则为False。

Return type:

布尔值 | 无

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

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

Parameters:
  • documents (list[Document]) – 要添加到向量存储中的文档列表。

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

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

Returns:

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

Return type:

VectorStore

classmethod from_existing_collection(embedding: Embeddings, path: str | None = None, collection_name: str | None = None, location: str | None = None, url: str | None = None, port: int | None = 6333, grpc_port: int = 6334, prefer_grpc: bool = False, https: bool | None = None, api_key: str | None = None, prefix: str | None = None, timeout: int | None = None, host: str | None = None, content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', distance_strategy: str = 'COSINE', vector_name: str | None = None, **kwargs: Any) Qdrant[source]#

获取现有Qdrant集合的实例。 此方法将返回存储的实例,而不会插入任何新的嵌入。

Parameters:
  • embedding (Embeddings)

  • path (str | None)

  • collection_name (str | None)

  • 位置 (字符串 | )

  • url (str | None)

  • port (int | None)

  • grpc_port (int)

  • prefer_grpc (bool)

  • https (bool | None)

  • api_key (str | None)

  • prefix (str | None)

  • timeout (int | None)

  • host (str | None)

  • content_payload_key (str)

  • metadata_payload_key (str)

  • distance_strategy (str)

  • vector_name (str | None)

  • kwargs (Any)

Return type:

Qdrant

classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: List[dict] | None = None, ids: Sequence[str] | None = None, location: str | None = None, url: str | None = None, port: int | None = 6333, grpc_port: int = 6334, prefer_grpc: bool = False, https: bool | None = None, api_key: str | None = None, prefix: str | None = None, timeout: int | None = None, host: str | None = None, path: str | None = None, collection_name: str | None = None, distance_func: str = 'Cosine', content_payload_key: str = 'page_content', metadata_payload_key: str = 'metadata', vector_name: str | None = None, batch_size: int = 64, shard_number: int | None = None, replication_factor: int | None = None, write_consistency_factor: int | None = None, on_disk_payload: bool | None = None, hnsw_config: HnswConfigDiff | None = None, optimizers_config: OptimizersConfigDiff | None = None, wal_config: WalConfigDiff | None = None, quantization_config: ScalarQuantization | ProductQuantization | BinaryQuantization | None = None, init_from: InitFrom | None = None, on_disk: bool | None = None, force_recreate: bool = False, **kwargs: Any) Qdrant[source]#

从文本列表构建Qdrant包装器。

Parameters:
  • texts (List[str]) – 要在Qdrant中索引的文本列表。

  • embedding (Embeddings) – Embeddings 的一个子类,负责文本向量化。

  • metadatas (List[dict] | None) – 一个可选的元数据列表。如果提供,它必须与文本列表的长度相同。

  • ids (Sequence[str] | None) – 可选的与文本关联的id列表。id必须是类似uuid的字符串。

  • location (str | None) – 如果为‘:memory:’ - 使用内存中的Qdrant实例。 如果为str - 将其用作url参数。 如果为None - 回退到依赖hostport参数。

  • url (str | None) – 主机或“Optional[scheme], host, Optional[port], Optional[prefix]”的字符串。默认值:None

  • port (int | None) – REST API接口的端口。默认值:6333

  • grpc_port (int) – gRPC接口的端口。默认值:6334

  • prefer_grpc (bool) – 如果为真 - 在自定义方法中尽可能使用gPRC接口。 默认值:False

  • https (bool | None) – 如果为真 - 使用HTTPS(SSL)协议。默认值:None

  • api_key (str | None) – 用于在Qdrant Cloud中进行身份验证的API密钥。默认值:None 也可以通过环境变量 QDRANT_API_KEY 设置。

  • prefix (str | None) –

    如果不为 None - 将前缀添加到 REST URL 路径。 示例:service/v1 将导致

    http://localhost:6333/service/v1/{qdrant-endpoint} 用于 REST API。

    默认值:None

  • timeout (int | None) – REST 和 gRPC API 请求的超时时间。 默认值:REST 为 5.0 秒,gRPC 无限制

  • host (str | None) – Qdrant 服务的主机名。如果 url 和 host 都为 None,则设置为 'localhost'。默认值:None

  • path (str | None) – 使用本地模式时,向量将存储的路径。 默认值:None

  • collection_name (str | None) – 要使用的Qdrant集合的名称。如果未提供,将随机创建。默认值:None

  • distance_func (str) – 距离函数。可选值之一:“Cosine” / “Euclid” / “Dot”。 默认值:“Cosine”

  • content_payload_key (str) – 用于存储文档内容的payload键。 默认值: “page_content”

  • metadata_payload_key (str) – 用于存储文档元数据的有效载荷键。 默认值:“metadata”

  • vector_name (str | None) – 在Qdrant内部使用的向量名称。 默认值:None

  • batch_size (int) – 每次请求上传多少向量。 默认值:64

  • shard_number (int | None) – 集合中的分片数量。默认为1,最小为1。

  • replication_factor (int | None) – 集合的复制因子。默认值为1,最小值为1。 定义每个分片将创建多少个副本。 仅在分布式模式下有效。

  • write_consistency_factor (int | None) – 集合的写入一致性因子。默认值为1,最小值为1。 定义了多少个副本应该应用操作,我们才认为它是成功的。增加这个数字将使集合对不一致性更具弹性,但如果可用的副本不足,也会使其失败。 对性能没有任何影响。 仅在分布式模式下有效。

  • on_disk_payload (bool | None) – 如果为true - 点的有效载荷将不会存储在内存中。 每次请求时都会从磁盘读取。 此设置通过(略微)增加响应时间来节省RAM。 注意:那些参与过滤并被索引的有效载荷值 - 仍然保留在RAM中。

  • hnsw_config (HnswConfigDiff | None) – HNSW 索引的参数

  • optimizers_config (OptimizersConfigDiff | None) – 优化器的参数

  • wal_config (WalConfigDiff | None) – 用于预写日志的参数

  • quantization_config (ScalarQuantization | ProductQuantization | BinaryQuantization | None) – 量化参数,如果为 None - 量化将被禁用

  • init_from (InitFrom | None) – 使用存储在另一个集合中的数据来初始化此集合

  • force_recreate (bool) – 强制重新创建集合

  • **kwargs (Any) – 直接传递给REST客户端初始化的额外参数

  • on_disk (bool | None)

Return type:

Qdrant

这是一个用户友好的界面,它: 1. 为每个文本创建嵌入 2. 默认情况下将Qdrant数据库初始化为内存中的文档存储

(并且可以覆盖为远程文档存储)

  1. 将文本嵌入添加到Qdrant数据库

这是快速入门的一种方式。

示例

from langchain_qdrant import Qdrant
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
qdrant = Qdrant.from_texts(texts, embeddings, "localhost")
get_by_ids(ids: Sequence[str], /) list[Document]#

通过ID获取文档。

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

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

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

如果没有找到某些ID的文档,此方法不应引发异常。

Parameters:

ids (Sequence[str]) – 要检索的ID列表。

Returns:

文档列表。

Return type:

列表[Document]

在版本0.2.11中添加。

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

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

Parameters:
  • query (str) – 用于查找相似文档的文本。

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

  • fetch_k (int) – 要获取并传递给MMR算法的文档数量。 默认值为20。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

通过最大边际相关性选择的文档列表。

Return type:

列表[Document]

max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Document][source]#

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

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

Parameters:
  • embedding (List[float]) – 用于查找相似文档的嵌入。

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

  • fetch_k (int) – 要获取并传递给MMR算法的文档数量。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

通过最大边际相关性选择的文档列表。

Return type:

列表[Document]

max_marginal_relevance_search_with_score_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][来源]#

返回使用最大边际相关性选择的文档。 最大边际相关性优化了与查询的相似性和所选文档之间的多样性。 :param embedding: 用于查找相似文档的嵌入向量。 :param k: 要返回的文档数量。默认为4。 :param fetch_k: 要获取并传递给MMR算法的文档数量。

默认为20。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

  • embedding (列表[浮点数])

  • k (整数)

  • fetch_k (int)

Returns:

通过最大边际相关性和距离选择的文档列表。

Return type:

列表[元组[Document, 浮点数]]

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

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

Parameters:
  • query (str) – 输入文本

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

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

Returns:

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

Raises:

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

Return type:

列表[Document]

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

Parameters:
  • query (str) – 用于查找相似文档的文本。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

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

Return type:

列表[Document]

similarity_search_by_vector(embedding: List[float], k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Document][source]#

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

Parameters:
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

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

Return type:

列表[Document]

similarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) list[tuple[Document, float]]#

返回文档和相关度分数,范围在[0, 1]之间。

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

Parameters:
  • query (str) – 输入文本。

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

  • **kwargs (Any) –

    传递给相似性搜索的kwargs。应包括: score_threshold: 可选,一个介于0到1之间的浮点值

    用于过滤检索到的文档集。

Returns:

(文档, 相似度分数) 的元组列表。

Return type:

列表[元组[Document, 浮点数]]

similarity_search_with_score(query: str, k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][source]#

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

Parameters:
  • query (str) – 用于查找相似文档的文本。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

与查询文本最相似的文档列表及每个文档的距离。

Return type:

列表[元组[Document, 浮点数]]

similarity_search_with_score_by_vector(embedding: List[float], k: int = 4, filter: MetadataFilter | None = None, search_params: models.SearchParams | None = None, offset: int = 0, score_threshold: float | None = None, consistency: models.ReadConsistency | None = None, **kwargs: Any) List[Tuple[Document, float]][source]#

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

Parameters:
  • embedding (List[float]) – 用于查找相似文档的嵌入向量。

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

  • filter (可选[MetadataFilter]) – 按元数据过滤。默认为 None。

  • search_params (可选[models.SearchParams]) – 额外的搜索参数

  • offset (int) – 返回的第一个结果的偏移量。 可用于分页结果。 注意:较大的偏移值可能会导致性能问题。

  • score_threshold (Optional[float]) – 定义结果的最小分数阈值。 如果定义了,相似度较低的结果将不会被返回。 返回结果的分数可能会高于或低于阈值,具体取决于所使用的距离函数。 例如,对于余弦相似度,只会返回较高的分数。

  • consistency (Optional[models.ReadConsistency]) –

    搜索的读取一致性。定义在返回结果之前应查询多少个副本。 值: - int - 要查询的副本数量,值应存在于所有

    查询的副本中

    • ’majority’ - 查询所有副本,但返回存在于

      大多数副本中的值

    • ’quorum’ - 查询大多数副本,返回存在于

      所有副本中的值

    • ’all’ - 查询所有副本,并返回存在于所有副本中的值

  • **kwargs (Any) – 传递给 QdrantClient.search() 的任何其他命名参数

Returns:

与查询文本最相似的文档列表及每个文档的距离。

Return type:

列表[元组[Document, 浮点数]]

使用 Qdrant 的示例