--- title: RAG QA System emoji: 🤖 colorFrom: indigo colorTo: blue sdk: gradio sdk_version: "6.9.0" app_file: app.py pinned: false --- # RAG Question Answering System Sistema de preguntas y respuestas basado en **Retrieval-Augmented Generation (RAG)** que utiliza una pequeña base de conocimiento en inglés almacenada en `documents.json`. La aplicación permite realizar preguntas en inglés y obtiene la respuesta utilizando: - Recuperación de documentos relevantes mediante embeddings. - Generación de respuesta usando un modelo de lenguaje. - Una interfaz web interactiva desarrollada con **Gradio**. --- # Estructura del proyecto ```text app.py rag_engine.py documents.json requirements.txt README.md /tests test_api.py ``` **Descripción de los archivos:** - **app.py** → interfaz web construida con Gradio. - **rag_engine.py** → lógica del sistema RAG (recuperación de documentos y generación de respuestas). - **documents.json** → base de conocimiento usada por el chatbot. - **requirements.txt** → dependencias necesarias para ejecutar el proyecto. - **tests/test_api.py** → script para probar la API del sistema desplegado. --- # Instalación Clonar el repositorio o descargar los archivos y crear un entorno virtual. ```bash python3 -m venv .venv source .venv/bin/activate ``` Instalar las dependencias: ```bash pip install -r requirements.txt ``` --- # Ejecución local Para ejecutar la aplicación localmente: ```bash python app.py ``` Abrir el navegador en: ```text http://127.0.0.1:7860 ``` Desde la interfaz se pueden realizar preguntas en inglés sobre la base de conocimiento. --- # Despliegue La aplicación está desplegada en **Hugging Face Spaces** usando el SDK de **Gradio**. URL del Space: ```text https://adrianpalmadev-rag-qa-system.hf.space ``` --- # Uso de la API El sistema también puede utilizarse mediante la API generada automáticamente por Gradio. Ejemplo de cliente en Python: ```python from gradio_client import Client client = Client("https://adrianpalmadev-rag-qa-system.hf.space") result = client.predict( query="Where is the hospital?", top_k=2, umbral=0.5, api_name="/ask" ) print(result) ``` Este script devuelve: - La respuesta generada por el modelo. - Los documentos recuperados utilizados como contexto. --- # Tecnologías utilizadas - Python - Transformers - Sentence Transformers - Scikit-learn - Gradio - Hugging Face Spaces