Coverage for src/app/services/chat_service.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.7.0, created at 2025-04-03 00:42 +0200

1from usecases.chat_useCase import ChatUseCase 

2 

3from services.similarity_search_service import SimilaritySearchService 

4from services.generate_answer_service import GenerateAnswerService 

5 

6from models.question_model import QuestionModel 

7from models.answer_model import AnswerModel 

8 

9class ChatService(ChatUseCase): 

10 """ 

11 Service class to manage chat interactions. 

12 """ 

13 def __init__(self, similarity_search_service : SimilaritySearchService, generate_answer_service : GenerateAnswerService): 

14 self.similarity_search_service = similarity_search_service 

15 self.generate_answer_service = generate_answer_service 

16 

17 

18 def get_answer(self, question_model : QuestionModel) -> AnswerModel: 

19 """ 

20 Retrieves an answer based on the user's question. 

21 

22 Args: 

23 question_model (QuestionModel): The user's input question. 

24 

25 Returns: 

26 AnswerModel: The generated answer based on the retrieved context. 

27 

28 Raises: 

29 Exception: If an error occurs during the similarity search or answer generation. 

30 """ 

31 try: 

32 context_list = self.similarity_search_service.similarity_search(question_model) 

33 answer = self.generate_answer_service.generate_answer(question_model, context_list) 

34 

35 return answer 

36 except Exception as e: 

37 raise Exception(f"An error occurred during the chat response generation: {e}") from e 

38 

39