Transcript for:
Integración de GPT con Notion y Google Sheets

acaba de crear dos gpt con acciones personalizadas el primero se integra con notion toma mis fotos de clases o reuniones y crea una página organizando la información el segundo se integra con Google sheets y me permite leer modificar y actualizar datos en tiempo real en este video te voy a mostrar Cómo puedes hacerlo tú también sin saber programar del todo antes de empezar a crear funcionalidades extras para nuestros gpt vamos a ver tres conceptos con los que deberían familiarizarse para seguir el ritmo de este tutorial el primero de ellos es Api una Api o interfaz de programación de aplicaciones nos va a permitir pedir diferentes funciones o datos para usar en nuestros propios programas una Api también actúa como un traductor permitiendo que dos aplicaciones que están escritas en diferentes lenguajes de programación se comuniquen entre sí el segundo y tercer concepto con los que debemos familiarizarnos son yaml y Jason pensemos en estos dos como formas eficientes de organizar información son útiles para que las máquinas interpreten y usen los datos de manera rápida y organizada pero no se me estresen que no vamos a crear manualmente estos códigos pero es bueno saber cómo funcionan porque los vamos a usar ahora por qué es importante esto necesitaremos un código yaml o json para organizar y enviar solicitudes desde chat gpt una Api que procese las solicitudes haga la acción y devuelva el resultado o que envíe esa solicitud a otra Api complete una acción y devuelva un resultado así como el gpt que se integra con notion y nos permite enviar información se crea una página y nos responde con el link de La nueva página creada para este tutorial creamos dos gpt especializados en ayudarnos a crear todo lo necesario por lo que chat gpt hará Prácticamente todo el trabajo para nosotros para empezar necesitaremos instalar visual Studio code y python en nuestro PC vs code es esencial para estructurar el código realizar modificaciones y solucionar errores y python es el lenguaje de programación que usaremos para crear nuestra Api links directos de descarga en la descripción una vez instalados vamos a crear una carpeta en nuestro escritorio en este caso la voy a llamar tutorial ustedes le pueden asignar el nombre que quieran abrimos visual estudio Studio code y vamos a arrastrar la carpeta al área de trabajo vamos a arrastrar aquí en esta sección vamos a proceder a crear un entorno virtual cómo lo hacemos vamos aquí a la terminal nuevo terminal y esto nos va a abrir un terminal en powershell y vamos a utilizar los siguientes comandos les dejo el artículo en la descripción donde pueden obtener todos los códigos de manera muy organizada utilizaremos lo que ven en pantalla y vamos a hacer un espacio y vamos a darle un nombre así entorno virtual en este caso lo voy a llamar notion raya ap esperamos un momento y ya está este es nuestro entorno virtual necesitamos para empezar a usarlo podemos abrir y cerrar una carpeta pulsando sobre ella nos vamos a ir a la carpeta scripts ahora Tenemos que irnos desde la terminal tenemos dos opciones usando Comando como CD y seguir la ruta de esa carpeta o simplemente cerramos esto para que no se compliquen y abrimos un nuevo terminal sería abrir en terminal integrado esto ya nos deja en la ubicación de esa carpeta ya una vez estamos en esa carpeta desde nuestra terminal lo que vamos a hacer es simplemente pegar el siguiente Comando punto barra diagonal activate y le damos en nos damos cuenta que nuestro entorno se ha activado con éxito porque aparece el nombre del entorno al principio y aquí ya podríamos comenzar a trabajar como tal ya una vez tenemos configurado nuestro entorno virtual vamos a ir a chat gpt y vamos a ir específicamente al gpt que se llama apis for gpt este gpt lo creamos nosotros y nos va a ayudar a completar de manera exitosa esa creación de la Api el prom que vamos a usar es bastante simple le vamos a decir que creará una Api que interactúe con la Api de notion y permite a los usuarios crear páginas con el nombre que ellos especifiquen pero que primero queremos que realice una búsqueda que se Centre en python vamos a ver qué es lo que nos trae y nos da una respuesta Ya teniendo idea de qué es lo que está haciendo vamos a decir que cree el código de la Api usando python y flask python como lenguaje de programación y flask como framework y lo enviamos a ver qué sucede entonces aquí ya nos comienza a decir que va a comenzar a crear el código de la appi vamos a ver con qué termina y nos da un comando pip para instalar las dependencias que necesitamos por último nos proporciona un archivo json que sería lo que que contendría las instrucciones para crear esa página es decir en este caso solamente el título Entonces qué Vamos a hacer con todo esto vamos a copiar el código vamos a crear en nuestra carpeta de visual Studio code si hacemos clic acá podemos crear un nuevo archivo lo vamos a llamar main.py una vez ya creamos ese archivo pegamos nuestro código y con control S guardamos Aquí vemos que nos está diciendo que hay un un error Por qué Porque no hemos instalado las dependencias que necesitamos En dónde las vamos a encontrar entonces aquí nos dice pasos para ejecutar asegúrate de tener Flash in notion sdk instalados listo Entonces copiamos el código y lo que nos vamos a venir a hacer nuestra terminal de powershell simplemente copiamos ese código y ahí va a comenzar a instalar todo lo necesario si una vez instalado Siguen con este error lo único que van a hacer es seleccionan ese bombillito y le van a dar en seleccionar otro intérprete Aquí van a seleccionar el que dice recomendado entonces aquí lo seleccionamos Y ahí aparece en color verde quiere decir que todo está bien qué más tenemos que hacer aquí nos dice Configura las variables de entorno notion token y notion database ID de dónde podemos obtener estos resultados nos vamos a ir aquí a notion esta es una página que ya tengo creada y aquí tengo estos dos valores estos son los dos que nos están pidiendo de dónde vamos a tener este valor por ejemplo que es el parent page ID yo hago grande esto nuevamente estos dígitos que aparecen después de el nombre como tal de su página va a ser el parent page ID y el notion Secret token lo vamos a obtener de la siguiente manera nos vamos a ir a a settings y members a conexiones y aquí en conexiones vamos a ir a esta opción que dice develop or manage integrations acá vamos a poder crear esas integraciones con la apid den notion Entonces qué Vamos a hacer vamos a crear una nueva le vamos a asignar un nombre en este caso se va a llamar prueba podemos cargar una imagen o la dejamos así como quieran ya aquí nos aparece esa clave secreta que vamos a usar en capacidades lo que vamos a hacer es verificar que tengamos activas estas tres opciones de leer contenido actualizar el contenido e insertar contenido en el mi caso lo va a marcar también el leer comentarios y vamos a guardar los cambios ya una vez los guardamos si le damos aquí en show nos va a aparecer esa clave que acabamos de crear esto es este mismo notion token Entonces ya sabemos De dónde vamos a tener los dos valores sin embargo vamos a necesitar realizar otra cosa para que esta integración tenga acceso a esta página vamos a tener que darle acceso cómo le damos acceso vamos a actualizar acá vamos aquí a estos tres puntos bajamos y vamos a Añadir conexiones en este caso vamos a seleccionar la que dice prueba que es la que acabamos de crear le vamos a dar clic en confirmar ya una vez está ahí aparece aquí en las conexiones y ya sabemos que tiene acceso a esa página Entonces le vamos a decir cómo configuro los valores de notion token y notion database ID ent aquí ya nos está diciendo que tenemos dos opciones una simplemente copiando y pegando estas dos líneas de de código porque ya tenemos el import pero que no es recomendado para un entorno de producción y lo que queremos sacar es un entorno de producción esta Sí me parece Entonces qué nos dice que vamos a crear este archivo que va a llamar punto enb dentro de ese archivo vamos a copiar estos valores y vamos a reemplazar los datos que están después del igual con los datos que generamos anteriormente una advertencia de seguridad no vayan a compartir estos datos nunca porque la persona que obtenga estos datos puede hacer modificaciones o leer los datos de su página y todas las páginas que estén dentro de esta página en notion Entonces nos está diciendo que también tendríamos que instalar esta dependencia la copiamos venimos acá a la consola y la instalamos listo ahora vamos a reemplazar los valores en este caso tenemos este valor acá tenemos este otro vamos a guardar con control S van guardando Y también vamos a insertar esta línea de código damos un salto de línea y lo instalamos vamos guardando y también nos va diciendo que tendríamos que cambiar a estas variables Entonces esto Lo tendríamos que reemplazar acá Acá tengo un error vamos a copiar todo el código nos vamos a venir acá le vamos a decir Este es mi código actual coma revisalo y corrige los errores Entonces vamos a darlo así tal cual a ver qué nos dice vamos a reemplazar todo el código veamos y reemplazamos aquí ya se solucionó el código y solucionó aquí un problemita que teníamos ahora qué vamos a hacer nos devolvemos un poco nos daba un archivo json de prueba Qué vamos a hacer vamos a copiar este json vamos a crear un nuevo archivo nos vamos a llamar crear json las solicitudes desde chat gpt se enviarían en un formato tipo json Entonces es bastante importante hacer este tipo de pruebas en un entorno local para saber que todo funciona cuando ya estructuramos el archivo yaml que va desde chat PT hasta nuestra Api pues haga una conexión fluida y no tengamos problemas así como muy grandes Entonces ya tendríamos esto con configurado ahora tendríamos que venirnos acá le vamos a decir Dame el comando en este caso estamos usando powershell para ejecutar el programa decir esto le vamos a decir que este es nuestro archivo json vamos a decir ruta de acceso relativa Este es mi r son de prueba y esta es la url Y esta es la url de mi servidor Cuál es es esta copiar y pegar ese Comando vamos a ejecutar y aquí ya nos encontramos con nuestro el error Aquí es importante leer mucho para determinar Cuál es el error en este caso nos está diciendo que no se encuentra la ruta de acceso Qué ruta de acceso si se van a dar cuenta Acá está haciendo referencia al archivo json nosotros ese archivo Jason acá lo tenemos en la carpeta principal que es la tutorial pero debería estar dentro de la carpeta notion Api scripts por lo que deberíamos arrastrar este archivo a la carpeta de scripts que se encuentra dentro de notion appic vamos a volver a ejecutar El Comando y ahora nos da otro error ne está diciendo que la base de datos como que no tendrías acceso a esa página vamos a verificar primero que todos estos valores estén bien simplemente lo que venimos es hgpt Entonces vamos a usar el siguiente prompt para que nos ayude a revisar ese código y nos ayude a solucionar el problema como tal tengo el siguiente error Al momento de ejecutar mi Comando de powershot en mi código Api verifica que todo esté bien Yo ya revisé que los valores de entorno están correctos y tienen los permisos necesarios pero vamos a darle una estructura un poco más interesante al prompt para organizar la información de una mejor manera le estamos diciendo que tenemos un error y que tenemos el código de la Api Entonces vamos a poner esto dentro de unas etiquetas que Serían como etiquetas html para hacer referencia a esos valores entonces aquí lo que hacemos es copiar esos valores vamos a poner dos veces así el segundo que ponemos le vamos a poner esta barra inclinada Qué quiere decir esta es la etiqueta que abre Esta es la etiqueta que cierra Y esta es la que hace referencia a que va a encontrar en el prompt esos valores Entonces lo hacemos con la del código de la Api dos veces y nuevamente a la segunda lo que hacemos Es ponerle la barra inclinada vamos a copiar nuestro error que sería todo esto desde que ejecutamos como tal lo pegamos y copiamos el código de nuestra app y lo vamos a pegar acá el error básicamente que me está diciendo es que el ID de la base de datos no es correcto pero claro cómo va a ser correcto si es que no le estoy dando el ID de una base de datos Y no le estoy dando el ID de una página no vo a decir eso La idea es que las páginas se creen usando un page ID no un database ID como corrige el código para que use este valor y vamos a esperar a ver qué es lo que nos da y nos va a comenzar a actualizar el código listo Entonces eliminamos el código que teníamos en nuestro archivo a py y lo reemplazamos con el que nos da pero también deberíamos reemplazar aquí los valores entonces he cambiado database ID por parent page ID y esto es lo que debería incluir el archivo que contiene nuestras variables y vamos a a intentar a ver si ya funciona nuevamente vamos a ejecutarlo y nos da otro error vamos a copiar y pegar ese error nuevamente en chat gpt cerramos la terminal de ejecución de python que estaba ejecutando el servidor recargamos esa ventana para verificar que definitivamente ya nos esté ejecutando y lo volvemos a ejecutar esta era una de las recomendaciones que nos daba chat gpt para tratar de solucionar ese problema volvemos a copiar el comando de powershell lo ejecutamos aquí avanzamos un poco porque el error no sigue siendo el mismo cierto vamos a traernos nuevamente este error que nos da y se lo vamos a dar acá a chat gpt claro acá estamos usando un comando que no es Entonces es este Comando y otra vez tenemos otro error lo copiamos nuevamente y lo pegamos en chpt acá nos está diciendo que vamos a reemplazar por ejemplo estos valores que son estos el resto del código sigue igual para importar el json que sería esto y después de try desde acá Tendremos que actualizar el código con esto que nos dio simplemente ente lo copiamos venimos acá y lo reemplazamos hasta aquí guardamos venimos acá copiamos nuestro Comando powershell y aquí ya la solicitud cambió el mensaje ya no es un error sino es como tal una respuesta positiva qué nos dice básicamente nos da una URL que aquí es donde se debió haber creado esa nueva página que esta es la página que creado pero yo no quiero que tenga un children en este caso Yo quiero que la solicitud se maneje desde el Jason tiene el nombre de mi nueva página pero tiene un texto que está dentro de el código Api Y eso no puede suceder ya podemos crear páginas cierto pero no de la manera que nosotros queremos como tal que es que se maneje con el texto del usuario con los datos del usuario y todos estos datos vendrían desde ch gpt entonces lo que venemos a hacer básicamente es a decirle se creó la página pero todos los datos necesarios para la creación como títulos párrafos y otros deberían manejarse desde el json como cor el código vamos a mandarlo así simple y este es el código de la Api que tenemos actualmente que no sé si es el mismo listo y vamos a esperar entonces ya podemos crear páginas con nuestra Api desde un entorno local Sí ahora tenemos que empezar a darle formato a ese código para que haga exactamente lo que queremos Ya esto es una gran base no es algo rápido y sencillo que usted va a decir Uy listo pero sí que si no sabe programar y tiene un poquito de paciencia puede llegar a tener cosas muy interesantes Entonces tenemos acá ya terminó con esto lo copiamos pegamos acá y nos va a dar un archivo json un poco más más estructurado vamos a ejecutarlo para ver con qué nos sale vamos a copiar el contenido del Jason reemplazamos lo que teníamos quitamos este comentario y si ejecutamos otra vez esto okay se creó la página que es esta segunda entonces que fue lo que hizo básicamente la estructura que le enviamos era mi nueva página tendríamos un bloque de tipo párrafo con un texto que diga Este es un párrafo en la página nueva Este es un párrafo en la página nueva también tendríamos otro bloque que es un o sea un título h2 con el texto encabezado de sección y ahí está entonces vamos a ver si este código como tal es capaz de manejar listas Entonces dame un Jason un Jason que incluya listas y una imagen quiero verificar si este código es capaz de simplemente por children content blogs poder insertar cualquier tipo de bloque en esta página de prueba aquí nos está dando tendríamos que tener la URL de una imagen Entonces vamos a copiar el código Jason que nos generó desde acá vamos a manejar todas las peticiones todo lo que tiene que ver con esto Entonces vamos a la imagen por ejemplo copiar dirección de imagen reemplazamos el valor guardamos todo la página se va a llamar como tal mi página con lista e Imagen guardamos vamos a enviar un nuevamente una petición en este caso ya la envió nos devolvemos y vemos que puede manejar hasta la creación de imágenes este código de por sí ya es bastante eficiente ahora ya tendríamos como tal lo que viene a ser la creación de las páginas según la información que le proporcionemos desde un archivo Jason ahora depende del enfoque que le vayan a dar a ese código van a usar un servicio u otro para almacenar su Api por este tutorial vamos a almacenar la Api en replit.com acá lo que vamos a hacer es crear un nuevo replit templates vamos a utilizar flask le vamos a asignar un nombre como tal en mi caso lo vo a dejar asistente notion vamos a crear un nuevo replit y esperamos un momento Aquí vamos a importar ese código que generamos anteriormente con nuestra appi que si está acá lo que vamos a hacer es copiar todo este código y lo vamos a pegar acá una vez tenemos nuestro código necesitamos realizar algunas modificaciones la primera es el puerto en donde se está ejecutando cómo lo vamos a hacer vamos a copiar esto vamos a ir a ch gpt nuevamente le vamos a decir actualiza el puerto para que en replit me dé una URL vamos a pegar las últimas dos líneas de código acá vamos a utilizar Esto entonces ya tenemos esto Qué vamos a hacer ahora vamos a correr esto y vamos a esperar a que se instalen estas dependencias que necesitamos Lo más seguro es que no se vayan a instalar todas de una vez por ejemplo acá ya nos está diciendo que después de correrlo No se encontró el módulo llamado notion client y vamos a buscar aquí en esta sección de packages notion client y vamos a instalarlo manualmente Listo ya está instalado Vamos a darle aquí al botón de correr y esto nos daría una página como esta Qué es lo importante de esto aquí en la opción que dice New Tab vamos a abrirla y lo que nos va a servir de acá es esta URL Aquí vamos a realizar las peticiones desde chpt para que se validen a través de nuestra Api y realice la acción que queremos en notion ahora como podrán recordar tendríamos un archivo pun enb este archivo contiene estas claves secretas que no pueden ser accesibles por nadie o tendrían control a esa página entonces en replit como tal podríamos venir aquí a secrets Esperamos que cargue y acá Podemos agregar nuevas claves de entorno vamos a configurar esos valores que necesitamos que son por ejemplo notion token lo vamos a poner acá el valor también lo vamos a poner copiamos y pegamos vamos a añadir otra y esta se va a llamar notion page ID y pegamos el valor tamb listo añadimos esto Debería ser suficiente para realizar las solicitudes pero vamos a mirar si es cierto o no es cierto nos devolvemos acá y vamos a utilizar el comando que nos daba anteriormente que está por acá Acá está vamos a copiarlo vamos a pegar acá Porque necesitamos hacer una modificación como tal Ya las peticiones no se van a realizar a esta URL como tal se va a utilizar a este Puerto pero no a esta URL V a utilizar esta URL lo que hacemos Es simplemente reemplazarla y copiamos todo esto para intentar hacer la ejecución no se ha configurado tan tan tan vamos a detener el servidor y lo vamos a volver a correr para que tome todas esas tokens que acabamos de darle vamos a volver a hacer la petición desde acá y ya nos da un resultado positivo y acá se creó la nueva página que Pues básicamente es lo mismo que la anterior pero con los datos que estaban almacenados de manera local en nuestro archivo Jason entonces este archivo se está utilizando para enviar esas solicitudes y crear la página de esa manera pero queremos que esto lo haga desde ch gpt ahora qué deberíamos hacer para realizar la integración con chat gpt vamos a utilizar este otro gpt se llama yaml for gpt aquí lo que vamos a hacer es copiar y pegar el siguiente prompt crea un código yaml para la siguiente Api como se dan cuenta tienen esas etiquetas html de las que les comenté hace un momento para estructurar mejor el prompt la URL del servidor es url también te dejo un json de ejemplo copiamos la primera variable la segunda se cierra la segunda sería esta y le ponemos la barra inclinar ahora copiemos las URL es servidor la pegamos acá Listo ya una vez tenemos esto necesitamos el código de la Api que estamos manejando en replit y el json de ejemplo si es el que tenemos acá simplemente es un Jason de ejemplo y ya está vamos a enviarlo y él va a encargarse de crear ese documento yaml que necesitamos para realizar la integración desde chp hacia esta Api que creamos en replit y nos permite realizar la creación de págin entonces este es el código yaml que nos ha generado dónde vamos a usar Esto bueno básicamente lo vamos a usar vamos a venir a crear un nuevo gpt creamos acá nos vamos a configuración le vamos a poner un nombre una descripción crea páginas con la info del usuario Vamos a darle las capacidades que necesito en este caso solo búsqueda de internet y eso ni siquiera necesitaríamos una búsqueda de internet este no tendría acceso a eso vamos aquí a crear acción y vamos a traernos ese código que nos dinero en el mejor de los casos no vamos a tener ningún mensaje o error Aquí sí en este caso no tenemos ningún error si lo llegásemos a tener simplemente copiamos el resultado que nos da le decimos tengo el siguiente error y le pegamos ese error que nos aparece acá por ejemplo si no tiene una cosa que se llama operation ID quité Elo del todo me da un error como tal Entonces ahí es donde tendríamos que copiar ese error y pegarlo en chat gpt y él va a saber qué es lo que tiene que hacer básicamente lo que nos está diciendo Endo este archivo es que en los pads va a hacer solicitudes de tipo post esto se va a Añadir al final de nuestra URL y va a realizar la petición que nosotros queramos lo bueno de esto es que ya podríamos por ejemplo pedirle acá Crea una página una página con el nombre test y un poema corto dentro esto sería suficiente para realizar estas acciones Ahí va a comenzar la acción va a pedir que si confiamos en esta URL que va a enviar información le vamos a decir que sí y aquí ya nos está diciendo he creado una página en notion con el nombre test que contiene un poema corto puedes verla en el siguiente enlace vamos a ver si sí es cierto Entonces vamos a allá y nos ha creado una página con ese poema corto y el nombre test las páginas siempre se van a almacenar dentro de la página que configuramos originalmente y Aquí está nuestra página de Test que tiene exactamente el poema que al ordenamos crear Este es el flujo que tendría el gpt como tal que acabamos de crear comienza desde chat gpt enviando una petición a nuestra servidor a nuestra Api que generamos usando ch gpt está estructura la información de manera adecuada y se la envía a la apid den notion la apid notion responde con la URL de la página creada chat gpt nos muestra un mensaje de que se ha creado esa página exitosamente pero no es el único flujo de trabajo también podríamos tener flujos de trabajo como este por ejemplo chat gpt envía información a nuestra Api o una solicitud y la Api responde inmediatamente con esa solicitud puede ser consultando una base de datos o simplemente realizando un cálculo matemático de una manera específica y devuelve la información organizadamente entonces pueden haber diferentes flujos dependiendo de la función que ustedes planean realizar para que lo tengan en cuenta en el artículo de la descripción les dejamos una sección especial enfocada en elementos de seguridad que deberíamos considerar al momento de crear este tipo de apis y usar gpt que tengan este tipo de acciones déjenos un me gusta y suscríbase si le gustan este tipo de videos relacionados con Inteligencia artificial nos vemos en la próxima