Spaces:
Running
Running
| import pandas as pd | |
| import gradio as gr | |
| df = pd.read_json("data.json") | |
| def filter_data(x, language): | |
| language_filtered_df = df[df['language'] == language] | |
| lower_bound = x | |
| upper_bound = x + 0.1 | |
| mask = (language_filtered_df['prev_nn_sim'] >= lower_bound) & (language_filtered_df['prev_nn_sim'] < upper_bound) | |
| filtered_df = language_filtered_df.loc[mask, ["prompt", "prev_nn_prompt", "prev_nn_sim"]] | |
| filtered_df = filtered_df.sort_values(by="prev_nn_sim", ascending=True) | |
| return filtered_df | |
| custom_css = """ | |
| #my_table table { | |
| table-layout: fixed; | |
| width: 100%; /* or a fixed width like 700px */ | |
| } | |
| #my_table table th, | |
| #my_table table td { | |
| /* Force wrapping within cells: */ | |
| white-space: normal; | |
| word-wrap: break-word; | |
| overflow-wrap: break-word; | |
| /* Example fixed width for all columns (or use nth-child to target individually): */ | |
| width: 200px; | |
| } | |
| """ | |
| with gr.Blocks(css=custom_css) as demo: | |
| gr.Markdown("## Prompt Freshness Nearest Neighbor") | |
| gr.Markdown("### Select a similarity threshold (x) and a language to see the prompts that are within 0.1 of x. ") | |
| gr.Markdown("The nearest neighbor prompt is the prompt that is most similar to the original prompt that appears at a previous time step.") | |
| dropdown = gr.Dropdown( | |
| choices=[round((i + 3) * 0.1, 1) for i in range(7)], | |
| value=0.7, | |
| label="Select a similarity threshold (x)" | |
| ) | |
| initial_data = filter_data(0.7, "English") | |
| language_dropdown = gr.Dropdown( | |
| choices=df['language'].unique().tolist(), | |
| value="English", | |
| label="Select a language" | |
| ) | |
| output = gr.DataFrame( | |
| value=initial_data, | |
| label="Filtered Data", | |
| headers=["Prompt", "Nearest Neighbor Prompt", "Nearest Neighbor Similarity"], | |
| elem_id="my_table" | |
| ) | |
| dropdown.change(fn=filter_data, inputs=[dropdown, language_dropdown], outputs=output) | |
| language_dropdown.change(fn=filter_data, inputs=[dropdown, language_dropdown], outputs=output) | |
| demo.launch() |