user-feedback / test.py
Ashmi Banerjee
made it work for merged data
88f694a
raw
history blame
7.18 kB
import streamlit as st
import pandas as pd
# Sample Data (Replace with your actual data loading)
data = {
'query_v': {
'gemini': 'Cheap European city break in February.',
'llama': 'Affordable European trip in February.',
},
'query_p0': {
'gemini': 'European city break in February, less crowded destinations.',
'llama': 'February European city break, away from the crowds.',
},
'query_p1': {
'gemini': 'Best European cities for intense physical training and recovery with easy access to ice rinks?',
'llama': 'Top European cities for intense training and recovery with ice rinks?',
},
}
# Sample rating data (Replace this with your actual data)
rating_data = {
'gemini': {
'query_v': {'relevance': 'Not Relevant', 'clarity': 'Not Clear'},
'query_p0': {'relevance': 'Not Relevant', 'clarity': 'Not Clear', 'persona_alignment': 'N/A'},
'query_p1': {'relevance': 'N/A', 'clarity': 'N/A', 'persona_alignment': 'N/A'},
},
'llama': {
'query_v': {'relevance': 'Somewhat Relevant', 'clarity': 'Somewhat Clear'},
'query_p0': {'relevance': 'Somewhat Relevant', 'clarity': 'Somewhat Clear', 'persona_alignment': 'Partially Aligned'},
'query_p1': {'relevance': 'Not Relevant', 'clarity': 'Not Clear', 'persona_alignment': 'Not Aligned'},
}
}
df = pd.DataFrame.from_dict(data)
# Function to display query, rating, and controls for one query
def display_query_section(query_type, query_text_gemini, query_text_llama, relevance_gemini, clarity_gemini, relevance_llama, clarity_llama, persona_alignment_gemini=None, persona_alignment_llama=None):
st.subheader(f"{query_type}")
col1, col2 = st.columns(2)
with col1:
st.markdown("Gemini")
st.write(query_text_gemini)
st.markdown("Relevance")
relevance_options = ['N/A', 'Not Relevant', 'Somewhat Relevant', 'Relevant', 'Unclear']
selected_relevance_gemini = st.radio("Relevance", options = relevance_options, key=f"relevance_{query_type}_gemini", index=relevance_options.index(relevance_gemini), horizontal=True)
st.markdown("Clarity")
clarity_options = ['N/A', 'Not Clear', 'Somewhat Clear', 'Very Clear']
selected_clarity_gemini = st.radio("Clarity", options = clarity_options, key=f"clarity_{query_type}_gemini", index=clarity_options.index(clarity_gemini), horizontal=True)
if persona_alignment_gemini:
st.markdown("Persona Alignment")
persona_options = ['N/A', 'Not Aligned', 'Partially Aligned', 'Aligned', 'Unclear']
selected_persona_alignment_gemini = st.radio("Persona Alignment", options = persona_options, key=f"persona_{query_type}_gemini", index=persona_options.index(persona_alignment_gemini), horizontal=True)
with col2:
st.markdown("Llama")
st.write(query_text_llama)
st.markdown("Relevance")
relevance_options_llama = ['N/A', 'Not Relevant', 'Somewhat Relevant', 'Relevant', 'Unclear']
selected_relevance_llama = st.radio("Relevance", options = relevance_options_llama, key=f"relevance_{query_type}_llama", index=relevance_options_llama.index(relevance_llama), horizontal=True)
st.markdown("Clarity")
clarity_options_llama = ['N/A', 'Not Clear', 'Somewhat Clear', 'Very Clear']
selected_clarity_llama = st.radio("Clarity", options = clarity_options_llama, key=f"clarity_{query_type}_llama", index=clarity_options_llama.index(clarity_llama), horizontal=True)
if persona_alignment_llama:
st.markdown("Persona Alignment")
persona_options_llama = ['N/A', 'Not Aligned', 'Partially Aligned', 'Aligned', 'Unclear']
selected_persona_alignment_llama = st.radio("Persona Alignment", options = persona_options_llama, key=f"persona_{query_type}_llama", index=persona_options_llama.index(persona_alignment_llama), horizontal=True)
# Main Streamlit App
st.set_page_config(layout="wide")
# Context Information
st.title("Question 1 of 5")
st.subheader("Config ID: c_p_0_pop_low_easy")
st.markdown("### Context Information")
with st.expander("Persona", expanded=True):
st.write("A top-scoring player in the local league who is also eyeing a professional career in the NHL")
with st.expander("Filters & Cities", expanded=True):
st.write("Filters: {'popularity': 'low', 'month': 'February'}")
st.write("Cities: ['Adana', 'Adiyaman', 'Agri', 'Arad', 'Arkhangelsk', 'Bacau', 'Baia Mare', 'Balikesir', 'Brest',\
'Burgas', 'Canakkale', 'Craiova', 'Debrecen', 'Denizli', 'Diyarbakir', 'Elazig', 'Erzincan', 'Eskisehir',\
'Gaziantep', 'lasi', 'Ioannina', 'Isparta', 'Jonkoping', 'Kahramanmaras', 'Kars', 'Kayseri', 'Konya', 'Kosice',\
'Linkoping', 'Malatya', 'Miskolc', 'Mykolaiv', 'Nalchik', 'Nevsehir', 'Nis', 'Orebro', 'Orleans', 'Rivne',\
'Rzeszow', 'Samsun', 'Sanliurfa', 'Sevilla', 'Siirt', 'Sivas', 'Syktyvkar', 'Targu-Mures', 'Tekirdag',\
'Thessaloniki', 'Trabzon', 'Uzhhorod', 'Valladolid', 'Van', 'Vasteras', 'Vinnytsia', 'Vitoria-Gasteiz',\
'Vladikavkaz', 'Zaporizhzhia', 'Zielona Gora', 'Batman', 'Erzurum']")
# Display Query Sections
display_query_section(
query_type="Query_v",
query_text_gemini=df.loc['gemini','query_v'],
query_text_llama=df.loc['llama','query_v'],
relevance_gemini=rating_data['gemini']['query_v']['relevance'],
clarity_gemini=rating_data['gemini']['query_v']['clarity'],
relevance_llama=rating_data['llama']['query_v']['relevance'],
clarity_llama=rating_data['llama']['query_v']['clarity'],
)
display_query_section(
query_type="Query_p0",
query_text_gemini=df.loc['gemini','query_p0'],
query_text_llama=df.loc['llama','query_p0'],
relevance_gemini=rating_data['gemini']['query_p0']['relevance'],
clarity_gemini=rating_data['gemini']['query_p0']['clarity'],
persona_alignment_gemini=rating_data['gemini']['query_p0']['persona_alignment'],
relevance_llama=rating_data['llama']['query_p0']['relevance'],
clarity_llama=rating_data['llama']['query_p0']['clarity'],
persona_alignment_llama=rating_data['llama']['query_p0']['persona_alignment'],
)
display_query_section(
query_type="Query_p1",
query_text_gemini=df.loc['gemini','query_p1'],
query_text_llama=df.loc['llama','query_p1'],
relevance_gemini=rating_data['gemini']['query_p1']['relevance'],
clarity_gemini=rating_data['gemini']['query_p1']['clarity'],
persona_alignment_gemini=rating_data['gemini']['query_p1']['persona_alignment'],
relevance_llama=rating_data['llama']['query_p1']['relevance'],
clarity_llama=rating_data['llama']['query_p1']['clarity'],
persona_alignment_llama=rating_data['llama']['query_p1']['persona_alignment'],
)
# Additional Comments
st.markdown("Additional Comments (Optional):")
st.text_area("", key="additional_comments")
# Navigation Buttons
col1, col2, col3 = st.columns([1,1,1])
with col1:
st.button("Back")
with col2:
st.button("Next")
with col3:
st.button("Exit & Resume Later")
# Bottom message
st.markdown("Please provide a rating before proceeding.")