Skip to content

Commit 3820091

Browse files
committed
Merge branch 'sparse_search' into dev
2 parents 832d663 + 14319e8 commit 3820091

6 files changed

Lines changed: 31 additions & 17 deletions

File tree

.github/workflows/black.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ jobs:
88
steps:
99
- uses: actions/checkout@v6
1010
- uses: actions/setup-python@v6
11-
- uses: psf/black@@stable
11+
- uses: psf/black@stable

bbconf/config_parser/bedbaseconfig.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def __init__(self, config: Union[Path, str], init_ml: bool = True):
7575
if init_ml:
7676

7777
self.dense_encoder: TextEmbedding = self._init_dense_encoder()
78-
self.sparce_encoder: Union[SparseEncoder, None] = self._init_sparce_model()
78+
self.sparse_encoder: Union[SparseEncoder, None] = self._init_sparce_model()
7979
self._umap_encoder: Union[UMAP, None] = self._init_umap_model()
8080
self.r2v_encoder: Union[Region2VecExModel, None] = self._init_r2v_encoder()
8181

@@ -112,7 +112,7 @@ def __init__(self, config: Union[Path, str], init_ml: bool = True):
112112
self.b2b_search_interface = None
113113
self.bivec_search_interface = None
114114
self._umap_encoder: Union[UMAP, None] = None
115-
self.sparce_encoder = None
115+
self.sparse_encoder = None
116116

117117
self._phc = self._init_pephubclient()
118118
self._boto3_client = self._init_boto3_client()
@@ -288,7 +288,7 @@ def _init_qdrant_text_backend(
288288
return None
289289
if not isinstance(dense_encoder, TextEmbedding):
290290
_LOGGER.error(
291-
f"Unable to create Qdrant bivec text collection,, dense encoder is None."
291+
f"Unable to create Qdrant bivec text collection, dense encoder is None."
292292
)
293293
return None
294294

bbconf/modules/bedfiles.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1627,13 +1627,12 @@ def add_tokenized(
16271627

16281628
if self.exist_tokenized(bed_id, universe_id):
16291629
if not overwrite:
1630-
if not overwrite:
1631-
raise TokenizeFileExistsError(
1632-
"Tokenized file already exists in the database. "
1633-
"Set overwrite to True to overwrite it."
1634-
)
1635-
else:
1636-
self.delete_tokenized(bed_id, universe_id)
1630+
raise TokenizeFileExistsError(
1631+
"Tokenized file already exists in the database. "
1632+
"Set overwrite to True to overwrite it."
1633+
)
1634+
else:
1635+
self.delete_tokenized(bed_id, universe_id)
16371636

16381637
path = self._add_zarr_s3(
16391638
bed_id=bed_id,
@@ -2138,8 +2137,8 @@ def reindex_hybrid_search(self, batch: int = 1000, purge: bool = False) -> None:
21382137

21392138
embeddings_list = list(self.config.dense_encoder.embed(text))
21402139

2141-
if self.config.sparce_encoder:
2142-
sparse_result = self.config.sparce_encoder.encode(
2140+
if self.config.sparse_encoder:
2141+
sparse_result = self.config.sparse_encoder.encode(
21432142
text
21442143
).coalesce()
21452144

@@ -2336,8 +2335,8 @@ def hybrid_search(
23362335
)
23372336

23382337
dense_query = list(list(self.config.dense_encoder.embed(query))[0])
2339-
if self.config.sparce_encoder:
2340-
sparse_result = self.config.sparce_encoder.encode(query).coalesce()
2338+
if self.config.sparse_encoder:
2339+
sparse_result = self.config.sparse_encoder.encode(query).coalesce()
23412340
sparse_embeddings = models.SparseVector(
23422341
indices=sparse_result.indices().tolist()[0],
23432342
values=sparse_result.values().tolist(),

docs/changelog.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format.
44

5+
6+
### [0.14.0] - 2025-12-18
7+
### Fixed:
8+
- Insertion of tokenized files
9+
10+
### Changed:
11+
- Updated qdrant and encoder model initialization. (One connection for qdrant and one initialized object per model)
12+
13+
### Added:
14+
- Hybrid semantic search: dense + sparse search
15+
16+
### Added:
17+
- Added hybrid semantic search.(dense + sparse search)
18+
519
### [0.13.0] - 2025-11-24
620
### Added:
721
- Conversion of bedfile to umap from predefined model

requirements/requirements-all.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
yacman >= 0.9.1
22
sqlalchemy >= 2.0.0
33
gtars >= 0.4.0
4-
geniml[ml] >= 0.8.2
4+
geniml[ml] >= 0.8.3
55
psycopg >= 3.1.15
66
coloredlogs
77
pydantic >= 2.9.0

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,10 @@
4141
classifiers=[
4242
"Development Status :: 4 - Beta",
4343
"License :: OSI Approved :: BSD License",
44-
"Programming Language :: Python :: 3.9",
4544
"Programming Language :: Python :: 3.10",
4645
"Programming Language :: Python :: 3.11",
46+
"Programming Language :: Python :: 3.12",
47+
"Programming Language :: Python :: 3.13",
4748
"Topic :: Scientific/Engineering :: Bio-Informatics",
4849
],
4950
keywords="",

0 commit comments

Comments
 (0)