import streamlit as st import json import os from config import SYSTEM_PROMPT, INPUT_TEMPLATE, PROMPT_TEMPLATE, team ''' def settings_page(): st.title("Settings") # Section for System Prompt st.subheader("System Prompt") if "system_prompt" not in st.session_state: st.session_state["system_prompt"] = SYSTEM_PROMPT.strip() system_prompt = st.text_area( "Define the system prompt:", value=st.session_state["system_prompt"] ) # Section for Input Template st.subheader("Input Template") if "input_template" not in st.session_state: st.session_state["input_template"] = INPUT_TEMPLATE.strip() input_template = st.text_area( "Define the input template:", value=st.session_state["input_template"], height=400 ) # Section for Prompt Template st.subheader("Prompt Template") if "prompt_template" not in st.session_state: st.session_state["prompt_template"] = PROMPT_TEMPLATE.strip() prompt_template = st.text_area( "Define the prompt template:", value=st.session_state["prompt_template"] ) # Section for Number of Key Results st.subheader("Number of Key Results") if "num_key_results" not in st.session_state: st.session_state["num_key_results"] = 4 num_key_results = st.number_input( "Set the maximum number of key results:", min_value=1, max_value=10, value=st.session_state["num_key_results"] ) # Save Button for Settings if st.button("Save Settings"): st.session_state["system_prompt"] = system_prompt st.session_state["input_template"] = input_template st.session_state["prompt_template"] = prompt_template st.session_state["num_key_results"] = num_key_results st.success("Settings saved successfully!") # Section for Team Member Management team_member_management() def team_member_management(): st.subheader("Team Member Management") # Initialize team members in session state if "team_members" not in st.session_state: st.session_state["team_members"] = ["John Doe", "Jane Smith"] # Display current team members st.write("### Current Team Members") for member in st.session_state["team_members"]: col1, col2 = st.columns([4, 1]) col1.write(member) if col2.button("Remove", key=f"remove_{member}"): st.session_state["team_members"].remove(member) st.experimental_rerun() # Add new team member st.write("### Add New Team Member") new_member = st.text_input("Enter new team member name:", key="new_member") if st.button("Add Team Member"): if new_member.strip(): if new_member.strip() not in st.session_state["team_members"]: st.session_state["team_members"].append(new_member.strip()) st.success(f"Added {new_member.strip()} to the team.") st.experimental_rerun() else: st.warning(f"{new_member.strip()} is already in the team.") else: st.warning("Please enter a valid name.") ''' SETTINGS_FILE = "settings.json" # Load settings from JSON file def load_settings(): if os.path.exists(SETTINGS_FILE) and 1 == 2: with open(SETTINGS_FILE, "r") as f: return json.load(f) else: # Default settings return { "system_prompt": SYSTEM_PROMPT, "input_template": INPUT_TEMPLATE, "prompt_template": PROMPT_TEMPLATE, "num_key_results": 4, "team_members": ["Khanh Dinh", "Robin Plitzko", "Roberto Renna"], "team_member_template": "{name} - Team Member" } # Save settings to JSON file def save_settings(settings): with open(SETTINGS_FILE, "w") as f: json.dump(settings, f, indent=4) # Settings Page def settings_page(): st.title("Settings") # Load settings settings = load_settings() # Section for System Prompt st.subheader("System Prompt") system_prompt = st.text_area( "Define the system prompt:", value=settings["system_prompt"] ) # Section for Input Template st.subheader("Input Template") input_template = st.text_area( "Define the input template:", value=settings["input_template"] ) # Section for Prompt Template st.subheader("Prompt Template") prompt_template = st.text_area( "Define the prompt template (use {num_key_results} for dynamic insertion):", value=settings["prompt_template"] ) # Section for Number of Key Results st.subheader("Number of Key Results") num_key_results = st.number_input( "Set the maximum number of key results:", min_value=1, max_value=10, value=settings["num_key_results"] ) # Section for Team Member Template st.subheader("Team Member Template") team_member_template = st.text_input( "Define a template for team members (use {name} for dynamic insertion):", value=settings["team_member_template"] ) # Section for Team Member Management team_member_management(settings) # Save Button for Settings if st.button("Save Settings"): # Update settings dictionary settings["system_prompt"] = system_prompt settings["input_template"] = input_template settings["prompt_template"] = prompt_template settings["num_key_results"] = num_key_results settings["team_member_template"] = team_member_template # Save to file save_settings(settings) st.success("Settings saved successfully!") # Team Member Management Section def team_member_management(settings): st.subheader("Team Member Management") # Display current team members st.write("### Current Team Members") for member in settings["team_members"]: col1, col2 = st.columns([4, 1]) col1.write(member) if col2.button(f"Remove {member}", key=f"remove_{member}"): settings["team_members"].remove(member) save_settings(settings) st.experimental_rerun() # Add new team member st.write("### Add New Team Member") new_member = st.text_input("Enter new team member name:", key="new_member") if st.button("Add Team Member"): if new_member.strip(): if new_member.strip() not in settings["team_members"]: settings["team_members"].append(new_member.strip()) save_settings(settings) st.success(f"Added {new_member.strip()} to the team.") st.experimental_rerun() else: st.warning(f"{new_member.strip()} is already in the team.") else: st.warning("Please enter a valid name.")