搜索引擎
sentence_transformers.sparse_encoder.search_engines
定义了不同的辅助函数,用于将生成的稀疏嵌入与向量数据库和搜索引擎集成。
- sentence_transformers.sparse_encoder.search_engines.semantic_search_elasticsearch(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[Elasticsearch, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[Elasticsearch, str]] [源代码]
使用 Elasticsearch 和稀疏嵌入执行语义搜索。
- 参数:
query_embeddings_decoded –
格式为 [[("token": value), ...], ...] 的查询嵌入列表。示例:要从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 格式为 [[("token": value), ...], ...] 的语料库嵌入列表。仅在 corpus_index 为 None 时使用。可以使用与查询嵌入相同的解码方法获得。
corpus_index – (Elasticsearch, collection_name) 元组。如果提供,则使用此现有索引进行搜索。
top_k – 要检索的顶部结果数量
output_index – 是否返回 Elasticsearch 客户端和集合名称
- 返回:
格式为 [[{"corpus_id": int, "score": float}, ...], ...] 的搜索结果列表
搜索所用时间
(可选)如果 output_index 为 True,则为 (Elasticsearch, collection_name) 元组
- 返回类型:
包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_opensearch(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[OpenSearch, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[OpenSearch, str]] [源代码]
使用 OpenSearch 和稀疏嵌入执行语义搜索。
- 参数:
query_embeddings_decoded –
格式为 [[("token": value), ...], ...] 的查询嵌入列表。示例:要从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 格式为 [[("token": value), ...], ...] 的语料库嵌入列表。仅在 corpus_index 为 None 时使用。可以使用与查询嵌入相同的解码方法获得。
corpus_index – (OpenSearch, collection_name) 元组。如果提供,则使用此现有索引进行搜索。
top_k – 要检索的顶部结果数量
output_index – 是否返回 OpenSearch 客户端和集合名称
vocab – 用于将词元转换为词元 ID 的字典
- 返回:
格式为 [[{"corpus_id": int, "score": float}, ...], ...] 的搜索结果列表
搜索所用时间
(可选)如果 output_index 为 True,则为 (OpenSearch, collection_name) 元组
- 返回类型:
包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_qdrant(query_embeddings: torch.Tensor, corpus_embeddings: torch.Tensor | None = None, corpus_index: tuple[QdrantClient, str] | None = None, top_k: int = 10, output_index: bool = False, **kwargs: Any) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[QdrantClient, str]] [源代码]
使用 Qdrant 和稀疏嵌入执行语义搜索。
- 参数:
query_embeddings – 包含查询嵌入的 PyTorch COO 稀疏张量
corpus_embeddings – 包含语料库嵌入的 PyTorch COO 稀疏张量。仅在 corpus_index 为 None 时使用。
corpus_index – (QdrantClient, collection_name) 元组。如果提供,则使用此现有索引进行搜索。
top_k – 要检索的顶部结果数量
output_index – 是否返回 Qdrant 客户端和集合名称
- 返回:
格式为 [[{"corpus_id": int, "score": float}, ...], ...] 的搜索结果列表
搜索所用时间
(可选)如果 output_index 为 True,则为 (QdrantClient, collection_name) 元组
- 返回类型:
包含以下内容的元组
- sentence_transformers.sparse_encoder.search_engines.semantic_search_seismic(query_embeddings_decoded: list[list[tuple[str, float]]], corpus_embeddings_decoded: list[list[tuple[str, float]]] | None = None, corpus_index: tuple[SeismicIndex, str] | None = None, top_k: int = 10, output_index: bool = False, index_kwargs: dict[str, Any] | None = None, search_kwargs: dict[str, Any] | None = None) tuple[list[list[dict[str, int | float]]], float] | tuple[list[list[dict[str, int | float]]], float, tuple[SeismicIndex, str]] [源代码]
使用 Seismic 和稀疏嵌入执行语义搜索。
- 参数:
query_embeddings_decoded –
格式为 [[("token": value), ...], ...] 的查询嵌入列表。示例:要从 SparseEncoder 模型获取此格式
model = SparseEncoder('my-sparse-model') query_texts = ["your query text"] query_embeddings = model.encode(query_texts) query_embeddings_decoded = model.decode(query_embeddings)
corpus_embeddings_decoded – 格式为 [[("token": value), ...], ...] 的语料库嵌入列表。仅在 corpus_index 为 None 时使用。可以使用与查询嵌入相同的解码方法获得。
corpus_index – (SeismicIndex, collection_name) 元组。如果提供,则使用此现有索引进行搜索。
top_k – 要检索的顶部结果数量
output_index – 是否返回 SeismicIndex 客户端和集合名称
index_kwargs – 传递给 build_from_dataset 的 SeismicIndex 的附加参数,例如 centroid_fraction、min_cluster_size、summary_energy、nknn、knn_path、batched_indexing 或 num_threads。
search_kwargs – 传递给 batch_search 的 SeismicIndex 的附加参数,例如 query_cut、heap_factor、n_knn、sorted 或 num_threads。注意:如果未提供,query_cut 和 heap_factor 会被设置为默认值。
- 返回:
格式为 [[{"corpus_id": int, "score": float}, ...], ...] 的搜索结果列表
搜索所用时间
(可选)如果 output_index 为 True,则为 (SeismicIndex, collection_name) 元组
- 返回类型:
包含以下内容的元组