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
« prev ^ index » next coverage.py v7.7.0, created at 2025-04-03 00:42 +0200
1from usecases.chat_useCase import ChatUseCase
3from services.similarity_search_service import SimilaritySearchService
4from services.generate_answer_service import GenerateAnswerService
6from models.question_model import QuestionModel
7from models.answer_model import AnswerModel
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
18 def get_answer(self, question_model : QuestionModel) -> AnswerModel:
19 """
20 Retrieves an answer based on the user's question.
22 Args:
23 question_model (QuestionModel): The user's input question.
25 Returns:
26 AnswerModel: The generated answer based on the retrieved context.
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)
35 return answer
36 except Exception as e:
37 raise Exception(f"An error occurred during the chat response generation: {e}") from e