• 文档 >
  • qdrant_client.qdrant_fastembed module
快捷方式

qdrant_client.qdrant_fastembed module

class QdrantFastembedMixin(parser: ModelSchemaParser, **kwargs: Any)[source]

基类: QdrantBase

add(collection_name: str, documents: Iterable[str], metadata: Optional[Iterable[dict[str, Any]]] = None, ids: Optional[Iterable[Union[int, str]]] = None, batch_size: int = 32, parallel: Optional[int] = None, **kwargs: Any) list[Union[str, int]]

将文本文档添加到 qdrant 集合中。如果集合不存在,将使用默认参数创建。元数据将与文档结合作为 payload 添加。文档将使用指定的嵌入模型进行嵌入。

如果您想使用自己的向量,请改用 upsert 方法。

参数:
  • collection_name (str) – 要添加文档的集合名称。

  • documents (Iterable[str]) – 要嵌入并添加到集合的文档列表。

  • metadata (Iterable[dict[str, Any]], optional) – 元数据字典列表。默认为 None。

  • ids (Iterable[models.ExtendedPointId], optional) – 要分配给文档的 ID 列表。如果未指定,将生成 UUID。默认为 None。

  • batch_size (int, optional) – 在单个请求中嵌入和上传的文档数量。默认为 32。

  • parallel (Optional[int], optional) – 用于嵌入的并行 worker 数量。默认为 None。如果指定了数字,将使用数据并行处理。

抛出:

ImportError – 如果未安装 fastembed。

返回:

添加文档的 ID 列表。如果未提供 ID,则在客户端随机生成 UUID。

get_embedding_size(model_name: Optional[str] = None) int

获取指定模型产生的嵌入大小。

参数:

model_name – 可选,要获取嵌入大小的模型名称。如果为 None,将使用默认模型。

返回:

int – 模型产生的嵌入大小。

get_fastembed_sparse_vector_params(on_disk: Optional[bool] = None, modifier: Optional[Modifier] = None) Optional[dict[str, SparseVectorParams]]

生成与 fastembed 稀疏模型兼容的向量配置。

参数:
  • on_disk – 如果为 True,向量将存储在磁盘上。如果为 None,将使用默认值。

  • modifier – 稀疏向量查询修饰符。例如,Modifier.IDF 用于基于 idf 的重新评分。默认为 None。

返回:

create_collection 方法中用于 vectors_config 参数的配置。

get_fastembed_vector_params(on_disk: Optional[bool] = None, quantization_config: Optional[Union[ScalarQuantization, ProductQuantization, BinaryQuantization]] = None, hnsw_config: Optional[HnswConfigDiff] = None) dict[str, VectorParams]

生成与 fastembed 模型兼容的向量配置。

参数:
  • on_disk – 如果为 True,向量将存储在磁盘上。如果为 None,将使用默认值。

  • quantization_config – 量化配置。如果为 None,将禁用量化。

  • hnsw_config – HNSW 配置。如果为 None,将使用默认配置。

返回:

create_collection 方法中用于 vectors_config 参数的配置。

get_sparse_vector_field_name() Optional[str]

返回当前 fastembed 模型在 qdrant 集合中使用的向量字段名称。:returns: 向量字段名称。

get_vector_field_name() str

返回当前 fastembed 模型在 qdrant 集合中使用的向量字段名称。:returns: 向量字段名称。

query(collection_name: str, query_text: str, query_filter: Optional[Filter] = None, limit: int = 10, **kwargs: Any) list[QueryResponse]

在集合中搜索文档。此方法使用指定的嵌入模型自动嵌入查询文本。如果您想使用自己的查询向量,请改用 search 方法。

参数:
  • collection_name – 要搜索的集合

  • query_text – 要搜索的文本。此文本将使用指定的嵌入模型进行嵌入,然后用作查询向量。

  • query_filter

    • 排除不符合给定条件的向量。

    • 如果为 None,则在所有向量中搜索

  • limit – 返回多少结果

  • **kwargs – 其他搜索参数。有关详细信息,请参阅 qdrant_client.models.SearchRequest

返回:

list[types.ScoredPoint] – 得分点列表。

query_batch(collection_name: str, query_texts: list[str], query_filter: Optional[Filter] = None, limit: int = 10, **kwargs: Any) list[list[QueryResponse]]

使用批量查询在集合中搜索文档。此方法使用指定的嵌入模型自动嵌入查询文本。

