Spaces:
Sleeping
Sleeping
File size: 2,824 Bytes
5847b80 4583ebb 5847b80 4583ebb 5847b80 4583ebb 5847b80 4583ebb 5847b80 4583ebb 5847b80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
import streamlit as st
import random
from helpers import query_you_com, query_tavily, query_perplexity
# Set Streamlit to wide mode
st.set_page_config(layout="wide")
# Define the function to process the question
def ProcessQuestion(question):
# Randomly select two out of the three functions
functions = [query_you_com, query_tavily, query_perplexity]
selected_functions = random.sample(functions, 2)
# Get answers from the selected functions
answer_a = selected_functions[0](question)
answer_b = selected_functions[1](question)
return answer_a, answer_b
# Initialize session state if not already done
if 'results_displayed' not in st.session_state:
st.session_state['results_displayed'] = False
if 'answer_a' not in st.session_state:
st.session_state['answer_a'] = ""
if 'answer_b' not in st.session_state:
st.session_state['answer_b'] = ""
if 'question' not in st.session_state:
st.session_state['question'] = ""
# Streamlit app layout
st.title("Chatbot Comparison")
# Create columns for the input and model selection
input_col, control_col = st.columns([4, 1])
with input_col:
# Text box for user input with character limit
question = st.text_area("Enter your question here (max 1000 characters):", max_chars=1000)
with control_col:
# Submit button
submit_button = st.button("Submit")
if submit_button:
if question:
if len(question) <= 1000:
# Process the question and get answers
answer_a, answer_b = ProcessQuestion(question)
# Save answers and state to session state
st.session_state['answer_a'] = answer_a
st.session_state['answer_b'] = answer_b
st.session_state['question'] = question
st.session_state['results_displayed'] = True
else:
st.error("Your question exceeds the 1,000 character limit. Please shorten your question.")
else:
st.error("Please enter a question.")
# Display results if available in session state
if st.session_state['results_displayed']:
col1, col2 = st.columns(2)
with col1:
st.write("### Output A")
st.write(st.session_state['answer_a'])
with col2:
st.write("### Output B")
st.write(st.session_state['answer_b'])
feedback_col = st.columns([1, 1, 1, 1])
with feedback_col[0]:
if st.button("A is better π₯"):
st.write("You selected: A is better")
with feedback_col[1]:
if st.button("B is better π₯"):
st.write("You selected: B is better")
with feedback_col[2]:
if st.button("It's a Tie π€"):
st.write("You selected: It's a Tie")
with feedback_col[3]:
if st.button("Both are bad π"):
st.write("You selected: Both are bad")
|