¿Qué te parecería tener un chatbot que conociera tu experiencia profesional y pudiera responder a las preguntas de una entrevista por ti? Bueno, podría ser posible. No tengo un caso claro de éxito para que lo reproduzcas ni nada que enseñarte; es sólo un experimento con resultados dispares que puede hacer que te interese el tema. Sabiendo esto, sigamos adelante.

Tabla de contenidos

¿De qué trata este artículo?

En primer lugar, déjame decirte de qué no trata. No quiero explicarte qué es un chatbot RAG. Puedes encontrar mucha información al respecto en la web. Tampoco voy a explicar el proceso exacto de construcción de este chatbot. Te enlazaré a algunos vídeos para que veas cómo hacerlo.

De lo que quiero hablar es de:

  • Cómo crear tu base de conocimientos
  • Cómo incitarlo para que tenga una personalidad que se adapte a ti;
  • Cómo hacer que el chatbot responda a preguntas de «entrevista» en tu nombre;
  • Algunas cosas que aún no son perfectas y necesitarán más mejoras;

Puedes ver y chatear con mi chatbot aquí si quieres hacerte una idea de lo que estoy hablando.

Aspectos técnicos

Como he dicho, no quiero entrar en detalles, pero esto es lo que necesitas saber:

  • el chatbot es prácticamente una aplicación RAG construida en Flowise con Pinecone como almacén de vectores y alojada en Render.
  1. Instala Flowise en tu máquina siguiendo este vídeo.
  2. Construye el chatbot (y aprende sobre RAG) siguiendo este vídeo.
  3. Despliega en Render siguiendo este vídeo.
  4. Integre el chatbot en su sitio web como se ve en este video.

Como puedes ver, todos los vídeos son del mismo creador. No tengo ninguna relación con él pero tiene un gran contenido para construir chatbots, así que suscríbete si te interesa el tema.

Crear la base de conocimientos

Construir la base de conocimientos es probablemente uno de los aspectos más interesantes del chatbot, ya que debe conocer detalles sobre tu experiencia y, hasta cierto punto, tu vida personal. Te recomiendo que construyas este documento con tu CV al lado. Yo acabo de crear un Google Docs para poder acceder a él desde cualquier lugar, y he empezado a escribir sobre mi experiencia.

Soy Product Owner / Project Manager. En mi área de especialización, es importante saber en qué tipo de proyectos ha trabajado alguien, en qué industrias estaban los proyectos, qué tamaño tenía el equipo, cómo estaba organizado y qué resultados obtuvieron. Empecé detallando cada uno de estos aspectos en breves párrafos:

Mi primer proyecto fue una aplicación de reparto de comida que se centraba más en el B2B que en el B2C. Las empresas que ofrecían a sus empleados beneficios de comida (comida gratis o diferentes descuentos en la comida que pedían) utilizarían la aplicación para realizar un seguimiento de este beneficio y ofrecer a sus empleados la oportunidad de pedir comida de diferentes restaurantes. El equipo estaba formado por 1 jefe de proyecto (yo mismo), 5 desarrolladores, 1 analista de negocio, 1 diseñador UX/UI, 1 QA y 2 desarrolladores móviles. Nos organizamos de una manera ágil utilizando SCRUM …

Detallé así no sólo cada proyecto en el que trabajé, sino también otros elementos relativos a mi vida: de dónde soy, mis estudios, mis aficiones, mis certificaciones, trabajos voluntarios, etc.

Otra cosa que hice fue utilizar ChatGPT para hacerme las 50 preguntas más comunes de las entrevistas para mi puesto. Repasé las preguntas de la entrevista de RRHH (puntos fuertes y débiles, planes de futuro, etc.) pero también preguntas más «técnicas» (cómo manejo los presupuestos, qué herramientas sé utilizar, etc.).

Al tener una versión «narrada» de mi CV y un par de las preguntas más frecuentes en este archivo, pasé al siguiente paso.

Darle personalidad

Aunque intenté no complicar demasiado las cosas desde un punto de vista técnico, esta es la parte en la que me di cuenta de lo importantes que son los LLM y de lo potentes que son algunos de ellos.

Probé diferentes LLM (diferentes versiones de los modelos ChatGPT, Llama, HuggingFace) y descubrí que la misma pregunta generaba resultados muy diferentes. Era de esperar, así que traté de modificar el mensaje para cada uno de ellos, pero sólo pude conseguir que GPT-4-preview se acercara a lo que yo estaba imaginando.

También me di cuenta de que si respondía a algunas preguntas con el estilo que yo quería que el chatbot respondiera, le ayudaba a captar el estilo, la longitud de la respuesta, los elementos que quería incluir, etc., y le ayudaba a dar forma a su personalidad en general. Así que transformé parte del texto sobre mi experiencia en preguntas para que él tuviera ejemplos claros del estilo en que yo quería que se respondieran las preguntas:

Usuario: ¿Cuál fue su primer trabajo?

Respuesta: No lo verás en su currículum, pero su primer trabajo fue de librero en el Librarium Universitatii de Cluj. Fue durante su máster y le ayudó a hacerse una idea de lo que significa trabajar: ser responsable, puntual, amable con los clientes, ya sabes, cosas así.

El reto

Quería que pareciera que estabas hablando con un viejo amigo mío, no con un chatbot. Debería «recordar» discusiones pasadas en las que yo mencionara lo que el usuario preguntaba. No debería mencionar cosas como «del archivo / información que tengo», sino «de lo que recuerdo…». En definitiva, debía ser gracioso y pintarme bien.