参数:
  • collection_name – 要搜索的集合

  • query_texts – 要搜索的文本列表。每个文本将使用指定的嵌入模型进行嵌入,然后用作单独搜索请求的查询向量。

  • query_filter

    • 排除不符合给定条件的向量。

    • 如果为 None,则在所有向量中搜索

    此过滤器将应用于所有搜索请求。

  • limit – 返回多少结果

  • **kwargs – 其他搜索参数。有关详细信息,请参阅 qdrant_client.models.SearchRequest

返回:

list[list[QueryResponse]] – 每个查询文本的响应列表的列表。

set_model(embedding_model_name: str, max_length: Optional[int] = None, cache_dir: Optional[str] = None, threads: Optional[int] = None, providers: Optional[Sequence[None]] = None, cuda: bool = False, device_ids: Optional[list[int]] = None, lazy_load: bool = False, **kwargs: Any) None

设置用于编码文档和查询的嵌入模型。

参数:
  • embedding_model_name – 支持的嵌入模型之一。有关详细信息,请参阅 SUPPORTED_EMBEDDING_MODELS

  • max_length (int, optional) – 已弃用。默认为 None。

  • cache_dir (str, optional) – 缓存目录的路径。可以使用 FASTEMBED_CACHE_PATH 环境变量设置。默认为系统临时目录中的 fastembed_cache

  • threads (int, optional) – 单个 onnxruntime 会话可以使用的线程数。默认为 None。

  • providers – 要使用的 onnx 提供者列表(带或不带选项)。默认为 None。配置示例:https://runtime.onnx.org.cn/docs/execution-providers/CUDA-ExecutionProvider.html#configuration-options

  • cuda (bool, optional) – 是否使用 cuda 进行推理。与 providers 互斥。默认为 False。

  • device_ids (Optional[list[int]], optional) – 在 worker 中用于数据并行处理的设备 ID 列表。应与 cuda=True 一起使用,与 providers 互斥。默认为 None。

  • lazy_load (bool, optional) – 是否在类初始化期间或按需加载模型。在使用多 GPU 和并行编码时应设置为 True。默认为 False。

抛出:
  • ValueError – 如果嵌入模型不受支持。

  • ImportError – 如果未安装 fastembed。

返回:

None

set_sparse_model(embedding_model_name: Optional[str], cache_dir: Optional[str] = None, threads: Optional[int] = None, providers: Optional[Sequence[None]] = None, cuda: bool = False, device_ids: Optional[list[int]] = None, lazy_load: bool = False, **kwargs: Any) None

设置稀疏嵌入模型,用于与密集嵌入结合进行文档混合搜索。

参数:
  • embedding_model_name – 支持的稀疏嵌入模型之一。有关详细信息,请参阅 SUPPORTED_SPARSE_EMBEDDING_MODELS。如果为 None,则不会使用稀疏嵌入。

  • cache_dir (str, optional) – 缓存目录的路径。可以使用 FASTEMBED_CACHE_PATH 环境变量设置。默认为系统临时目录中的 fastembed_cache

  • threads (int, optional) – 单个 onnxruntime 会话可以使用的线程数。默认为 None。

  • providers – 要使用的 onnx 提供者列表(带或不带选项)。默认为 None。配置示例:https://runtime.onnx.org.cn/docs/execution-providers/CUDA-ExecutionProvider.html#configuration-options

  • cuda (bool, optional) – 是否使用 cuda 进行推理。与 providers 互斥。默认为 False。

  • device_ids (Optional[list[int]], optional) – 在 worker 中用于数据并行处理的设备 ID 列表。应与 cuda=True 一起使用,与 providers 互斥。默认为 None。

  • lazy_load (bool, optional) – 是否在类初始化期间或按需加载模型。在使用多 GPU 和并行编码时应设置为 True。默认为 False。

抛出:
  • ValueError – 如果嵌入模型不受支持。

  • ImportError – 如果未安装 fastembed。

返回:

None

DEFAULT_BATCH_SIZE = 8
DEFAULT_EMBEDDING_MODEL = 'BAAI/bge-small-en'
property embedding_model_name: str
property sparse_embedding_model_name: Optional[str]

Qdrant

了解更多关于 Qdrant 向量搜索项目和生态系统

探索 Qdrant

相似性学习

探索使用相似性学习解决实际问题

学习相似性学习

社区

找到处理类似问题的人并获得问题解答

加入社区