Spaces:
Sleeping
Sleeping
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.") |