@@ -77,11 +77,7 @@ def list_chroma_subdirectories(directory: Path) -> List[str]:
7777class HybridRetriever :
7878 """Advanced hybrid retriever supporting RRF, parallel processing, and multi-source search."""
7979
80- def __init__ (
81- self ,
82- embedding : Embeddings ,
83- embeddings_directory : Path
84- ):
80+ def __init__ (self , embedding : Embeddings , embeddings_directory : Path ):
8581
8682 self .embedding = embedding
8783 self .embeddings_directory = embeddings_directory
@@ -159,25 +155,17 @@ def _create_vector_retriever(self, subdirectory: str) -> Optional[object]:
159155 return None
160156
161157 async def _search_with_bm25 (
162- self ,
163- query : str ,
164- retriever : BM25Retriever
158+ self , query : str , retriever : BM25Retriever
165159 ) -> List [Document ]:
166160 """Search using BM25 retriever asynchronously."""
167161 return await asyncio .to_thread (retriever .get_relevant_documents , query )
168162
169- async def _search_with_vector (
170- self ,
171- query : str ,
172- retriever : Any
173- ) -> List [Document ]:
163+ async def _search_with_vector (self , query : str , retriever : Any ) -> List [Document ]:
174164 """Search using vector retriever asynchronously."""
175165 return await asyncio .to_thread (retriever .get_relevant_documents , query )
176166
177167 async def _execute_hybrid_search (
178- self ,
179- query : str ,
180- subdirectory : str
168+ self , query : str , subdirectory : str
181169 ) -> List [Document ]:
182170 """Execute hybrid search (BM25 + vector) for a single query on a subdirectory."""
183171 retriever_info = self ._retrievers .get (subdirectory )
@@ -223,9 +211,7 @@ def _generate_document_identifier(self, document: Document) -> str:
223211 return hashlib .md5 (document .page_content .encode ()).hexdigest ()
224212
225213 async def _apply_reciprocal_rank_fusion (
226- self ,
227- queries : List [str ],
228- subdirectory : str
214+ self , queries : List [str ], subdirectory : str
229215 ) -> List [Document ]:
230216 """Apply Reciprocal Rank Fusion to results from multiple queries on a subdirectory."""
231217 logger .info (
@@ -325,8 +311,7 @@ async def ainvoke(self, inputs: Dict[str, Any]) -> str:
325311
326312
327313def create_hybrid_retriever (
328- embedding : Embeddings ,
329- embeddings_directory : Path
314+ embedding : Embeddings , embeddings_directory : Path
330315) -> HybridRetriever :
331316 """Create a hybrid retriever with RRF and parallel processing support."""
332317 try :
0 commit comments