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