import streamlit as st import pandas as pd from io import StringIO from generation import process_scores from model import AzureAgent, GPTAgent # Streamlit app interface st.title('JobFair: A Benchmark for Fairness in LLM Employment Decision') # Streamlit app interface st.sidebar.title('Model Settings') model_type = st.sidebar.radio("Select the type of agent", ('GPTAgent','AzureAgent')) api_key = st.sidebar.text_input("API Key", type="password") endpoint_url = st.sidebar.text_input("Endpoint URL") deployment_name = st.sidebar.text_input("Model Name") if model_type == 'GPTAgent': api_version = st.sidebar.text_input("API Version", '2024-02-15-preview') # Default API version # Model invocation parameters temperature = st.sidebar.slider("Temperature", min_value=0.0, max_value=1.0, value=0.5, step=0.01) max_tokens = st.sidebar.number_input("Max Tokens", min_value=1, max_value=1000, value=150) parameters = {"temperature": temperature, "max_tokens": max_tokens} group_name = st.text_input("Group Name") privilege_label = st.text_input("Privilege Name") protect_label = st.text_input("Protect Name") num_run = st.number_input("Number of runs", min_value=1, value=1) # File upload and data display uploaded_file = st.file_uploader("Choose a file") if uploaded_file is not None: # Read data data = StringIO(uploaded_file.getvalue().decode("utf-8")) df = pd.read_csv(data) # Process data button if st.button('Process Data'): if model_type == 'AzureAgent': agent = AzureAgent(api_key, endpoint_url, deployment_name) else: agent = GPTAgent(api_key, endpoint_url, deployment_name, api_version) # Show progressing bar with st.spinner('Processing data...'): df = process_scores(df,num_run,parameters,privilege_label,protect_label,agent,group_name) st.write('Processed Data:', df)