Crear un bot que trabaje con tus documentos

Muy buenos días y Bienvenidos a inteligencia artificial, el podcast donde hablamos del presente y el futuro de la inteligencia artificial, analizamos casos donde ya se están usando estas tecnologías y vemos cómo podemos aplicarlo en el día a día de nuestros trabajos, proyectos y empresas.

Yo soy Pocho Costa, ingeniero en sistemas, programador y amante de la tecnología, y me podes encontrar en pochocosta.com donde ahí también vas a encontrar las notas del programa y otros medios para ponerte en contacto conmigo.

EMPEZAMOS!

Buenas buenas! ¿cómo andan? bueno, espero que todo muy bien!

Hoy les traigo un tema muy interesante y que me han preguntado mucho y es como hacer un bot al que pueda darle información de mi empresa por ejemplo, y que pueda responder preguntas en base a la información que le dimos. 

Crear tu propio ChatGPT

Imaginemos que le damos muchas carpetas llenas de documentos pdf y queremos que se lea todo eso y después poder usar ese bot para que responda a los clientes por ejemplo, o a los empleados, a nosotros mismo, a quien sea digamos, hay muchos posibles casos de uso para esta aplicación. Muy muy interesante la verdad.

Así que hoy vamos a ver cómo se pueden hacer estas aplicaciones, un poco de como trabajan por dentro, porque los modelos de lenguaje como GPT tienen problemas con la memoria. 

Por lo general ahora estamos acostumbrados a interactuar con ChatGPT que tiene implementado una estrategia de manejo de memoria, pero es limitada, y cuando tenemos una conversación muy larga es probable que en determinado momento se empiece a olvidar de las cosas que hablamos al principio así que también vamos a ver qué estrategias se pueden usar para resolver este problema, vamos a ver también qué framework de trabajo podemos usar y también como se puede relacionar todo esto con el concepto de AutoGPT que vimos hace unos episodios. Así que nada, espero que les guste. A mi todo esto me parece super interesante.


Pero antes de empezar les quiero contar que Adrían Hontoria Sánchez, un oyente del podcast y también autor de la novela “Máquinas y Memorias: el amanecer de la IA” nos facilitó un ejemplar en formato ebook para que podamos sortear entre los oyentes, buenísimo porque al ser ebook no vamos a tener problemas para que llegue a ningún país, así que muchas gracias Adrián por este gran gesto! 

un crack adrían!

Bueno, les cuento como vamos a hacer la dinámica para participar que es super fácil, lo hacen en menos de un minuto. Los requisitos para participar son, estar suscritos a mi canal de Youtube y dejar un comentario en el video de este episodio que se llama “Crear un bot que trabaje con tus documentos” le dan like y dejan un comentario. Pueden poner lo que quieran, pero ya que estamos les dejo como idea que aprovechen para decir de que les gustaría que hable en los próximos episodios.

Les dejo el link en las notas del programa o también en pochocosta.com/youtube se suscriben al canal y dejan el comentario y ya están participando. Tienen tiempo hasta el Lunes 2 de Octubre a las 12 del mediodía que es cuando voy a hacer el sorteo y voy a compartir en Instagram el resultado para que sepan quien se lo ganó.

Esto va a ser todo transparente, usando una aplicación de sorteos así que espero que participen porque el libro está buenísimo y habla mucho del futuro y de la interacción de los humanos con la inteligencia artificial. Y que obviamente lo pueden comprar en formato físico o en ebook. Les dejo link al sitio también en las notas del programa.

Así que bueno, cerrado este asunto del sorteo vayamos al tema que veníamos hablando antes.

LLMs y el problema de la memoria

Como les decía, uno de los problemas de los grandes modelos de lenguaje es que no tienen memoria. GPT por ejemplo no tiene memoria y si queremos usar GPT para hacer nuestro propio Chatbot vamos a tener que implementar alguna estrategia porque de por si no va a recordar lo que le dijimos en el mensaje anterior.

Así que veamos 4 formas de darle memoria a nuestros Chatbots

4 estrategias para darle memoria a nuestro Chatbot

La primera forma sería ir guardando todos los mensajes que le enviamos y las respuestas que nos dío, entonces cuando lo volvamos a llamar le mandamos los mensajes anteriores.

