Spaces:
Sleeping
Sleeping
| """ | |
| Search service layer using API. | |
| """ | |
| from typing import Any, Dict, List, Union | |
| from loguru import logger | |
| from api.client import api_client | |
| class SearchService: | |
| """Service layer for search operations using API.""" | |
| def __init__(self): | |
| logger.info("Using API for search operations") | |
| def search( | |
| self, | |
| query: str, | |
| search_type: str = "text", | |
| limit: int = 100, | |
| search_sources: bool = True, | |
| search_notes: bool = True, | |
| minimum_score: float = 0.2 | |
| ) -> List[Dict[str, Any]]: | |
| """Search the knowledge base.""" | |
| response = api_client.search( | |
| query=query, | |
| search_type=search_type, | |
| limit=limit, | |
| search_sources=search_sources, | |
| search_notes=search_notes, | |
| minimum_score=minimum_score | |
| ) | |
| if isinstance(response, dict): | |
| return response.get("results", []) | |
| return [] | |
| def ask_knowledge_base( | |
| self, | |
| question: str, | |
| strategy_model: str, | |
| answer_model: str, | |
| final_answer_model: str | |
| ) -> Union[Dict[Any, Any], List[Dict[Any, Any]]]: | |
| """Ask the knowledge base a question.""" | |
| response = api_client.ask_simple( | |
| question=question, | |
| strategy_model=strategy_model, | |
| answer_model=answer_model, | |
| final_answer_model=final_answer_model | |
| ) | |
| return response | |
| # Global service instance | |
| search_service = SearchService() |