| 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]) | |