Introducción
En esta lección crearemos nuestra primera aplicación RAG (Retrieval-Augmented Generation) usando la interfaz estándar de ChatGPT con GPTs personalizados. Este proceso es extremadamente sencillo porque OpenAI nos proporciona:
- La base de datos vectorial
- Los modelos de embeddings
- Todo funciona automáticamente en segundo plano
No necesitas preocuparte por:
- Fragmentación de texto (chunking)
- Tecnologías específicas
- Configuraciones complejas
¿Por qué es crucial la preparación de datos?
Aunque trabajemos con GPTs, la preparación de datos sigue siendo fundamental. Muchas personas cometen el error de subir todo directamente a la base de datos vectorial, lo que resulta en:
- Aplicaciones RAG poco confiables
- Pérdida de información importante
- Respuestas irrelevantes
- Uso ineficiente de tokens (más costoso)
- Rendimiento deficiente
⚠️ Importante: Estos problemas también ocurren en GPTs, por lo que incluso si solo planeas usar la API más adelante, es esencial que veas esta lección.
Cómo usar bases de datos vectoriales eficientemente
1. No almacenes datos innecesarios
- Inserta solo información relevante
- Evita datos redundantes o sin importancia
- No subas la misma información múltiples veces
- El LLM necesita buscar entre muchos tokens, lo que aumenta costos y reduce calidad
2. Usa el formato correcto
Formatos recomendados:
- Preguntas y respuestas (Q&A)
- Markdown estructurado
¿Por qué estos formatos?
- Los pares pregunta-respuesta facilitan enormemente la búsqueda
- Permiten almacenar información compacta y directamente recuperable
- Convierte datos «malos» en markdown limpio
Ejemplo de «datos malos»:
- PDFs con tablas mal estructuradas
- Imágenes (los LLMs normales no pueden leerlas)
- Texto desordenado sin estructura
3. Resume textos largos
- Extrae puntos esenciales
- Usa herramientas como Llama Parse u otros LLMs para crear resúmenes
- Si el texto no es denso, extrae solo la información clave o palabras clave
- La base de datos vectorial agrupará la información y el LLM hará búsquedas por similitud
4. Usa fragmentos más cortos para mayor precisión
Estrategia recomendada:
- Fragmentos de ~500 tokens
- Top K alto (ej: 20)
- Resultado: Mayor tasa de aciertos y más precisión
Balance importante:
- Fragmentos muy pequeños → Pierdes contexto
- Fragmentos muy grandes → Mala calidad de recuperación + más costoso
5. Estrategias avanzadas de fragmentación
- Tamaño de fragmento apropiado
- Superposición correcta
- Text splitter adecuado
- Estrategias como «contextual retrieval»
📝 Nota: Por ahora ChatGPT maneja la fragmentación automáticamente, pero es importante entender estos conceptos para desarrollos futuros.
6. Usa la tecnología RAG apropiada
- Light RAG
- Graph RAG
- Standard RAG (usado por ChatGPT)
7. Testea tu bot
- Verifica que entregue las respuestas deseadas
- Ajusta fragmentación o estructura si es necesario
- Prueba con diferentes tipos de consultas
Ejemplo práctico: Creando un GPT sobre Prompting
Paso 1: Preparar los datos
Supongamos que tenemos un PDF sobre «Prompting para Grandes Modelos de Lenguaje». Este PDF contiene:
- Imágenes (que no funcionarán)
- Tablas mal estructuradas
- Información irrelevante (como referencias)
- Texto valioso mezclado con contenido innecesario
Paso 2: Convertir a Markdown
Opción 1: Convertidor PDF a Markdown
- Busca «PDF to Markdown» en Google
- Usa la primera herramienta que aparezca
- Sube tu PDF y obtendrás markdown inmediatamente
- Edita y limpia el contenido según sea necesario
Opción 2: Llama Parse (Recomendado)
- Ve a
cloud.llamaindex.ai
- Selecciona «Parse»
- Sube tu archivo
- Configura las opciones:
- Fast mode: 1 crédito por página
- 10,000 créditos gratis por mes
- Páginas a procesar (o todas)
- Configuraciones avanzadas si es necesario
Ventajas de Llama Parse:
- Mejor calidad que convertidores básicos
- Opciones avanzadas para tablas complejas
- Múltiples formatos de salida
- Procesamiento rápido y preciso
Paso 3: Limpiar el contenido
Una vez que tengas el markdown:
- Revisa todo el contenido
- Elimina información irrelevante:
- Referencias bibliográficas
- Información duplicada
- Datos sin valor para tu caso de uso
- Conserva información valiosa:
- Conceptos clave
- Ejemplos prácticos
- Técnicas específicas
Paso 4: Opcional – Crear resúmenes
Si el contenido es muy extenso, puedes:
- Usar ChatGPT para crear resúmenes
- Usar Claude (excelente para textos largos)
- Usar Google AI Studio (maneja muchos tokens)
💡 Consejo: La mayoría de las veces no necesitas resúmenes, solo asegúrate de tener información de calidad.
Creando el GPT personalizado
Paso 1: Configuración básica
- Ve a ChatGPT → «My GPTs» → «Create a GPT»
- Nombre: «Prompting GPT»
- Descripción: «Ayuda con prompts para LLMs»
Paso 2: Instrucciones del sistema (System Prompt)
Estructura recomendada para system prompts:
## Rol
Especifica qué rol debe asumir la IA
## Tarea
Describe las acciones concretas o preguntas que debe manejar
## Contexto
Proporciona información adicional para mejor rendimiento
## Objetivo
Define qué se quiere lograr
## Restricciones
Establece limitaciones si es necesario
## Estilo
Define el tono o modalidad de respuesta
## Formato de salida
Especifica cómo debe estructurar las respuestas
Ejemplo de system prompt:
**Rol**: Eres un asistente útil especializado en prompting para LLMs.
**Contexto**: Buscas en la base de datos vectorial información sobre ingeniería de prompts y proporcionas respuestas cortas y precisas.
**Restricciones**: Si alguien pregunta sobre temas no relacionados con LLMs, responde "No puedo ayudar con eso".
**Información adicional**: Si alguien pregunta dónde encontrar más información, proporciona este enlace: [tu-enlace-aquí]
Paso 3: Configuración adicional
Iniciadores de conversación:
- «¿Cuáles son tres conceptos básicos de prompting para LLMs?»
- «Explica el chain-of-thought prompting»
- «¿Cómo mejorar la precisión de mis prompts?»
Conocimiento:
- Sube tu archivo markdown preparado
- Puedes subir hasta 20 archivos
Capacidades adicionales:
- Búsqueda web (opcional)
- Generación de imágenes (opcional)
- Intérprete de código (opcional)
Configuraciones de privacidad:
- ⚠️ Importante: Si subes datos comerciales confidenciales, desmarca «Use conversation data to improve our models»
Paso 4: Compartir y probar
Opciones de compartir:
- Solo para ti: Datos comerciales privados
- Cualquiera con enlace: Para compartir públicamente
- GPT Store: Para distribución masiva
Probando tu GPT
Pruebas básicas
Usuario: "¿Cuáles son tres conceptos básicos de prompting para LLMs?"
GPT: "Zero-shot prompting, few-shot prompting y chain-of-thought prompting..."
Pruebas específicas del contenido
Usuario: "Explica el chain-of-draft prompting"
GPT: "Es una técnica de prompting diseñada para mejorar la eficiencia de razonamiento en LLMs..."
Pruebas de restricciones
Usuario: "¿Cómo uso Coca-Cola para lavar platos?"
GPT: "No puedo ayudar con eso."
Consejos importantes
✅ Mejores prácticas
- Usa markdown tanto en datos como en system prompts
- Prepara bien los datos antes de subirlos
- Prueba exhaustivamente tu GPT
- Define restricciones claras para evitar uso inadecuado
- Estructura bien tu system prompt
❌ Errores comunes
- Subir datos sin procesar
- No limpiar información irrelevante
- System prompts vagos o confusos
- No probar diferentes tipos de consultas
- Ignorar la preparación de datos
💰 Consideraciones de costo
- Necesitas ChatGPT Plus para crear GPTs
- OpenAI podría hacer esto gratuito en el futuro
- Datos mal preparados = mayor consumo de tokens = mayor costo
Próximos pasos
En la siguiente lección aprenderemos:
- Cómo crear GPTs entrenados con contenido HTML
- Técnicas para procesar páginas web
- Mejores prácticas para contenido web
Resumen
Has aprendido la forma más fácil de crear una aplicación RAG dentro de ChatGPT:
- Prepara tus datos (conviértelos a markdown)
- Limpia información irrelevante
- Crea un system prompt estructurado
- Configura tu GPT
- Prueba exhaustivamente
Recuerda: La preparación de datos es crucial incluso en herramientas simples como GPTs. Estos conceptos fundamentales te servirán cuando avances a desarrollos más complejos con APIs y herramientas open source.