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
« 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"""
6from abc import ABC, abstractmethod
7from typing import Dict, List
9from langchain_core.language_models.chat_models import BaseChatModel
12class BaseFilter(ABC):
13 """Abstract base class for all search result filters."""
15 def __init__(self, model: BaseChatModel | None = None):
16 """
17 Initialize the filter.
19 Args:
20 model: The language model to use for relevance assessments
21 """
22 self.model = model
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.
31 Args:
32 results: List of search result dictionaries
33 query: The original search query
34 **kwargs: Additional filter-specific parameters
36 Returns:
37 Filtered list of search results
38 """
39 pass