Spaces:
No application file
No application file
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() |