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
« 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
4from usecases.chat_useCase import ChatUseCase
6from models.question_model import QuestionModel
7from models.answer_model import AnswerModel
9class ChatController:
10 """
11 Controller class to manage chat interactions.
12 """
13 def __init__(self, chat_usecase: ChatUseCase):
15 self.chat_usecase = chat_usecase
18 def get_answer(self, user_input: QuestionDTO) -> AnswerDTO:
19 """
20 Retrieves an answer based on the user's question.
22 Args:
23 user_input (QuestionDTO): The user's input question.
25 Returns:
26 AnswerDTO: The generated answer based on the retrieved context.
28 """
29 try:
30 question_model = QuestionModel( user_input.get_user(), user_input.get_question())
32 answer_model = self.chat_usecase.get_answer(question_model)
34 answer_dto = AnswerDTO( answer_model.get_answer() )
36 return answer_dto
38 except Exception as e:
39 raise e