Curso de Inteligencia Artificial para Servicio al Cliente

Toma las primeras clases gratis

⏱ Tiempo estimado: 24 minutos

🎯 Rama / Perfil: Desarrolladores / personas que quieren crear asistentes basados en documentación propia

🧠 Conocimiento previo necesario: Conceptos básicos de IA generativa y Python. El tutorial anterior ayuda, pero puedes realizar este de forma independiente.

💡 ¿Qué vas a lograr? Construirás un mini sistema RAG capaz de buscar información relevante en documentos y entregársela al modelo antes de responder.

Idea clave: RAG significa Retrieval-Augmented Generation. En lugar de esperar que el modelo conozca tus documentos, construyes un mecanismo de búsqueda que recupera información relevante y se la proporciona al modelo.Los embeddings convierten texto en vectores numéricos donde textos semánticamente relacionados quedan próximos entre sí. Esto permite utilizarlos para búsqueda, clasificación y recomendaciones.

🛠 Lo que necesitas antes de empezar

Por ejemplo:

politicas.txt

con:

DEVOLUCIONES

Los clientes pueden solicitar una devolución
dentro de los primeros 30 días.

El producto debe estar sin señales de uso.

El reembolso se realiza después de verificar
el estado del producto.

📋 Pasos

Paso 1 — Entiende el flujo que vas a construir

No vamos a enviar todo el documento al modelo.

Construiremos:

                 ┌── Documento
                 │
                 ▼
              Fragmentos
                 │
                 ▼
             Embeddings
                 │
                 ▼
            Base vectorial
                 │
                 │
Pregunta ────────┘
   │
   ▼
Búsqueda semántica
   │
   ▼
Fragmentos relevantes
   │
   ▼
OpenAI
   │
   ▼
Respuesta

Esto es un RAG básico.

La diferencia respecto al tutorial anterior es importante:

Tutorial 1:

Aplicación → consulta datos → IA

Tutorial 2:

Aplicación → busca conocimiento relevante → IA

Paso 2 — Instala las herramientas

Crea un nuevo entorno:

mkdir soporte-rag
cd soporte-rag

python -m venv .venv
source .venv/bin/activate

Instala:

pip install openai chromadb python-dotenv

Chroma está diseñado precisamente para almacenar y consultar información utilizando embeddings.

Crea:

soporte-rag/
├── .venv/
├── .env
├── documentos/
│   └── politicas.txt
└── main.py

Paso 3 — Divide el documento en fragmentos

No guardes todo el documento como una única pieza.

Por ejemplo:

Fragmento 1
-----------
Los clientes pueden solicitar una devolución
dentro de los primeros 30 días.


Fragmento 2
-----------
El producto debe estar sin señales de uso.


Fragmento 3
-----------
El reembolso se realiza después de verificar
el estado del producto.

¿Por qué?

Porque si el usuario pregunta:

"¿Cuántos días tengo para devolver un producto?"

solo necesitas recuperar el fragmento relacionado.

Este concepto se conoce como chunking.

En sistemas RAG reales, elegir bien el tamaño de los fragmentos es una decisión importante porque afecta directamente qué información se recupera.

Paso 4 — Convierte los fragmentos en embeddings

Ahora utiliza:

text-embedding-3-small

para convertir cada fragmento en un vector.

Conceptualmente:

"Los clientes pueden solicitar..."
                 ↓
          embedding
                 ↓
[0.012, -0.084, 0.221, ...]

Haz lo mismo con cada fragmento.

OpenAI documenta text-embedding-3-small y text-embedding-3-large como modelos actuales de embeddings, utilizados para convertir texto en vectores y habilitar búsquedas semánticas.

Paso 5 — Guarda los embeddings en Chroma

Crea una colección:

politicas_soporte

y almacena:

ID
Texto
Embedding
Metadata

Por ejemplo:

ID: politica_001

Texto:
Los clientes pueden solicitar una devolución
dentro de los primeros 30 días.

Metadata:
tipo = devolucion

La metadata parece un detalle pequeño, pero posteriormente permite hacer búsquedas más controladas.

Por ejemplo:

tipo = devolucion

o:

tipo = garantia

Paso 6 — Haz una búsqueda semántica

Ahora llega la pregunta:

¿Cuántos días tengo para devolver mi producto?

Primero conviertes la pregunta en un embedding.

Después Chroma busca los vectores más cercanos.

Resultado:

1. "Los clientes pueden solicitar una devolución
   dentro de los primeros 30 días."

2. "El producto debe estar sin señales de uso."

La búsqueda no depende necesariamente de encontrar exactamente las mismas palabras.

Por ejemplo:

Pregunta:
"¿Cuánto tiempo tengo para regresar algo?"

Documento:
"Los clientes pueden solicitar una devolución
dentro de los primeros 30 días."

Aunque las palabras sean diferentes, el significado es similar.

Eso es precisamente lo que aporta el embedding.

Paso 7 — Entrégale únicamente el contexto recuperado a OpenAI

Finalmente construye:

CONTEXTO:

Los clientes pueden solicitar una devolución
dentro de los primeros 30 días.

PREGUNTA:

¿Cuánto tiempo tengo para regresar algo?

Y establece una regla clara:

Responde utilizando únicamente el contexto proporcionado.

Si la información necesaria no está en el contexto,
indica que no tienes información suficiente.

El flujo final será:

Pregunta
   ↓
Embedding de pregunta
   ↓
Chroma
   ↓
Top resultados
   ↓
Contexto
   ↓
OpenAI
   ↓
Respuesta

Prueba:

¿Cuánto tiempo tengo para devolver un producto?

Deberías obtener algo equivalente a:

"Tienes 30 días para solicitar una devolución."

Ahora prueba:

¿Puedo devolverlo después de 6 meses?

El sistema debería evitar inventar una política porque ese dato no está en los documentos.

✅ Resultado esperado

Tendrás un pequeño sistema RAG funcional:

documentos/
      ↓
fragmentación
      ↓
embeddings
      ↓
ChromaDB
      ↓
búsqueda semántica
      ↓
contexto relevante
      ↓
OpenAI
      ↓
respuesta

Ya no tienes simplemente un chatbot.

Tienes el núcleo de un sistema de preguntas y respuestas sobre una base de conocimiento propia.

🔥 Tu reto

Cambia politicas.txt por documentación real de uno de tus proyectos.

Por ejemplo:

docs/
├── instalacion.md
├── api.md
├── configuracion.md
├── preguntas_frecuentes.md
└── politicas.md

Después intenta que el sistema responda preguntas como:

¿Cómo instalo el proyecto?

¿Qué pasa si pierdo mi API key?

¿Qué endpoints existen?

¿Cómo configuro PostgreSQL?

El siguiente salto sería convertir esto en:

                ┌── Documentación
                ├── Base de datos
Usuario ──► API ├── APIs externas
                └── Herramientas
                     │
                     ▼
                    IA

Ahí empiezas a acercarte a un asistente de IA realmente integrado con una aplicación, no solamente a un chatbot.

📚 Recursos para ir más lejos

  • OpenAI — Embeddings — Documentación oficial sobre embeddings y búsqueda semántica.
  • Chroma — Base de datos/vector store orientada a aplicaciones de IA.
  • FastAPI — Para convertir el RAG en una API consumible por un frontend u otras aplicaciones.

Curso de Inteligencia Artificial para Servicio al Cliente

Toma las primeras clases gratis

0 Comentarios

para escribir tu comentario

Artículos relacionados