from flask import session from flask_security import current_user from flask_wtf import FlaskForm from wtforms import StringField, SelectField from wtforms.validators import DataRequired class SessionDefaultsForm(FlaskForm): user_name = StringField('User Name', validators=[DataRequired()]) user_email = StringField('User', validators=[DataRequired()]) # Tenant Defaults tenant_name = StringField('Tenant Name', validators=[DataRequired()]) default_language = SelectField('Default Language', choices=[], validators=[DataRequired()]) default_embedding_model = SelectField('Default Embedding Model', choices=[], validators=[DataRequired()]) default_llm_model = SelectField('Default LLM Model', choices=[], validators=[DataRequired()]) def __init__(self): super(SessionDefaultsForm, self).__init__() self.user_name.data = current_user.user_name self.user_email.data = current_user.email self.tenant_name.data = session.get('tenant').get('name') self.default_language.choices = [(lang, lang.lower()) for lang in session.get('tenant').get('allowed_languages')] self.default_language.data = session.get('default_language') self.default_embedding_model.choices = [(model, model) for model in session.get('tenant').get('allowed_embedding_models')] self.default_embedding_model.data = session.get('default_embedding_model') self.default_llm_model.choices = [(model, model) for model in session.get('tenant').get('allowed_llm_models')] self.default_llm_model.data = session.get('default_llm_model')