Skip to content
··7 min de lectura

Cómo construí mi propio chatbot sin experiencia en programación: lecciones aprendidas

Construí un chatbot funcional partiendo de cero conocimiento de programación en 5 meses usando GPT API y ChatGPT 4 — así lo hice y qué aprendí como completo principiante.

Actualización (2026): ¡Este chatbot evolucionó hasta convertirse en Sydney! Tras muchas iteraciones, Sydney vive ahora en /ask/ y se enfoca en el contenido del blog y productos.


Desde que chatGPT fue lanzado el año pasado, me ha fascinado la IA generativa y quise explorar la construcción de mi propio chatbot usando la API disponible. Como principiante total sin ninguna experiencia en programación, era un objetivo ambicioso. Sin embargo, estaba decidido a desafiarme para adquirir experiencia práctica trabajando con sistemas de IA. Mi motivación era ir más allá del mero uso de estas herramientas y empezar a desarrollar una comprensión más profunda de cómo se construyen. Decidí aprovechar mi contenido existente creando un chatbot que pudiera responder preguntas sobre las publicaciones de mi blog. Construir este chatbot desde cero ha sido una experiencia de aprendizaje invaluable, aunque todavía le queda mucho camino por recorrer. En este post, compartiré algunas de las lecciones clave que he aprendido hasta ahora en este viaje como novato en programación.

¿Cuáles eran mis desafíos?

  • Para empezar, no sabía programar. No sabía mucho (si algo) de HTML (más allá del uso de <h1> o <h2>), y mucho menos de Python u otros lenguajes de programación.
  • Por supuesto, no sabía cómo desplegar una aplicación en la nube, nunca había oído hablar de Docker, Cloud Run, etc...
    • Ni siquiera podía migrar este sitio web de Bluehost a GCP porque no sabía nada de MySQL, instancias virtuales, etc...
  • No sabía qué era SSH, ni clave pública, ni clave privada, ni nada parecido T.T
  • Tampoco tenía formación en machine learning ni en matemáticas avanzadas.
  • Y no soy ningún jovencito :| Tengo 40 años y un trabajo a tiempo completo.

Pero después de unos 5 meses, aquí está la versión 0.1 del chatbot que construí, usando la GPT API de OpenAI y mucha ayuda de ChatGPT 4. No exagero cuando digo versión 0.1 porque todavía está muy (muy) lejos de lo que esperaba, pero bueno, "funciona" (más o menos). Lo que puede hacer:

  • Si le haces al chatbot una pregunta sobre temas anteriores que escribí, el chatbot puede sintetizar el contenido de múltiples artículos y darte una respuesta.
    • Este punto es importante para mí porque antes escribí sobre la implementación de soluciones listas para usar, pero el problema común es que esos chatbots no sintetizan el contenido entre publicaciones. El chatbot se "siente" más como una función de búsqueda que como un chatbot.
  • Está diseñado para responder preguntas solo sobre mis publicaciones de blog, así que si le preguntas sobre otros temas, probablemente diga que no.
  • Su base de conocimiento incluye todas las publicaciones que publiqué durante los últimos 17 años, hasta finales de septiembre de 2023. Eso son alrededor de 500 publicaciones.

Hay tantas cosas que el chatbot todavía NO puede hacer, como:

  • No puede recordar con precisión un número específico en una publicación que escribí.
  • No puede responder preguntas sobre fechas de publicación con precisión.
  • Estoy seguro de que tiene muchos problemas de seguridad T.T (cara triste, triste, triste)
  • y muchas más

Actualización feb 2024:

La versión 2.1 del chatbot está disponible y puedes ver el post al respecto "Chatbot v2.10 Unveiled: Elevating User Experience with Enhanced Speed, Scalability, and Simplicity."

Entonces, ¿qué he aprendido durante la primera fase de este viaje?

1. ChatGPT 4 puede cumplir la mayoría de las tareas de programación básicas/intermedias

si sabes qué estás buscando y eres específico con tus prompts y el contexto que compartes.

La clave aquí es saber qué pedirle a la máquina. Puede hacer "casi todas" las tareas de programación siempre que sean lo suficientemente específicas. Digo "casi todas" a propósito porque falla repetidamente en seguir algunos ejemplos dados.

El código que genera chatGPT 4 suele ser lo suficientemente modular como para reutilizarlo más adelante. La máquina también suele incluir comentarios específicos a lo largo del código.

2. Toma cursos/lecciones fundamentales de programación/informática

Si estuvieras en mi lugar, no sabrías qué preguntar porque no sabrías lo que no sabes. Algunas formas de superar esto:

  • Explícale a chatGPT el objetivo general del proyecto y pídele que te dé una descripción general de todos los pasos. Esto te dará una idea aproximada de las áreas en las que necesitarás aprender más.
  • Si simplemente sigues ciegamente lo que chatGPT te dice que hagas, puede que no tenga sentido. (Lo intenté :P)
  • Estos cursos fundamentales me han sido de gran ayuda. Me dan conocimiento amplio (aunque no profundo) para entender cómo se supone que encajan las diferentes piezas del rompecabezas.

3. Completa estos cursos GRATUITOS y breves sobre Building Systems with the ChatGPT API

