File size: 2,713 Bytes
f7888fc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# 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:

``` 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
```

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:

``` 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