Coverage for src/app/controllers/chat_controller.py: 56%

16 statements  

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

1from dto.answer_dto import AnswerDTO 

2from dto.question_dto import QuestionDTO 

3 

4from usecases.chat_useCase import ChatUseCase 

5 

6from models.question_model import QuestionModel 

7from models.answer_model import AnswerModel 

8 

9class ChatController: 

10 """ 

11 Controller class to manage chat interactions. 

12 """ 

13 def __init__(self, chat_usecase: ChatUseCase): 

14 

15 self.chat_usecase = chat_usecase 

16 

17 

18 def get_answer(self, user_input: QuestionDTO) -> AnswerDTO: 

19 """ 

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

21 

22 Args: 

23 user_input (QuestionDTO): The user's input question. 

24 

25 Returns: 

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

27  

28 """ 

29 try: 

30 question_model = QuestionModel( user_input.get_user(), user_input.get_question()) 

31 

32 answer_model = self.chat_usecase.get_answer(question_model) 

33 

34 answer_dto = AnswerDTO( answer_model.get_answer() ) 

35 

36 return answer_dto 

37 

38 except Exception as e: 

39 raise e