Si bien esta estrategia es muy simple, tiene varios problemas, uno de los problemas es que los modelos de lenguaje tienen una cantidad máxima de tokens o palabras que pueden recibir como entrada entonces ahí tenemos un limite y otro de los problemas es que por lo general estás APIs que podemos usar nos cobran por cantidad de tokens entonces si cada vez que la invocamos le tenemos que pasar todo ese texto se vuelve muy caro.

Una segunda estrategia que podriamos usar como alternativa a la anterior es manejar un ventana de contexto, entonces en vez de enviar todos los mensajes anteriores le mandamos los ultimos y entonces ahi podemos definir el tamaño de la ventana y decir bueno mi ventana es 6 y entonces mandar siempre los ultimos 6 mensajes entonces por un lado reducimos costo pero por otro empezamos a perder la memoria de los primeros mensajes…

Y esto nos lleva a una tercera estrategia, que es la de usar un modelo que haga resúmenes entonces en vez de guardarse todos los mensajes completos, nos vamos guardando el resumen de los más importante y con esto reducimos la cantidad de tokens o palabras y compensamos la pérdida de memoria. 

Esta estrategia puede ser buena para algunos casos, pero pensamos que también va a tener un límite, y yo al principio les hable de darle carpetas enteras llenas de pdf. Y para memorizar todo eso sería inviable usar cualquier de las anteriores tres estrategias.

Ahí es donde entra la cuarta estrategia para darle memoria a nuestro bot y que es mucho más potente que las anteriores.

Esta estrategia consiste en procesar todos los documentos que tengamos, partidos en pedacitos más chiquitos y usando esos textos para generar vectores de embeddings. Y esos vectores de embeddings guardarlos en una base de datos.

Si no saben o no se acuerdan que son los embeddings pueden ir a buscar un episodio que hice hace un tiempo que se llama Como hace ChatGPT para entender y responder donde explico este tema de los embeddings. Les dejo el link en las notas del programa también.

Asi que bien, guardando estos vectores de embeddings en una base de datos, y conectando esa base de datos con el modelo LLM,  vamos a poder lograr que cuando hagamos una pregunta podamos calcular los embeddings de la pregunta y compararlo con los embeddings de los fragmentos de los documentos para ver donde hay más similitudes y usar esos fragmentos similares para darnos la respuesta. Y ahí está toda la magia.

Pero ojo, no es que solo podemos preguntar cosas sobre los documentos, podemos pedirle que compare datos de diferentes documentos, que haga informes, lo que se nos ocurra. Super potente!

Langchain, el framework para dominar los modelos de lenguaje

Y para hacer todo esto y algunas cosas más que ahora les voy a contar, existe un framework de código abierto que se llama Langchain, que nos facilita poder hacer aplicaciones basadas en modelos de lenguaje. Por un lado nos va a facilitar la interacción con las APIs de los modelos de lenguaje, nos va a facilitar implementar las estrategias de manejo de memoria que les comentaba antes, también la integración con las bases de datos donde vamos a guardar los vectores de embeddings, también facilita la carga de los documentos los pdf u otro tipo de archivos.

Es un framework muy completo la verdad y con esto de chain nos va a permitir encadenar y orquestar distintos llamados a modelos de lenguajes para poder hacer tareas complejas y también acceder a complementos que permitan por ejemplo conectarse a internet, ejecutar código, etc.

Crear agentes con Langchain

Y todo esto es lo que abre la posibilidad de crear agentes inteligentes al igual que AutoGPT que lo hablábamos la otra vez. Y con estos agentes poder hacer tareas complejas que requieren pasos intermedios e interacción con herramientas o documentos.

Y esto es super poderoso y por eso estamos viendo que empiezan a aparecer muchas aplicaciones basadas en estos conceptos y seguramente vamos a seguir viendo muchas más en los próximos meses.

Así que hasta acá llegamos con el episodio de hoy, espero que les haya gustado, saben que pueden dejar comentarios en Spotify o me pueden contactar a mi directamente.

No se olviden de participar en el sorteo del libro! Haganlo ahora antes de que se olviden!

Y si quieren ayudar a que este podcast siga existiendo, compartanlo, suscribanse a mi newsletter y dejenme 5 estrellitas en Spotify o la plataforma de podcast que usen.

Y ahora si. Nos seguimos escuchando en el próximo episodio donde seguiremos hablando de este hermoso mundo de la inteligencia artificial.


Comentarios

Deja una respuesta

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