Coverage for src/app/services/similarity_search_service.py: 100%
11 statements
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
1from models.question_model import QuestionModel
2from models.context_model import ContextModel
4from ports.similarity_search_port import SimilaritySearchPort
6class SimilaritySearchService:
7 def __init__(self, similarity_search_port: SimilaritySearchPort):
8 self.similarity_search_port = similarity_search_port
10 def similarity_search(self, question_model: QuestionModel) -> list[ContextModel]:
11 """
12 Performs a similarity search based on the user input and returns a list of relevant documents.
13 Args:
14 question_model (QuestionModel): The input question for which similar documents are to be searched.
15 Returns:
16 list[ContextModel]: A list of documents that are relevant to the user input.
17 Raises:
18 Exception: If an error occurs during the similarity search.
19 """
20 try:
21 return self.similarity_search_port.similarity_search(question_model)
22 except Exception as e:
23 raise Exception(f"An error occurred during the similarity search: {e}") from e