DiegoPerezPonce's picture
Upload 4 files
c9af776 verified
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()