from chat import Chat | |
from rag import Retriever | |
from evaluator import Evaluator | |
class ChatbotController: | |
def __init__(self): | |
self.retriever = Retriever() | |
self.chatbot = Chat() | |
self.evaluator = Evaluator(name="Damla") | |
def get_response(self, message, history, recorded_emails): | |
chunks = self.retriever.get_relevant_chunks(message) | |
reply, new_recorded_emails = self.chatbot.chat(message, history, recorded_emails, chunks) | |
evaluation = self.evaluator.evaluate(reply, message, history) | |
while not evaluation.is_acceptable: | |
print("Retrying due to failed evaluation...") | |
reply = self.chatbot.rerun(reply, message, history, evaluation.feedback) | |
evaluation = self.evaluator.evaluate(reply, message, history) | |
return reply, new_recorded_emails |