Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| def create_mining_tab(): | |
| with gr.Tab("⛏️ Mining", id="mining"): | |
| gr.Markdown("## ⛏️ Data Mining Engine (L-DME)") | |
| gr.Markdown("Configuración completa del motor de minería de datos y síntesis avanzada") | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("### 🔧 Motor de Datos") | |
| enable_dme = gr.Checkbox(value=True, label="Auto-Reparación JSON (DME)") | |
| auto_recover = gr.Checkbox(value=False, label="Auto-Recuperar Metadatos al finalizar") | |
| memory_json = gr.Checkbox(value=True, label="Memory JSON (persistencia)") | |
| gr.Markdown("### 🔍 Fases del Pipeline") | |
| phase_search = gr.Checkbox(value=True, label="Fase 1: Búsqueda") | |
| phase_synthesis = gr.Checkbox(value=True, label="Fase 2: Síntesis") | |
| gr.Markdown("### 🔄 Iteraciones") | |
| iterations_enabled = gr.Checkbox(value=True, label="Habilitar Iteraciones") | |
| iterations_count = gr.Slider(minimum=1, maximum=30, value=1, step=1, label="Número de Iteraciones") | |
| gr.Markdown("### ⏱️ Delay entre Iteraciones") | |
| delay_enabled = gr.Checkbox(value=False, label="Habilitar Delay") | |
| with gr.Row(): | |
| delay_minutes = gr.Slider(minimum=0, maximum=1, value=0, step=1, label="Minutos") | |
| delay_seconds = gr.Slider(minimum=0, maximum=59, value=0, step=1, label="Segundos") | |
| with gr.Column(): | |
| gr.Markdown("### 📋 Estrategia de Síntesis") | |
| synthesis_strategy = gr.Radio( | |
| choices=["lineal", "jerárquica", "auto"], value="auto", | |
| label="Estrategia" | |
| ) | |
| auto_strategy = gr.Checkbox(value=True, label="Auto-seleccionar estrategia") | |
| hierarchical_threshold = gr.Slider(minimum=10, maximum=100, value=50, step=5, label="Umbral Jerárquico (docs)") | |
| gr.Markdown("### ⚡ Opciones Avanzadas") | |
| parallel_synthesis = gr.Checkbox(value=True, label="Síntesis Paralela") | |
| use_map_reduce = gr.Checkbox(value=True, label="Map-Reduce (Destilación)") | |
| infinite_output = gr.Checkbox(value=True, label="Output Infinito") | |
| max_continuation = gr.Slider(minimum=1, maximum=10, value=5, step=1, label="Max Continuaciones") | |
| strict_template = gr.Checkbox(value=False, label="Plantilla Estricta") | |
| gr.Markdown("### 📊 Límites de Documentos") | |
| max_search_docs = gr.Slider(minimum=10, maximum=200, value=100, step=10, label="Max Docs Búsqueda") | |
| max_synthesis_docs = gr.Slider(minimum=5, maximum=500, value=150, step=10, label="Max Docs Síntesis") | |
| chunk_size = gr.Slider(minimum=5, maximum=100, value=25, step=5, label="Chunk Size (Destilación)") | |
| gr.Markdown("### 🎯 Refinamiento") | |
| ara_plus = gr.Checkbox(value=True, label="ARA+ Refinamiento") | |
| grade_enabled = gr.Checkbox(value=True, label="GRADE Clasificación") | |
| grade_limit = gr.Slider(minimum=10, maximum=100, value=50, step=10, label="Max Docs GRADE") | |
| gr.Markdown("### 📝 Modo Abstract") | |
| abstract_mode = gr.Radio(choices=["COMPLETO", "LIMITADO"], value="COMPLETO", label="Modo Abstract") | |
| abstract_char_limit = gr.Slider(minimum=100, maximum=10000, value=5000, step=100, label="Límite de Caracteres (si LIMITADO)", visible=False) | |
| def toggle_abstract_limit(mode): | |
| return gr.update(visible=(mode == "LIMITADO")) | |
| abstract_mode.change(fn=toggle_abstract_limit, inputs=[abstract_mode], outputs=[abstract_char_limit]) | |
| with gr.Accordion("ℹ️ Guía de Configuración", open=False): | |
| gr.Markdown(""" | |
| ### Estrategias de Síntesis | |
| | Estrategia | Descripción | Cuándo usar | | |
| |-----------|-------------|-------------| | |
| | **Lineal** | Un solo call de IA con todo el contexto | < 50 docs, rápido | | |
| | **Jerárquica** | Divide en chunks, destila cada uno, luego sintetiza | > 50 docs, calidad | | |
| | **Auto** | Selecciona jerárquica si docs > umbral | Recomendado | | |
| ### DME (Data Mining Engine) | |
| - **Auto-Reparación**: Repara abstracts faltantes scraping HTML de repositorios | |
| - **Auto-Recuperar**: Ejecuta recuperación automática al finalizar el pipeline | |
| - **Memory JSON**: Persiste resultados en archivo JSON local | |
| ### Iteraciones | |
| - Cada iteración genera queries complementarias basadas en gaps detectados | |
| - Delay: Pausa entre iteraciones (útil para APIs con rate limits) | |
| ### Output Infinito | |
| - Si la respuesta se trunca, continúa automáticamente | |
| - Max continuaciones controla cuántas veces puede continuar | |
| """) | |
| return { | |
| "enable_dme": enable_dme, | |
| "auto_recover": auto_recover, | |
| "memory_json": memory_json, | |
| "phase_search": phase_search, | |
| "phase_synthesis": phase_synthesis, | |
| "iterations_enabled": iterations_enabled, | |
| "iterations_count": iterations_count, | |
| "delay_enabled": delay_enabled, | |
| "delay_minutes": delay_minutes, | |
| "delay_seconds": delay_seconds, | |
| "synthesis_strategy": synthesis_strategy, | |
| "auto_strategy": auto_strategy, | |
| "hierarchical_threshold": hierarchical_threshold, | |
| "parallel_synthesis": parallel_synthesis, | |
| "use_map_reduce": use_map_reduce, | |
| "infinite_output": infinite_output, | |
| "max_continuation": max_continuation, | |
| "strict_template": strict_template, | |
| "max_search_docs": max_search_docs, | |
| "max_synthesis_docs": max_synthesis_docs, | |
| "chunk_size": chunk_size, | |
| "ara_plus": ara_plus, | |
| "grade_enabled": grade_enabled, | |
| "grade_limit": grade_limit, | |
| "abstract_mode": abstract_mode, | |
| "abstract_char_limit": abstract_char_limit, | |
| } | |