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

1from models.question_model import QuestionModel 

2from models.context_model import ContextModel 

3 

4from ports.similarity_search_port import SimilaritySearchPort 

5 

6class SimilaritySearchService: 

7 def __init__(self, similarity_search_port: SimilaritySearchPort): 

8 self.similarity_search_port = similarity_search_port 

9 

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