Spaces:
Sleeping
Sleeping
File size: 1,936 Bytes
7bf325d 8e34de3 36f7a03 6b7b8b5 36f7a03 8e34de3 36f7a03 8e34de3 5ba1ab4 8e34de3 5110d3f 8e34de3 5110d3f 5ba1ab4 8e34de3 5ba1ab4 8e34de3 5ba1ab4 8e34de3 36f7a03 8e34de3 36f7a03 8e34de3 |
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 |
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() |