recs_searcher.similarity_search package
Submodules
recs_searcher.similarity_search._base module
Алгоритмы для получения результатов моделей.
- class recs_searcher.similarity_search._base.ChromaDBSearch(model: BaseEmbedding, embedding_database: ndarray, original_array: Iterable[str], preprocessing: List[BaseTransformation], metric: Literal['l2', 'ip', 'cosine'] = 'cosine', clear_array: Iterable[str] | None = None)[исходный код]
Базовые классы:
BaseEmbeddingSearchОсновано на: https://github.com/chroma-core/chroma
- _MAX_BATCH_CHROMA_DB = 5000
- _abc_impl = <_abc._abc_data object>
- _search(array: ndarray, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих k-векторов из БД на array пользователя.
Параметры
- arraynp.ndarray
Пользовательский текст в виде эмбеддинга, которому нужно найти наиболее схожие вектора из БД.
- kint
Кол-во выдаваемых результатов.
Returns
- list_texts, list_similarity: Tuple[List[str], List[float]]
Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст
из бд в виде числа.
Все данные соотносятся по индексу в этих двух списках.
- class recs_searcher.similarity_search._base.FaissSearch(model: BaseEmbedding, embedding_database: ndarray, original_array: Iterable[str], preprocessing: List[BaseTransformation], count_voronoi_cells: int | None = 1, type_optimization_searcher: Literal['IVF', 'IVFPQ'] | None = None, number_centroids: int | None = 8, bits: int | None = 8, clear_array: Iterable[str] | None = None)[исходный код]
Базовые классы:
BaseEmbeddingSearchОсновано на: https://github.com/facebookresearch/faiss
- _abc_impl = <_abc._abc_data object>
- _search(array: ndarray, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих k-векторов из БД на array пользователя.
Параметры
- arraynp.ndarray
Пользовательский текст в виде эмбеддинга, которому нужно найти наиболее схожие вектора из БД.
- kint
Кол-во выдаваемых результатов.
Returns
- list_texts, list_similarity: Tuple[List[str], List[float]]
Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст
из бд в виде числа.
Все данные соотносятся по индексу в этих двух списках.
- class recs_searcher.similarity_search._base.NearestNeighborsSearch(model: BaseEmbedding, embedding_database: ndarray, original_array: Iterable[str], preprocessing: List[BaseTransformation], clear_array: Iterable[str] | None = None, radius: float = 1.0, algorithm: str = 'auto', leaf_size: int = 30, metric: Literal['cosine', 'l1', 'l2', 'minkowski', 'manhattan'] = 'cosine', p: float = 2, metric_params: dict = None, n_jobs: int = None)[исходный код]
Базовые классы:
BaseEmbeddingSearchПоиск на основе ближайших соседей. Основа на: https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors
- _abc_impl = <_abc._abc_data object>
- _search(array: ndarray, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих k-векторов из БД на array пользователя.
Параметры
- arraynp.ndarray
Пользовательский текст в виде эмбеддинга, которому нужно найти наиболее схожие вектора из БД.
- kint
Кол-во выдаваемых результатов.
Returns
- list_texts, list_similarity: Tuple[List[str], List[float]]
Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст
из бд в виде числа.
Все данные соотносятся по индексу в этих двух списках.
- class recs_searcher.similarity_search._base.TheFuzzSearch(original_array: Iterable[str], preprocessing: List[BaseTransformation], clear_array: Iterable[str] | None = None)[исходный код]
Базовые классы:
BaseSearchКласс поиска наиболее похожих слов в БД с помощью расстояния Ливенштейна. Основано на: https://github.com/seatgeek/thefuzz
- _abc_impl = <_abc._abc_data object>
- _search(clear_text: str, k: int) Tuple[List[str], List[float]][исходный код]
Поиск наиболее схожих текстов из БД на clear_text пользователя.
Параметры
- clear_textstr
Пользовательский текст, которому нужно найти наиболее схожие тексты из БД.
- kint
Кол-во выдаваемых результатов.
Returns
- list_texts, list_similarity: Tuple[List[str], List[float]]
Вычисленные результаты. В списке list_texts хранится текст, который похож на текст пользователя. В списке list_similarity хранится схожесть пользовательского текста на текст
из бд в виде числа.
Все данные соотносятся по индексу в этих двух списках.
recs_searcher.similarity_search._validate module
Алгоритмы для валидации моделей.
- class recs_searcher.similarity_search._validate.Validate(searcher: BaseSearch, augmentation_transforms: List[BaseTransformation], accuracy_top: List[int] = [1, 5, 10], ascending: bool = True)[исходный код]
Базовые классы:
objectКласс валидации пайплайна. Не имеет методов, возвращает словарь метрик Dict[int, float].