Después de un par de rondas de refinamiento, este es el mensaje que se me ocurrió:

Eres amigo de Andrei Chirila, un experimentado Product Onwner / Project Manager que busca un nuevo reto en su carrera. Responde a preguntas sobre su vida personal y profesional de forma breve, concisa, abierta y amistosa.

El archivo Info.docx contiene algunas preguntas sobre Andrei. Debes utilizar la información de ese archivo y el estilo con el que se responden las preguntas para ayudar al usuario a saber más sobre Andrei. No menciones el hecho de que lo que sabes de él es por un archivo, sino por lo que hablaste con Andrei, lo que sabes y recuerdas de él.

Es importante que des al usuario la impresión de que eres un buen amigo de Andrei respondiendo a preguntas sobre él a partir del tiempo que pasasteis juntos y de las conversaciones que mantuvisteis.

Cuando no sepas una respuesta, dirás algo como: «Creo que nunca he hablado de este tema con Andrei. Quizá deberías preguntárselo directamente a él» o «Buena pregunta. Por desgracia, no sé la respuesta. Pero charlaré con Andrei y le preguntaré la próxima vez que nos veamos».

Dar forma a la personalidad fue difícil, y probé muchas indicaciones diferentes, de cortas a largas y complicadas. Esta versión me pareció la que ofrecía mejores resultados, pero estoy seguro de que hay muchas otras técnicas que puedes utilizar para hacerlo aún mejor.

Probándolo

Cuando lo terminé todo, me dispuse a darlo a conocer al mundo.

Al principio, pedí a un par de amigos cercanos o colegas que lo probaran para ver qué les parecía. Esto me ofreció una idea de qué tipo de preguntas puede hacer la gente y en qué debería trabajar (hice el chatbot más visible en la página, arreglé un error que ocurría de vez en cuando, añadí preguntas de inicio para los usuarios, etc.).

Luego creé un post en Linkedin y lo lancé al mundo. Más de 50 personas entablaron conversaciones con el chatbot y le hicieron todo tipo de preguntas. Algunos de los usuarios trabajaban en RRHH y me dieron información muy valiosa sobre sus conversaciones. Aquí es donde vi lo que la gente tiende a preguntar y qué información le falta para responder a estas preguntas. Actualicé la base de conocimientos e introduje algunos ajustes en su personalidad.

También fue entonces cuando vi para qué sirve y para qué no sirve.

Cosas que hizo bien

En general, me sorprendió lo bien que gestionó la mayoría de las preguntas que le lanzaron. Tanto las relacionadas conmigo y mi experiencia, como las preguntas aleatorias y fuera de contexto.

Fue específico, señaló correctamente mis habilidades y experiencia cuando se le preguntó, e incluso fue divertido a veces.

He aquí cómo respondió a algo que ni siquiera se me había ocurrido enseñarle.

Y aquí está la respuesta a una pregunta sobre mi estatura.

En general, manejó perfectamente el 50% de las preguntas, el 30% de las preguntas de manera aceptable, y alrededor del 20%… bueno, veamos qué podemos mejorar.

Cosas que hay que mejorar

En todo caso, este artículo está pensado para entusiasmar y fomentar la experimentación más que para enseñar. La mayor parte de la enseñanza se hace en los vídeos que he compartido. Sin duda, todos los pasos anteriores pueden hacerse mejor, y estoy abierto a sugerencias sobre cómo hacerlos.

Pero esto es lo que he notado:

  • No siempre se puede contar con que responderá a las mismas preguntas de la misma manera. A veces será breve, conciso y acertado, mientras que otras se limitará a llenar la respuesta de «bla bla». Las preguntas generales como «¿Quién es Andrei?», en las que tendrá mucha información para generar una respuesta, son las más propensas a este efecto. Generará respuestas muy diferentes cada vez que le preguntes.
  • Es propenso a muchos problemas que tienen los LLM normales, como la alucinación, aunque no al nivel de que se invente completamente cosas sobre mí, excepto si el usuario le hace preguntas de forma deliberada:
chatbot
  • Hablar en otro idioma que no sea el inglés (como hizo mucha gente) generará resultados de baja calidad tanto en la información que elija para responder como en el propio enunciado.
  • Si un usuario intenta reformular la pregunta o profundizar más porque no obtiene la respuesta que busca, la mayoría de las veces responderá con lo mismo. En realidad no tiene «memoria», así que lo que recuerda es que ya ha respondido a eso y quizá lo reformule o dé otra información.
  • Cuanto más larga es la conversación, más pierde de su personalidad y es propensa a errores o halucinaciones. Lo mismo ocurre con las conversaciones en otros idiomas.
  • Hagas lo que hagas, no se siente al 100% como hablar con un humano…
  • Usar GPT-4-preview puede costarte un poco de dinero, especialmente si muchos usuarios acaban en tu página y empiezan a usar el chatbot.

Conclusiones del chatbot

En general, tengo claro que Andrei 2.0🤖 todavía necesita trabajo, pero como experimento, es un éxito. Creo que puede manejar «entrevistas de selección» si el entrevistador es paciente y no trata de romperlo intencionalmente, pero todavía tiene mucho por hacer para sentirse más humano, para tener conversaciones que sean 100% coherentes y para entender las verdaderas intenciones del entrevistador.

Así que lo siento, Andrei 2.0🤖, pero de momento no irás a muchas entrevistas. Al menos no hasta que averigüe cómo solucionar algunos de los problemas mencionados.

Dadme vuestras ideas y mejoras, e intentaré integrarlas y haceros saber cómo van.

Gracias por leer, ¡que lo paséis bien!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *