Proyecto Crea bot Conversacional con IA Generativa
Objetivos: Al finalizar el curso, el estudiante será capaz de:
Comprender los principios teóricos que sustentan la conversación humana y su
modelado mediante sistemas artificiales.
Implementar bots conversacionales básicos mediante reglas y estructuras de datos
simples.
Aplicar técnicas de NLP sencillas para la detección de intenciones y extracción de
entidades.
Desarrollar bots avanzados que integren modelos generativos de lenguaje (LLMs).
Construir sistemas conversacionales con memoria, recuperación semántica y bases de
conocimiento propias.
Analizar las implicaciones éticas y técnicas de los sistemas conversacionales avanzados.
Se hace uso intensivo de código en Python, bibliotecas de NLP, herramientas de desarrollo y
frameworks especializados (como Gradio, Streamlit o LangChain), lo que proporciona una experiencia
formativa aplicada y contemporánea.
Indice de contenidos
El curso se divide en cuatro módulos principales:
Módulo 1. Fundamentos y contexto.
Unidad 1.1: ¿Qué es un bot conversacional? Historia, tecnologías y dilemas éticos
Unidad 1.2: Introducción al Procesamiento de Lenguaje Natural (NLP) y la búsqueda
semántica
Unidad 1.3: Preparación del entorno de desarrollo
Módulo 2. Construcción de un bot desde cero.
¿Qué Aprenderemos y Construiremos en Este Módulo 2?
En este módulo construiremos un bot que:
Detecta intenciones mediante palabras clave (saludar, despedirse, pedir ayuda, etc.).
Extrae entidades como nombres o temas mediante expresiones regulares.
Guarda parte de la información del usuario para personalizar las respuestas.
Da un paso más hacia bots conversacionales que pueden adaptarse al lenguaje humano de forma más flexible.
Objetivo Final del Módulo 2
Al finalizar este módulo, habrás creado un bot capaz de reconocer intenciones, extraer información
clave de la conversación y generar respuestas más personalizadas. Será tu primer bot con capacidad
real de comprensión básica, ¡y una base sólida para avanzar hacia bots más inteligentes en los
siguientes módulos!
Unidad 2.1: Bot basado en reglas simples
Objetivos de la unidad 2.1: Comprender la lógica de implementación de un bot basado en
reglas.
Crear bucles conversacionales interactivos.
Uso de estructuras básicas de Python para almacenar reglas.
Manejar la entrada del usuario.
Actividad 2.1:
Construiremos un bot basado en reglas simples, con normalización del texto de
entrada.
Aprenderemos a trabajar con diccionarios y condicionales en Python.
Unidad 2.2: Detección de intenciones con expresiones clave
Objetivos de la unidad 2.2: Comprender la detección de intenciones y entidades mediante
técnicas sencillas.
Detección poco sofisticada de intenciones.
Estructuras de datos para el almacenamiento y detección/gestion sencilla de intenciones.
No se incluye extracción de entidades.
Actividad 2.2:
◦ Introduciremos la detección de intenciones usando listas de palabras clave.
◦ Diseñaremos un sistema básico que reconoce lo que el usuario quiere, incluso si no dice
la frase exacta.
Unidad 2.3: Extracción básica de entidades mediante Regex.
Objetivo de la unidad 2.3: Aprender a extraer información clave (como
nombres) de textos usando expresiones regulares (regex) y usarla para
personalizar las respuestas de un bot.
Actividad 2.3:
Aprenderemos qué son las entidades y cómo extraerlas usando regex.
Personalizaremos las respuestas del bot con la información detectada (como el nombre
del usuario).
Unidad 2.4: Primer bot con LLM usando LangChain.
Objetivo: Integrar un LLM (Large Language Model) como Google Gemini
mediante LangChain para construir un bot conversacional inteligente,
culminando todo lo aprendido en una primera experiencia práctica con IA
generativa.
Actividad 2.4:
Integraremos todo lo aprendido en un bot que interactúa directamente con un LLM
(Google Gemini, para lo que tendrás que darte de alta en Google AI Studio de forma
gratuita) usando LangChain.
Será nuestra primera experiencia real con modelos generativos en el curso.
Módulo 3. Añadiendo capacidades de generación aumentada por
recuperación (RAG, Retrieval-Augmented Generation)
Objetivo General
Desarrollar un bot conversacional basado en la técnica RAG (Retrieval-Augmented Generation),
capaz de extraer información desde documentos reales y generar respuestas fundamentadas con
modelos de lenguaje avanzados, comprendiendo los principios, procesos y herramientas necesarias para
su construcción.
Objetivos Específicos
• Comprender la necesidad de RAG en los LLMs para evitar respuestas inventadas, explicando
sus fases: recuperación, aumentación y generación.
• Analizar y comparar sistemas de recuperación de información, incluyendo búsquedas por
palabras clave, estructuradas y semánticas, destacando la importancia de las bases vectoriales y
embeddings.
• Aplicar técnicas de extracción y segmentación de texto en PDFs, utilizando librerías de
Python como pypdf, parametrizando y automatizando procesos para múltiples archivos.
• Diseñar e implementar una base de conocimiento vectorial con FAISS, integrando
embeddings, metadatos y mecanismos de actualización mediante control de versiones y
serialización.
• Integrar recuperación semántica y generación de respuestas fundamentadas mediante el
uso de LangChain y modelos de lenguaje avanzados como Gemini o GPT.
• Analizar, modificar y ejecutar scripts en Python para afianzar conocimientos en lógica
estructural (condicionales, bucles, manejo de errores) y en técnicas avanzadas (indexación,
búsqueda semántica, ejecución paralela).
• Construir un bot RAG conversacional funcional que sea capaz de consultar información en
documentos PDF reales y responder con precisión, consolidando el dominio práctico de los
fundamentos de los sistemas RAG.
¿Cómo Está Estructurado el Módulo?
Como en los módulos anteriores, combinaremos vídeos teóricos con actividades prácticas. Cada unidad
incluye un vídeo explicativo y un script en Python para que experimentes directamente con el código.
Importante: Analizar las Actividades a fondo
La comprensión profunda del código Python proporcionado es clave para alcanzar los objetivos de
este módulo. Cada actividad incluye lógica estructural (condicionales, bucles, validación, manejo de
errores) y conceptos técnicos avanzados (uso de embeddings, indexación, búsqueda semántica,
ejecución paralela, flujos de LangChain, etc.).
Al igual que ocurre en el módulo 2, el análisis detallado de las actividades es indispensable para
obtener los resultados de aprendizaje requeridos.
Objetivos por Unidad — Módulo 3 (RAG)
A continuación están los objetivos de aprendizaje para cada unidad, formulados exclusivamente a
partir del material que me pasaste. Están redactados con verbos medibles para facilitar su evaluación y
aplicación práctica.
Unidad 3.1 — Introducción a RAG
1. Explicar qué es la técnica RAG (Retrieval-Augmented Generation) y por qué reduce las
respuestas inventadas ("hallucinations") en los LLM.
2. Identificar y describir las tres fases del flujo RAG: recuperación, aumentación y generación.
3. Diferenciar situaciones en las que un LLM puro es insuficiente frente a un enfoque RAG,
justificando la necesidad de recuperación documental.
4. Ejemplificar con al menos dos casos de uso cómo la recuperación previa mejora la precisión y
trazabilidad de las respuestas.
Unidad 3.2 — Sistemas de Recuperación y Embeddings
1. Comparar los distintos tipos de sistemas de recuperación (por palabras clave, estructurados y
semánticos), indicando ventajas y limitaciones de cada uno.
2. Explicar qué son los embeddings y por qué una base vectorial es fundamental para la
recuperación semántica en bots RAG.
3. Seleccionar criterios (relevancia, latencia, costo) para elegir un sistema de recuperación
adecuado según el caso de uso.
4. Analizar cómo la calidad de los embeddings impacta la precisión de la búsqueda semántica.
Unidad 3.3 + Actividad 3.1 — Extracción y Segmentación de
PDFs
1. Extraer texto desde documentos PDF reales utilizando librerías nativas de Python (por
ejemplo, pypdf).
2. Diseñar y aplicar estrategias de partición de texto (chunks) óptimas para recuperación: tamaño,
solapamiento y criterios semánticos vs. posicionales.
3. Parametrizar el proceso de extracción y particionado (p. ej. tamaño de chunk, tipo de
solapamiento) para permitir experimentación.
4. Automatizar el tratamiento de múltiples archivos PDF mediante scripts que manejen errores
comunes (codificación, páginas vacías, metadatos).
5. Generar un conjunto de fragmentos (chunks) listos para indexación, incluyendo metadatos
mínimos (origen, página, posición).
Unidad 3.4 + Actividad 3.2 — Construcción y Mantenimiento de
la Base Vectorial (FAISS)
1. Implementar la construcción de un índice vectorial con FAISS a partir de embeddings
asociados a los fragmentos de texto.
2. Integrar metadatos con cada vector para permitir trazabilidad y recuperación contextual
(origen, página, timestamp, versión).
3. Desarrollar un mecanismo que detecte cambios en los documentos (nuevas versiones) y
actualice el índice automáticamente.
4. Serializar y almacenar el índice y su estado (checkpointing), documentando el proceso de
carga/recuperación del índice desde disco.
5. Verificar la consistencia del índice tras actualizaciones y establecer pruebas básicas de calidad
de recuperación (p. ej. pruebas de búsqueda de control).
Unidad 3.5 + Actividad 3.3 — Integración: Bot RAG
Conversacional
1. Orquestar el flujo completo de RAG usando LangChain (recuperación → contexto →
generación), conectando la base vectorial con el LLM seleccionado.
2. Configurar plantillas de prompts y estrategias para garantizar que el modelo genere
únicamente a partir de la información recuperada (minimizar invención).
3. Implementar el bot conversacional funcional que reciba consultas, recupere fragmentos
relevantes y devuelva respuestas fundamentadas.
4. Aplicar prácticas de control (manejo de errores, timeouts, fallback) y reflexión sobre la cadena
construida con LCEL.
5. Evaluar la calidad y precisión del bot mediante pruebas conversacionales con casos reales,
registrando métricas cualitativas y ejemplos de fallo para iterar el diseño.
• Módulo 4. Ampliando horizontes: interfaces, agentes y gestión avanzada.
• Unidad 4.1: Integración de interfaces conversacionales con Gradio y Streamlit
• Unidad 4.2: ¿Qué es un agente inteligente? Diferencias y convergencias con los bots
• Unidad 4.3: Gestión avanzada del diálogo: NLU, control conversacional y frameworks de
despliegue