Spaces:
Sleeping
Sleeping
import gradio as gr | |
from ui.dataset_input import create_dataset_input, load_example_dataset | |
from ui.analysis_screen import process_analysis_request | |
def create_app(): | |
""" | |
Create a streamlined Gradio app for dataset input and Bag of Words analysis. | |
Returns: | |
gr.Blocks: The Gradio application | |
""" | |
with gr.Blocks(title="LLM Response Comparator") as app: | |
# Application state to share data between tabs | |
dataset_state = gr.State({}) | |
analysis_results_state = gr.State({}) | |
# Dataset Input Tab | |
with gr.Tab("Dataset Input"): | |
dataset_inputs, example_dropdown, load_example_btn, create_btn, prompt, response1, model1, response2, model2 = create_dataset_input() | |
# Load example dataset | |
load_example_btn.click( | |
fn=load_example_dataset, | |
inputs=[example_dropdown], | |
outputs=[dataset_inputs] | |
) | |
# Save dataset to state | |
create_btn.click( | |
fn=lambda p, r1, m1, r2, m2: { | |
"entries": [ | |
{"prompt": p, "response": r1, "model": m1}, | |
{"prompt": p, "response": r2, "model": m2} | |
] | |
}, | |
inputs=[prompt, response1, model1, response2, model2], | |
outputs=[dataset_state] | |
) | |
# Analysis Tab | |
with gr.Tab("Analysis"): | |
analysis_options, analysis_params, run_analysis_btn, analysis_output = process_analysis_request() | |
# Run analysis | |
run_analysis_btn.click( | |
fn=process_analysis_request, | |
inputs=[dataset_state, analysis_options], | |
outputs=[analysis_results_state, analysis_output] | |
) | |
return app | |
if __name__ == "__main__": | |
app = create_app() | |
app.launch() |