Dos cursos sobre la API de chatGPT te ahorrarán mucho tiempo:

Aunque estos cursos son para principiantes, cuando los encontré por primera vez hace unos meses, no tenía suficiente conocimiento fundamental para seguir siquiera lo que se decía. Por eso dejé de verlos después de unos 10 minutos. Luego, después de intentar trabajar con la API de OpenAI y diferentes prompts durante un tiempo, me atasqué y entonces recordé estos cursos. Básicamente me dieron todas las respuestas que necesitaba para construir esta versión 0.1.

El curso de prompt engineering es especialmente útil porque me muestra cómo instruir a chatGPT para que produzca su respuesta de cierta manera. Por ejemplo, no habría pensado en este tipo de mensaje de sistema sin ver el curso:

Asegúrate de hacerle al usuario preguntas de seguimiento relevantes."

El formato de viñetas compatible con HTML y los saltos de línea ayudan a que sea mucho más fácil para los usuarios del chatbot cuando las respuestas son largas.

4. Lee la documentación oficial de OpenAI tú mismo

Soy perezoso (:D) así que inicialmente no me molesté en leer la documentación de OpenAI. Simplemente copié y pegué la documentación en chatGPT y luego le pedí que la usara como fuente de referencia y me guiara con código real. No funcionó muy bien y desperdicié bastante tiempo antes de decidir leer la documentación yo mismo y luego hacer pedidos más específicos a chatGPT.

5. ChatGPT se pierde fácilmente cuando la conversación es demasiado larga o cuando empiezas/paras después de unas horas

Supongo que no debería sorprenderme porque, al igual que los humanos, chatGPT se pierde fácilmente cuando la conversación se vuelve demasiado larga. ¿A qué me refiero?

  • Empieza a recomendar código que no tiene ningún sentido
  • O no puede recordar otro fragmento de código/consejo que me dio recientemente

Además, cuando dejas de trabajar con él durante unas horas (o de la noche a la mañana) y luego vuelves, incluso después de pedirle a chatGPT que lea todo el historial de conversación y confirme que lo ha hecho, al igual que con los humanos, tengo que proporcionarle mucho más contexto reciente y base de código de nuevo. De lo contrario, parece "olvidar" por completo muchos detalles que me había contado antes.

6. La API de GPT 4 es cara, así que intenta usar GPT 3.5 tanto como sea posible

Por ejemplo, desperdicié $20 usando la API de GPT 4 para una tarea de resumen que GPT 3.5 puede hacer bien. Además, asegúrate de probar el código en algunos archivos primero antes de "soltarlo" sobre cientos de archivos porque, bueno, el costo de la API de GPT puede acumularse rápidamente.

7. El OpenAI Cookbook es tu amigo

De nuevo, cometí el error de no molestarme (o más precisamente, no saber) en revisar el OpenAI sample cookbook de antemano. Allí puedes encontrar:

8. La longitud de la ventana de contexto es difícil de manejar para principiantes

Los distintos modelos GPT tienen diferentes límites máximos de tokens y modificar el código para asegurarse de mantenerse dentro del límite de tokens no es fácil para los novatos (como yo). Tuve que dedicar tanto tiempo a esta parte porque tengo muchas publicaciones de blog que son muy, muy largas.

Además, para el chatbot quiero que sintetice el contenido de múltiples publicaciones antes de dar una respuesta, así que me topé con el límite de tokens con frecuencia.

9. Control de versiones, control de versiones y control de versiones

Esto probablemente es súper intuitivo para los expertos, pero para novatos en programación como yo, tuve que aprenderlo de la manera difícil. Y también tuve que aprender la frecuencia de commits de git correcta que funciona para este proyecto, dado que soy el único colaborador/programador.

Conclusión

En resumen, este viaje de construcción de chatbot como principiante me ha enseñado la importancia de aprender los fundamentos, aprovechar ChatGPT para tareas específicas, estudiar la documentación de la API y usar el control de versiones. Si bien todavía hay un margen significativo de mejora, ahora tengo un prototipo básico que puede sintetizar información de mis publicaciones de blog para responder preguntas. De cara al futuro, mis prioridades son ampliar la base de conocimiento del chatbot para cubrir nuevo contenido, mejorar su capacidad para recuperar detalles precisos de las publicaciones y optimizar sus respuestas para mantenerse dentro de los límites de tokens. También planeo seguir mejorando mis habilidades en áreas como el prompt engineering y el despliegue en la nube.

Eso es todo de mi parte. Seguiré actualizando sobre las lecciones aprendidas y compartiré cuando la nueva versión esté disponible.

¿Has intentado construir algo con la API de OpenAI sin ser desarrollador? Me encantaría saber qué te resultó más difícil — en mi caso fueron definitivamente los límites de la ventana de contexto y el control de versiones :P

Una semana después

Después de un sprint de 1 semana, completé actualizaciones adicionales al chatbot. Para leer más al respecto, ve aquí "Evolving My Chatbot: A One-Week Sprint to Smarter Interactions."

Un abrazo, Chandler

Seguir leyendo

Mi Trayectoria
Conectar
Idioma
Preferencias