import gradio as gr import pandas as pd from backend.providers.sources import SOURCE_GROUPS def load_sources(): rows = [] for group_name, sources in SOURCE_GROUPS.items(): for src in sources: rows.append({"Grupo": group_name, "Fuente": src}) df = pd.DataFrame(rows) stats = f"**{len(SOURCE_GROUPS)} grupos** con **{len(set(r['Fuente'] for r in rows))} fuentes únicas**" return df, stats def create_sources_tab(): with gr.Tab("📡 Fuentes", id="sources"): gr.Markdown("## Catálogo de Fuentes Académicas") sources_df = gr.Dataframe(headers=["Grupo", "Fuente"], label="Fuentes por Grupo", wrap=True) sources_md = gr.Markdown("") load_btn = gr.Button("🔄 Cargar Fuentes", variant="primary", size="lg") load_btn.click(fn=load_sources, outputs=[sources_df, sources_md])