Python / README.md
Adrian Palma
fix README
7a6c314

A newer version of the Gradio SDK is available: 6.10.0

Upgrade
metadata
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