Python / README.md
Adrian Palma
add README
f7888fc
|
raw
history blame
2.71 kB

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
  • app.py: interfaz web con Gradio.
  • rag_engine.py: lógica del sistema RAG (recuperación de documentos y generación de respuestas).
  • documents.json: base de conocimiento utilizada por el sistema.
  • 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

Luego 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 utilizando 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