Source code for maeser.controllers.training_post

# SPDX-License-Identifier: LGPL-3.0-or-later

"""
This module contains the controller to save training data from a post request.
"""

from maeser.chat.chat_session_manager import ChatSessionManager
from flask import request, redirect, Response


[docs] def controller(chat_session_manager: ChatSessionManager) -> Response: """ Handle the post request to save training data. Uses flask.request and expects a post request with the following fields: - "**name**": The name of the form respondent. - "**role**": The role/position of the respondent. Expected values are "Professor" or "Teachers Assistant". - "**type**": The type of training data. Expected values are "Information" or "Style". - "**question**": The question the user would ask the chatbot. - "**answer**": The answer the chatbot should generate in response to the user's question. Args: chat_session_manager (ChatSessionManager): The chat session manager instance. Returns: Response: Redirects to the home page. """ chat_logs_manager = chat_session_manager.chat_logs_manager name = request.form.get("name") role = request.form.get("role") type = request.form.get("type") question = request.form.get("question") answer: str | None = request.form.get("answer") if chat_logs_manager is not None: chat_logs_manager.save_training_data( { "name": name, "role": role, "type": type, "question": question, "answer": answer, } ) return redirect("/")