retrieval-study / app.py
elibrowne
Initial commit for Gradio app
d919aa0
raw
history blame
2.37 kB
import gradio as gr
# VARIABLES: will eventually be loaded with JSON from a dataset
question_text = """
### Bar Question
What is the answer to this question?"""
answers_text = ["A", "B", "C", "D"]
# BLOCKS: main user interface
with gr.Blocks() as user_eval:
# Title text introducing study
gr.Markdown("""
# Legal Retriever Evaluation Study
Thank you for your participation! Here are some basic instructions on how to complete the legal study.
""")
# Passages and user evaluations thereof
with gr.Row(equal_height = False, visible = False) as evals:
with gr.Column(scale = 2) as passages:
passage_display = gr.Markdown("""
### Relevant Passages
- Dataset 1
- Dataset 2
- More text
- More text
- More text
- More text
### Auto-Generated Summary
This is a summary of the above legal passages, which imitates how a RAG system might \
encorporate retrieved data into its context to give a better response to a certain query.
""")
with gr.Column(scale = 1) as scores:
desc_1 = gr.Markdown("How **relevant** are these passages to our query?")
eval_1 = gr.Slider(1, 5)
desc_2 = gr.Markdown("How **novel** are these passages compared to the previous passages?")
eval_2 = gr.Slider(1, 5)
btn = gr.Button("Next")
# btn.click(fn=update, inputs=inp, outputs=eval_1)
# Question and answering dynamics
with gr.Row() as question:
with gr.Column():
gr.Markdown(question_text)
a = gr.Button(answers_text[0])
b = gr.Button(answers_text[1])
c = gr.Button(answers_text[2])
d = gr.Button(answers_text[3])
def answer():
return {
question: gr.Row(visible = False),
evals: gr.Row(visible = True)
}
a.click(fn = answer, outputs = [question, evals])
b.click(fn = answer, outputs = [question, evals])
c.click(fn = answer, outputs = [question, evals])
d.click(fn = answer, outputs = [question, evals])
# Starts on question, switches to evaluation after the user answers
user_eval.launch()