 Buenas tardes a toda la comunidad que está acompañando el día de hoy. Hoy tenemos al primer ponente de Latinoamérica en las que haga The Warpress, con una charla sobre desarrollo The Warpress con un toque de ahí. Leandro es desarrollador web, consultor de SEO en Monchito, usuario de software libre y colaborador en proyectos desde el 1999. Es organizador, speaker, voluntario en diversos work camps y meetups. Es también adicional, tal vez no lo quiero decir, pero yo se lo voy a decir. Fue el fundador de la comunidad The Warpress en Nicaragua. Y también por ahí escuché también que fue uno de los pioneros de las comunidades open source en Nicaragua. Entonces tiene mucha experiencia en comunidad. Además ha sido leader organizer de primer work camps en América que se hizo en el año 2021, en el cual tuve el honor también de colaborar con él. Así que lo dejamos para que de su interesante charla. Bienvenido. Gracias, muchas gracias Lidia. Muchas gracias por estar aquí. Voy a compartirles el día de hoy un poco sobre lo que es hacer Warpress con inteligencia artificial. Entonces la charla la voy a dividir más o menos en unas cuatro partes. Voy a dar una introducción de por qué se nos ocurrió hacer Warpress con inteligencia artificial. Les voy a contar un poco las lecciones que aprendimos de hacer esto. Vamos a ver las conclusiones, la gran pregunta del millón si se puede usar inteligencia artificial con Warpress. Y finalmente les voy a mostrar lo que fue el producto final de lo que nosotros hicimos. Entonces antes de comenzar ya Lidia ya me presentó. Yo comencé a usar Warpress bastante temprano. Al revés de 2006 creo tuve mi primer blog en Warpress. Y uno año después con todas estas novedades que estaban saliendo de Warpress. Me interesó lo del desarrollo. Comencé como todo mundo haciendo temas hijos, después temas desde cero. Ahora temas full site editing y lo que es desarrollo de plugins. Y también bueno una de las cosas que siempre hemos hecho nosotros es tratar de colaborarnos más que podamos con la comunidad Warpress. Y por eso estamos aquí el día de hoy para compartir un poco de nuestras experiencias y esperamos que les sirva alguien más. Entonces para comenzar ¿por qué se nos ocurrió hacer un plugin de Warpress con inteligencia artificial? Resulta que nosotros tenemos un proyecto desde hace 6 años que se llama LogosNICAS. Que básicamente es un repositorio en línea de marcas y logotipos de Nicaragua en formato SVG. Entonces la idea con este proyecto es básicamente dos. En primer lugar tratar de preservar lo que es la creación de marcas y logos históricos de tiempo desde antes de que teníamos computadora para tratar de archivarlos y buscar cómo preservar esas marcas para generaciones futuras. Para que se pueda aprender de ellas. Y en ese marco pues hemos tenido en nuestro repositorio logos que tienen más de 100 años. Logos de año 20, 30, 50. Y hemos hecho cosas bastante interesantes, presentaciones sobre cómo nacieron estos logos. Cómo los logos icónicos de Nicaragua se copiaron, prestaron, se inspiraron de logos de otras partes del mundo. Y un montón de otras historias interesantes que queremos contar a través de, por medio de los recursos gráficos que son los logos. Y otra de los objetivos, que es el objetivo principal que teníamos nosotros como desarrolladores web, como diseñadores, es que este repositorio facilitará la creación de productos digital a los impresos. Ahora se crean un diseñador hacer un sitio web o hacer un folleto o hacer alguna publicidad en línea que pueda utilizar este recurso. Porque me imagino que si varios de ustedes aquí se dedican a qué diseño y desarrollo han tenido esta interacción con un cliente que le piden un logotip en un formato editable, en un formato bonito que podamos reutilizar y nos dan cualquier cosa, ¿verdad? Entonces la idea era esa con el proyecto este de LogosNicas y quisimos llevarlo un paso más allá. No solamente ofrecer lo que son los logos editables, sino que todo una gama de servicio alrededor y entre ellos lo que es una paleta de colores para que se pueda utilizar para crear un sitio web, crear una imagen, crear un recurso gráfico. Entonces la idea es que nosotros pudiéramos utilizar un plugin de WordPress porque el sitio está en WordPress que pueda extraer los colores de una imagen, agarrar esos colores y crear una paleta con esos colores y que esa paleta se pueda descargar. Y lo primero que hicimos, obviamente, fue ir a buscar ese plugin. Fuimos al directorio de WordPress, encontramos algunos que tenían una funcionalidad parecida, pero que no se adaptaba lo que realmente nosotros queríamos hacer. Habían otros que estaban un poco más cercanos a lo que queríamos, pero no estaban activos. Entonces decidimos qué deberíamos desarrollar este plugin desde cero. Pero claro, como este es un proyecto que nosotros tenemos, un proyecto aparte de las cosas que hacemos diarias para nuestros clientes, no queríamos que fuera un proyecto que nos tomara demasiado tiempo. Y ahí fui cuando comenzamos a jugar con la idea de que si pudiéramos hacer esto con inteligencia artificial. Entonces nos planteamos al inicio dos preguntas. Primero, si es posible, si se puede hacer un plugin de WordPress con inteligencia artificial. Y lo más importante, que si el código que se crea de ese plugin es un código de calidad que se puede usar. Y le vamos a presentar entonces las lecciones que aprendimos de eso, del proceso, los siete lecciones que aprendimos. Y la primera lección es escoger la herramienta adecuada. Verá, como inteligencia artificial es un tema que está muy de moda. Todo mundo, su vecino y la prima tienen una herramienta de inteligencia artificial, tienen un startup que ofrecen inteligencia artificial. Entonces hay un montón de opciones, hay un montón de soluciones, un montón de plataformas para usar inteligencia artificial y a veces es un poco abrumador. Entonces antes de iniciar, lo primero que se debe hacer es investigar y comparar las diferentes herramientas de inteligencia artificial que hay. Y nosotros encontramos que esas herramientas que habían en el mercado se podían dividir más o menos en dos grupos. Un grupo que son herramientas como CodeWPer, que son más específicas para WordPress y otra que son más generalistas, ¿verdad? Como por ejemplo ChackGPT, que es una de las más conocidas. Y una de las cosas que aprendimos que lo mejor es a veces combinar ambas herramientas para poder aprovechar la fortaleza de cada uno. Por ejemplo, una herramienta como CodeWPer es muy buena para WordPress porque está entrenada con los datos de WordPress. Entonces es muy buena para crear codios específicos para WordPress. Pero tal vez no es tan buena como para por ejemplo documentar o para explicar las cosas. Entonces para esas cosas se puede utilizar ChackGPT o alguna otra herramienta más generalista. La segunda cosa que aprendimos fue que, bueno, para entender un poco sobre lo que es inteligencia artificial no es una caja negra, bueno, sí es una caja negra, pero no es una caja mágica, que básicamente funciona agarrando el contexto que uno le proporciona, o sea la instrucción que le da al usuario más los datos de entrenamiento. Entonces él agarra las dos cosas y con eso él agarra y te da el producto. Entonces viendo esto, una de las cosas importantes es ser específico. Hay que ser específico en lo que se le pide a la herramienta. Pero también hay que evitar ser demasiado complejo, hay que evitar dar una gran cantidad de instrucciones a la misma vez. Es mejor ser específico y básico para poder tener una mejor respuesta. Y lo que se puede hacer es dividir las instrucciones en bloques o partes a cómo se haría cuando uno está programando. Ahora si vamos a hacer un programa, una funcionalidad de algo, nosotros dividimos en partes y se va haciendo en partes. Lo mismo es o lo mismo aplica para lo que es inteligencia artificial. Entonces cuando me refería a ser específico una de las cosas que nos debemos decirles es por ejemplo, quiero crear tres columnas. Si quiero crear tres columnas, voy a decir, columnas de qué, columnas de un edificio, en qué estilo, columnas griegas, romana, neogótica. Pero si le decimos quiero crear tres columnas, una página web ya me va a entender que es lo que quiero y me va a entender mucho mejor si soy más específico y le digo quiero crear tres columnas que sean de igual tamaño utilizando HTML y Flexbox. Entonces este tipo de especificidad es muy importante a la hora de darle contexto a lo que es la inteligencia artificial. Y como les dije dividir la aplicación en partes, esto es bastante básico, es más fácil entender cinco líneas de código que 50. Entonces cuando nos está generando el código nos podemos detectar más fácilmente algún problema o algún error en cinco líneas de código que está leyendo 50 líneas de código y adivinar qué es lo que está bien o qué es lo que está tratando de hacer. Entonces las indicaciones con estas lecciones iniciales que habíamos aprendido nosotros comenzamos a dar las indicaciones a la inteligencia artificial y esto es de hecho la primera iteración que hicimos que le dijimos tengo una plantilla de post personalizada en WordPress y quiero hacer un plugin para extraer la paleta de colores de la miniatura de la entrada, esta entrada personalizada y los colores que se van a mostrar en la pantalla de la entrada personalizada van ahí dentro de una envoltura de 20 por 20 píxeles por cada uno de los colores. Entonces se fijan es bastante sencillo, bastante simple las indicaciones, pero también bastante específico en lo que queremos hacer, queremos que los colores tengan cierto tamaño y lo queremos de una imagen destacada de un post personalizado. Entonces estas fueron las primeras cosas que nos sacó la inteligencia artificial y se fijan en el cuadro de arriba, a la izquierda está la imagen destacada donde va a sacar los colores, arriba está el título de la entrada, un párrafo y debajo la paleta de colores que le saca. Entonces si se fijan no le especificamos en ese momento dónde o cómo vamos a insertar la paleta de colores, pero si vamos a utilizar, si la vamos a insertar en un código PHP en la plantilla y vamos a utilizar un shortcode, entonces en ese sentido lo que hacía la idea que lo inyectaba, donde él creía que debía ir, en este caso al final de la entrada. Lo otro era que nos habíamos especificado la cantidad de colores. Entonces nos salían por ejemplo imágenes con 20, 30, 40 colores diferentes o nos salía con un montón de colores pero colores muy similares porque nos habíamos especificado si se iba a permitir colores que son muy similares a una misma paleta, por ejemplo diferentes tonos de azul o de rojo. Y ahí llegamos a la cuarta cosa que aprendimos que es importante en el camino ir ajustando y modificando las indicaciones. Entonces a medida que se vaya creando el código podemos ir añadiendo más detalles para obtener el resultado que queremos. Y en este caso ya esta fue como la tercera o cuarta iteración ya con los cambios que nosotros le pedimos nos dio una paleta de colores con un máximo de cinco colores sin incluir colores similares. Entonces fija en esa imagen destacada agarró los cuatro colores que esa imagen tiene y las presentó. Otra cosa que íbamos viendo a medida que íbamos pasando las diferentes iteraciones a diferentes versiones del código es que a veces la inteligencia artificial nos daba código erróneo y aquí también es importante entender que estamos hablando de una inteligencia artificial pero no una inteligencia infalible la inteligencia artificial puede equivocarse a veces. Entonces es importante si nosotros no entendemos el código que está generando la IA es que le pidamos que nos explique el código y si el código que nos está dando es producto del contexto que le dimos que no está malo tenemos que darle un mayor contexto para explicarle mejor qué es lo que nosotros queremos hasta que esté claro qué es lo que queremos que haga. Y también bueno es importante también recalcar creo que es bastante obvio pero es importante que probemos siempre el código en un ambiente seguro. Aparte de los errores, otra de las cosas que otro de los efectos que tiene la inteligencia artificial que son bastante peculiares son las alucinaciones. Entonces las alucinaciones es código que realmente no es código erróneo es código que sintácticamente es correcto el código pero que es posible que no pueda funcionarse en uno previsto o puede presentar alguna enabilidad. Por ejemplo puede ser código prácticas inseguras la que le pidamos la IA que haga un login y ese login las contraseñas la guarda en texto plano puede ser código ineficiente la puede ser un código algo que necesitemos tres líneas de código para hacerlo y la IA lo hace en 30 o 40 y también puede ser soluciones demasiado complejas tenemos que entender a veces que la inteligencia artificial trata de interpretar lo que nosotros queremos hacer y cuando le damos añadiendo otra capa más se va volviendo más complejo lo que es el código entonces trata de hacer cosas muy complejas cuando se podría solucionar de otra forma y esto sucede bueno por como le dije la falta de contexto la inteligencia artificial puede que no entiende lo que nosotros queremos los requisitos específicos o las restricciones de una tarea puede ser que no tiene información incompleta para que el modelo en que fue entrenado la inteligencia artificial está incompleta y no pueda por ejemplo hacer una nueva funcionalidad una nueva función en WordPress que tal vez no la haya incorporado aún en su modelo de entrenamiento entonces no la conoce o no sabe o puede ser también que haya fallas en el modelo la que puede haber aprendido patrones de código que son obsoletos o prácticas que no hace 5 años era bastante común pero que hoy en día por ejemplo no se hace entonces para prevenir hay que revisar siempre y probar siempre el código antes de utilizarlo en un entorno de producción como le dije pueden hacer un entorno local y ir probando su plugin ahí con una instalación nueva de WordPress otra forma de prevenir especificar claramente que son los requisitos que pueden ir a hacer, cuáles son las limitaciones y las consideraciones de seguridad que debo tener y para esto es muy bueno seguir las mejores prácticas de programación en WordPress está muy bien documentado pueden ir al handbook para desarrolladores y consultar ahí también pueden utilizar herramientas de análisis de código que existen un montón muchas ideas especificas para WordPress y cuando todo lo anterior falla también pueden consultar con algún desarrollador experimentado con algún amigo, con algún compañero mirad mi código que te parece, estudiarlo es algo que uno no entiendo tiene cierta duda sobre algo y bueno hable mucho sobre los fallos y los problemas y los errores de la inteligencia artificial pero también la inteligencia artificial tiene muchas fortalezas y una de las grandes fortalezas de inteligencia artificial es que es muy buena explicando las cosas la inteligencia artificial es muy buena para documentar código es otro de los desarrolladores que a veces somos un poco peresosos entonces la inteligencia artificial le puede dar tu código y él te lo va a agarrar y te lo va a documentar y también sirve para entrenamiento de usuarios se pueden, a partir de un código crear un manual de usuario y utilizarlo en lo que es el flujo de trabajo de uno y por último una de las cosas que debería ser prioridad siempre lo que es la seguridad como les dije el código pruebenlo siempre en un ambiente seguro no agarren el código de inteligencia artificial lo publicen ahí en el sitio web y la rezan a un santo que nada más lo pase revisen siempre el código es bueno crear checklist de seguridad y eso es algo que la inteligencia artificial incluso puede ayudar y investigar sobre lo que son potenciales fallos de seguridad dicho esto, bueno las conclusiones se acuerdan que nos hicimos la pregunta al inicio de la presentación con las dos grandes dudas que teníamos que si se puede hacer un plugin con inteligencia artificial y si el código creado de calidad y la respuesta es corta es si si se puede la inteligencia artificial es muy buena se lo utilizas como una herramienta más porque al fin y al cabo eso es la inteligencia artificial es una herramienta más que nosotros tenemos en nuestra caja de herramientas como desarrolladores como programadores como diseñadores como generador de contenido es una herramienta más pero no es un reemplazo de un profesional o de un desarrollador competente es una herramienta que podemos utilizar y el código que genera es lo suficientemente bueno si queremos hacer cosas muy muy complejas tal vez no sirva la inteligencia artificial pero si queremos hacer cosas sencillas buenas y rápidas es bueno para esto es suficientemente bueno y con esto lo voy a presentar el resultado final el plugin que hicimos se llama Ace que es un acronimbo recursivo de Ace Color Extractor y este es el backend ya son las opciones que se le da el plugin ahí se puede decidir la cantidad de colores máximo que uno quiere en la paleta y el umbral de similitud de color que eso va a determinar si el va a mostrar o no colores muy similares diferentes tonos de amarillo de rojo si se ponen cero el lo va a mostrar todos los tonos de colores si uno le pone un porcentaje más alto va a mostrarlo menos este es el frontend este es el plugin instalado en una instalación limpia de WordPress para hacerle los cuadritos con con las paletas con los colores de las paletas y un enlace para descargarlo en SVG y los quiero dejar con este enlace si se ponen ese enlace ahí van a encontrar hay bueno poder descargar el plugin también hay un enlace a un repositorio en github donde pueden ver el código pueden hacer un fork del código utilizar la autodes mismas en algún proyecto si quieren todo eso es con licencias EPL así que son libres de usarlo hay un articulo que explica más o menos las partes técnicas del plugin y que es lo que hace y como modificarlo y también van a encontrar ahí las diapositivas de esta presentación y con eso les doy muchas gracias si tienen alguna pregunta con gusto se la contesto también nos pueden escribir si quieren y eso es todo de mi parto