Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import json | |
| # --- зчитування 3 джерел --- | |
| with open("analysis_explanations_1.json", encoding="utf-8") as f1: | |
| data1 = json.load(f1) | |
| with open("analysis_explanations_2.json", encoding="utf-8") as f2: | |
| data2 = json.load(f2) | |
| try: | |
| with open("analyses_results.json", encoding="utf-8") as f3: | |
| data3 = json.load(f3) | |
| except FileNotFoundError: | |
| data3 = [] | |
| # --- перетворення у словники: {input -> output} --- | |
| dict1 = {entry["input"]: entry["output"] for entry in data1} | |
| dict2 = {entry["input"]: entry["output"] for entry in data2} | |
| dict3 = {entry["input"]: entry["output"] for entry in data3} | |
| # --- список унікальних аналізів --- | |
| analysis_options = sorted(set(list(dict1.keys()) + list(dict2.keys()) + list(dict3.keys()))) | |
| def explain_analysis_separately(selected_test): | |
| output1 = dict1.get(selected_test, "Немає у першому джерелі.") | |
| output2 = dict2.get(selected_test, "Немає у другому джерелі.") | |
| output3 = dict3.get(selected_test, "Немає у третьому джерелі.") | |
| return output1, output2, output3 | |
| with gr.Blocks() as demo: | |
| gr.Markdown("## 🧪 Пояснення до аналізів з трьох джерел") | |
| with gr.Row(): | |
| test_dropdown = gr.Dropdown(label="Оберіть аналіз", choices=analysis_options) | |
| with gr.Row(): | |
| output1 = gr.Textbox(label="Варіант 1 (analysis_explanations_1.json)", lines=8) | |
| output2 = gr.Textbox(label="Варіант 2 (analysis_explanations_2.json)", lines=8) | |
| output3 = gr.Textbox(label="Варіант 3 (analyses_results.json)", lines=8) | |
| test_dropdown.change( | |
| fn=explain_analysis_separately, | |
| inputs=test_dropdown, | |
| outputs=[output1, output2, output3] | |
| ) | |
| demo.launch() | |