Coverage for src / local_deep_research / advanced_search_system / filters / base_filter.py: 89%

9 statements  

« prev     ^ index     » next       coverage.py v7.12.0, created at 2026-01-11 00:51 +0000

1# src/local_deep_research/advanced_search_system/filters/base_filter.py 

2""" 

3Base class for search result filters. 

4""" 

5 

6from abc import ABC, abstractmethod 

7from typing import Dict, List 

8 

9from langchain_core.language_models.chat_models import BaseChatModel 

10 

11 

12class BaseFilter(ABC): 

13 """Abstract base class for all search result filters.""" 

14 

15 def __init__(self, model: BaseChatModel | None = None): 

16 """ 

17 Initialize the filter. 

18 

19 Args: 

20 model: The language model to use for relevance assessments 

21 """ 

22 self.model = model 

23 

24 @abstractmethod 

25 def filter_results( 

26 self, results: List[Dict], query: str, **kwargs 

27 ) -> List[Dict]: 

28 """ 

29 Filter search results by relevance to the query. 

30 

31 Args: 

32 results: List of search result dictionaries 

33 query: The original search query 

34 **kwargs: Additional filter-specific parameters 

35 

36 Returns: 

37 Filtered list of search results 

38 """ 

39 pass