qdrant_client.async_qdrant_fastembed 模块¶
- class AsyncQdrantFastembedMixin(parser: ModelSchemaParser, **kwargs: Any)[source]¶
基类:
AsyncQdrantBase
- async 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]] [source]¶
将文本文档添加到 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) – 用于嵌入的并行工作者数量。默认为 None。如果指定了数字,将使用数据并行处理。
- 引发:
ImportError – 如果 fastembed 未安装。
- 返回:
已添加文档的 ID 列表。如果未提供 ID,将在客户端随机生成 UUID。
- get_embedding_size(model_name: Optional[str] = None) int [source]¶
获取指定模型生成的嵌入大小。
- 参数:
model_name – 可选,要获取嵌入大小的模型名称。如果为 None,将使用默认模型。
- 返回:
int – 模型生成的嵌入大小。
- get_fastembed_sparse_vector_params(on_disk: Optional[bool] = None, modifier: Optional[Modifier] = None) Optional[dict[str, SparseVectorParams]] [source]¶
生成与 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] [source]¶
生成与 fastembed 模型兼容的向量配置。
- 参数:
on_disk – 如果为 True,向量将存储在磁盘上。如果为 None,将使用默认值。
quantization_config – 量化配置。如果为 None,将禁用量化。
hnsw_config – HNSW 配置。如果为 None,将使用默认配置。
- 返回:
`create_collection` 方法中 `vectors_config` 参数的配置。
- get_sparse_vector_field_name() Optional[str] [source]¶
返回当前 fastembed 模型在 Qdrant 集合中使用的向量字段名称。:returns: 向量字段名称。
- async query(collection_name: str, query_text: str, query_filter: Optional[Filter] = None, limit: int = 10, **kwargs: Any) list[QueryResponse] [source]¶
在集合中搜索文档。此方法自动使用指定的嵌入模型嵌入查询文本。如果您想使用自己的查询向量,请改用 search 方法。
- 参数:
collection_name – 要搜索的集合
query_text – 要搜索的文本。此文本将使用指定的嵌入模型进行嵌入,然后用作查询向量。
query_filter –
排除不符合给定条件的向量。
如果 None - 在所有向量中搜索
limit – 返回多少结果
**kwargs – 附加搜索参数。有关详细信息,请参阅 qdrant_client.models.SearchRequest。
- 返回:
list[types.ScoredPoint] – 得分点列表。
- async query_batch(collection_name: str, query_texts: list[str], query_filter: Optional[Filter] = None, limit: int = 10, **kwargs: Any) list[list[QueryResponse]] [source]¶
使用批量查询在集合中搜索文档。此方法自动使用指定的嵌入模型嵌入查询文本。
- 参数:
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 [source]¶
设置用于编码文档和查询的嵌入模型。
- 参数:
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) – 用于工作者中的数据并行处理的设备 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 [source]¶
设置稀疏嵌入模型,以便与密集嵌入结合使用,对文档进行混合搜索。
- 参数:
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) – 用于工作者中的数据并行处理的设备 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]¶