File size: 1,572 Bytes
c9af776
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import gradio as gr
from rag_engine import recuperar_documentos, generar_respuesta, preguntar

def ask(query, top_k, umbral):
    # Obtener documentos relevantes
    docs_recuperados = recuperar_documentos(query, top_k, umbral)
    
    # Generar respuesta usando la lógica del motor
    respuesta = generar_respuesta(query, docs_recuperados)
    
    # Formatear documentos para mostrarlos
    docs_formateados = "\n\n---\n\n".join(docs_recuperados)
    
    return respuesta, docs_formateados

# Construcción de la Interfaz
with gr.Blocks(title="RAG Hospital System") as demo:
    gr.Markdown("# 🏥 Hospital Q&A System (RAG)")
    gr.Markdown("Ask questions about contact details, hours, and services.")
    
    with gr.Row():
        with gr.Column():
            input_text = gr.Textbox(label="Question", placeholder="E.g., What are the working hours?", lines=2)
            slider_k = gr.Slider(minimum=1, maximum=5, value=5, step=1, label="Top K Documents")
            slider_threshold = gr.Slider(minimum=0.0, maximum=1.0, value=0.55, step=0.05, label="Similarity Threshold")
            btn = gr.Button("Send")
            
        with gr.Column():
            output_answer = gr.Textbox(label="Generated Answer", lines=3)
            output_docs = gr.Textbox(label="Retrieved Context", lines=6, max_lines=15)

    # Evento de clic
    btn.click(
        fn=ask, 
        inputs=[input_text, slider_k, slider_threshold], 
        outputs=[output_answer, output_docs]
    )

if __name__ == "__main__":
    demo.launch()