Modelo listado (base de datos) II
No es nada nuevo decir que (también) en programación las cosas se pueden hacer de muchas maneras. En una [entrada anterior] vimos una de las formas de automatizar la creación del documento Acreditación y en esta veremos otra diferente.
Las diferencias se deben a varias causas; la primera de ellas es que en esta ocasión no trabajaremos con un lenguaje "de macros" sino con Python. Además el script que creemos trabajará desde fuera del documento, y lo hará con documentos MS Office (.xlsx y .docx), no tanto por no existir opción de trabajo en Python con LibreOffice, pero sí porque las bibliotecas de trabajo de Python con MS Office son más robustas y sencillas.
La segunda diferencia es que en este caso crearemos un script que actúa a modo de "Combinar correspondencia en piloto automático", esto es, que crea tantos documentos de acreditación como registros tengamos en nuestra base de datos.
Pero aun hay más diferencias, estas de procedimientos: el script resultará del uso de un chatbot (Gemini) a modo de auxiliar de programación y se expresará como cuaderno de Google Colab. Esto nos permitirá incidir un poco más en la incorporación de la IA a la programación (y en sus límites) y en el uso de recursos On-line y sus (también) limitaciones.
Empezaré por decir que para la obtención del listado de campos de la acreditación utilicé una herramienta basada en Gemini llamada NotebookLM, disponible desde una cuenta G-mail. No es este el momento para hablar de ella, ni siquiera de lo que se puede conseguir con su uso, pero sí diré que es de utilidad (a veces mucho más que el propio Gemini), pero que el resultado que obtuve fue satisfactorio en términos de expectativas, aunque fue necesario trabajar con el texto para ajustarlo al objetivo: disponer de un listado de campos que recogiera todos los que presenta el documento para usarlo en la creación de la base de datos (encabezado).
En cualquier caso, siendo ésta como es una forma de incorporar la IA en los procedimientos de trabajo, decir que NotebooKLM presenta una importante limitación que es necesario destacar: no es adecuado usar esta aplicación cuando la información que se debe aportar contiene datos confidenciales. No siendo el caso (que no lo es), su utilidad (en este caso el análisis de la composición estructural de un documento) es indudable, aunque limitada, por lo que dije.
También es de utilidad, ahora Gemini, para "inventar" contenido (registros) para la base de datos creada (manualmente, aunque con ayuda), pero lo cierto es que no hacía falta mucho: los datos inventados eran necesarios para probar el funcionamiento del script, pero no me interesaba que fueran creíbles; es más, necesitaba que no lo fueran precisamente porque también Gemini adolece de la misma limitación respecto al tratamiento de datos confidenciales, y los que teóricamente debe contener una base de datos de estas características lo son, y mucho.
También respecto a Gemini hay que decir, pues, lo mismo, aunque desde una perspectiva diferente: es muy útil para facilitar la automatización de determinadas formas de trabajo, aunque ajustar las respuestas a las necesidades puede llegar a ser un proceso trabajoso (no lo fue en este caso, dada la simplicidad de la tarea), incluyendo el necesario tratamiento del soporte en que ofrece sus resultados (en este caso, hoja de cálculo de Google).
Centrándonos en el núcleo de este proceso (la creación del script en Python), también Gemini se presenta como una herramienta útil, y por partida doble: como chatbot genérico (que fue el caso), y como asistente de programación incluido en Google Colab (que no fue el caso en esta ocasión). Como herramienta-asistente Gemini es de gran interés, aunque es necesario diferenciar el tipo de objetivo que persigamos usándola.
Sin entrar en muchos detalles, diré que en este caso se trataba de desarrollar un script que funcionara correctamente, no de utilizar la tarea como "excusa" para el aprendizaje ni mucho menos siendo el proceso de aprendizaje el centro de interés.
Sobre estas dos condiciones tendré ocasión de hablar en otros momentos; sobre el objetivo de ésta decir que es posiblemente donde un chatbot-asistente de programación tiene más utilidad, siempre y cuando nos conformemos con lo que nos ofrece sin tratar de indagar mucho en el resultado; en el momento en que eso no es suficiente, deberemos entrar en un diálogo pormenorizado sobre qué y cómo queremos que sea capaz de hacer (y no hacer) el script. Pero esto ya constituye en si mismo un interesante proceso de aprendizaje, así que no se debe considerar un handicap.
Es más, yo diría que la interacción se vuelve más interesante (claro que a veces llega a serlo "en exceso") cuanto más y mejor sepamos lo que queremos y lo que no queremos, y sepamos identificar las fases del proceso para presentarlas de forma diferenciada y clara en forma de secuencia de objetivos parciales.
El resultado, en todo caso, queda a tu disposición para que lo uses y para que lo estudies, si es de tu interés. Aunque no fue hecho (como dije) sobre G. Colab, te lo presenta en este formato, además de íntegro como enlace al final de la entrada y junto con los documentos utilizados para probarlo.
De hecho, el material sobre G-Colab no sirve directamente para ser usado, pero tiene la ventaja de que es posible descomponer y analizar el código parte por parte, por lo que resulta más didáctico. Y ese es el principal objetivo de usar G. Colab.
Mediante botón de comando que aparece en primer lugar puedes acceder al cuaderno G-Colab y trabajar con él, aunque su función (especialmente en este caso) es meramente explicativa.
En resumen, este script permite trabajar de forma similar a como haríamos con Combinar correspondencia, sin necesidad de crear ninguna relación entre documento y base de datos, lo que hace que sea menos frágil y generalizable.
En cuanto a procedimiento de trabajo, dado que la confidencialidad de los datos no nos permite trabajar directamente con la IA, lo hacemos indirectamente, usándola como proveedora de procedimientos de automatización. Esta explicación es excesivamente simplista y obvia las limitaciones que esta forma de uso de la IA implica, pero nos sirve de momento.
Documentos
- Desde [aquí puedes acceder al script] que deberás incorporar al directorio donde vayas a guardar la documentación. Recuerda acceder a él desde tu IDE de Python para ver su contenido y, en su caso, realizar las modificaciones que desees. En caso de proceder de este modo te sugiero que hagas una copia de seguridad del script original.
- [Aquí tiene la base de datos] y [aquí la plantilla del documento].
- En [este enlace] puedes descargar un ejemplo de documento resultante.
- Recuerda que todos estos archivos deben compartir la misma carpeta con el script.
- Finalmente vuelvo a darte [acceso al cuaderno Colab], por si tienes algún problema de acceso desde el comando anterior.
