File size: 2,454 Bytes
7a6c314
 
 
 
 
 
 
 
 
 
 
f7888fc
 
7a6c314
 
 
f7888fc
7a6c314
 
 
f7888fc
7a6c314
f7888fc
7a6c314
 
 
 
 
 
 
 
 
 
 
f7888fc
7a6c314
f7888fc
7a6c314
 
 
 
 
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
 
 
 
 
 
7a6c314
f7888fc
 
 
7a6c314
f7888fc
7a6c314
f7888fc
 
 
7a6c314
f7888fc
 
 
7a6c314
f7888fc
7a6c314
 
 
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
 
 
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
 
 
7a6c314
f7888fc
 
 
 
 
 
 
 
 
 
 
 
 
 
7a6c314
 
 
 
f7888fc
7a6c314
f7888fc
7a6c314
f7888fc
7a6c314
 
 
 
 
 
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
117
118
119
120
121
122
123
124
125
126
127
128
129
---
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