Spaces:
Running
A newer version of the Gradio SDK is available: 6.10.0
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
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.
python3 -m venv .venv
source .venv/bin/activate
Instalar las dependencias:
pip install -r requirements.txt
Ejecución local
Para ejecutar la aplicación localmente:
python app.py
Abrir el navegador en:
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:
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:
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