Revolucionando la edición de contenido con IA en Drupal
En la actualidad, la inteligencia artificial (IA) se ha convertido en una potente herramienta para mejorar el proceso de creación y gestión de contenidos digitales. Drupal, reconocido por su flexibilidad y robustez como sistema de gestión de contenidos (CMS), no podía quedarse atrás y ha empezado a integrar esta nueva tecnología ya cotidiana, logrando así capacidades excepcionales para la generación y mejora de contenido.
En esta guía detallada, a modo de muestra, veremos cómo instalar y configurar los módulos AI (Artificial Intelligence) e Image Genie AI en Drupal, el primero para integrar la IA con CKEditor, mejorando así sus capacidades de edición, como por ejemplo generación de textos, alteraciones del tono o traducciones, y el segundo para generar imágenes, de tal modo que se puedan generar contenidos completos, de manera rápida y eficaz.
Cabe mencionar que estos módulos están ahora mismo en fase de desarrollo, por lo que de momento se desaconseja su uso en producción.
Prerrequisitos
Antes de empezar a integrar las capacidades de IA, es fundamental asegurarse de cumplir con ciertos requisitos para que todo pueda funcionar sin problemas.
Se necesitará tener instalado al menos Drupal 9 o una versión superior, dependiendo de qué queramos usar: el módulo de generación de imágenes, por ejemplo, requiere al menos Drupal 10.3.
Aunque en este articulo nos vamos a centrar en utilizar los servicios de OpenAI, podemos utilizar muchos otros modelos LLM tanto libres como privados como Claude, Ollama, Mistral o LM studio, por mencionar algunos. Independientemente del modelo elegido, será necesario contar una clave de API para poder realizar las llamadas al modelo que elijamos. En el caso de OpenAI, se puede obtener en su página de claves de API.
Instalación y configuración base
Una vez confirmados los requisitos, podemos empezar con la instalación y configuración base de nuestro Drupal para integrar la IA elegida.
Configuración del proveedor
Lo primero es integrar un proveedor de capacidades de IA. Como hemos mencionado previamente, nos centraremos en los servicios proporcionados por OpenAI, por lo que instalaremos y activaremos el módulo OpenAI Provider:
composer require 'drupal/ai_provider_openai:1.0.x-dev@dev'
drush en ai_provider_openai
El módulo, como se ha indicado, requiere una clave de API de OpenAI. Dado que estas claves son un dato delicado, debido al consumo del crédito que se hace con cada petición a la API del proveedor de IA, el módulo requiere que se gestione mediante otro módulo específico para el guardado seguro de secretos, el módulo Key. Debido a que es una dependencia del módulo OpenAI Provider, debería estar ya instalado. Si por cualquier razón no lo estuviese, bastará con ejecutar los siguientes comandos:
composer require 'drupal/key'
drush en key
Una vez instalado, será posible añadir una nueva clave en la sección Sistema > Claves dentro del panel de administración de Drupal. Es ahí donde añadiremos nuestra clave de API de OpenAI.
Finalmente, debemos asignar la clave de API que hemos añadido al proveedor de OpenAI. Para ello, accedemos a la sección AI > Provider settings del panel de configuración y seleccionamos la clave creada previamente.
Instalación del módulo OpenAI
El módulo Drupal AI ofrece un marco para integrar las capacidades de inteligencia artificial en cualquier sitio construido con Drupal. Este módulo proporciona una suite de herramientas y una API base que facilitan la generación y modificación de contenido, traducciones automáticas y búsqueda semántica, entre otras funcionalidades.
Para instalarlo, basta con usar composer como hemos hecho previamente:
composer require 'drupal/ai:^1.0@beta';
drush en ai
Integración con CKEditor
Nos enfocaremos específicamente en mostrar sus capacidades relacionadas con la generación de contenido y la traducción, dos aspectos clave para optimizar la creación de contenido en entornos digitales. Para ello, necesitamos que CKEditor pueda hacer uso de la IA de una forma rápida y sencilla.
Lo primero es habilitar el módulo AI CKEditor integration, uno de los submódulos del módulo Drupal AI. Este módulo introduce un plugin de CKEditor que actúa como puente entre el editor de texto y los modelos de lenguaje, ofreciendo funcionalidades como generación de texto, traducción, formateo de código HTML o cambio del tono del texto, entre otras.
Para activar el módulo ejecutaremos el siguiente comando:
drush en ai_ckeditor
Configuración en CKEditor
El siguiente paso es configurar el plugin en CKEditor. En la sección Configuración > Autoría del contenido > Formato y editores de texto, editamos el formato de texto que queramos que tenga esta herramienta disponible y añadimos el plugin AI CKEditor a la barra de herramientas. Para un correcto funcionamiento también es necesario añadir el plugin Source Editing.
Configuración de las funcionalidades
Una vez integrado el plugin, es necesario habilitar y personalizar las distintas funcionalidades que queramos activar. En la sección AI Tools de las pestañas verticales, disponible en el panel de configuración de complementos de CKEditor, se encuentran las diferentes opciones que pueden habilitarse marcando los checkboxes correspondientes.
Configuración de traducciones y tono
Para funcionalidades como traducción y ajuste de tono, es necesario asociar vocabularios que definan las opciones disponibles.
En el caso de las traducciones es necesario crear un vocabulario con los idiomas a los que traducir. Así, por ejemplo, podemos crear una taxonomía denominada «Traducciones-IA» y añadir los términos de diferentes idiomas como español, inglés, italiano, etc.
En el caso del tono, también debemos crear una taxonomía con los tonos que queramos usar. Por ejemplo, podemos crear un vocabulario llamado «Tono-IA» y añadir términos como «formal», «crítico», «informativo», «técnico» o «humorístico».
Tras crear los vocabularios los podremos seleccionar en la configuración de cada funcionalidad.
Cada funcionalidad habilitada permite seleccionar un modelo LLM de los proporcionado por el proveedor configurado. En el caso de OpenAI, es posible elegir entre modelos como gpt4o, gpt40-mini y o o1-preview, por mencionar algunos.
Ejemplo de uso
Una vez tenemos nuestro CKEditor correctamente integrado con nuestro proveedor de IA podemos empezar a probarlo. A continuación mostramos un par de vídeos donde se puede comprobar su uso, generando contenido, traduciéndolo, cambiando el tono y reformateando el texto:
Integración con las traducciones de Drupal
Si bien es posible traducir textos desde CKEditor como se ha mostrado en el vídeo anterior, esto no es ideal para traducir los contenidos de una forma automática. Un contenido de Drupal puede tener muchos campos y diferentes textos, lo que haría el proceso tedioso. Sin embargo, podemos integrar la IA con el sistema de traducciones de Drupal haciendo este proceso mucho más limpio y rápido.
Prerrequisitos
Lo primero es habilitar el submódulo AI Translate, ya sea con Drush o con el interfaz de administración de Drupal.
En caso de no tener ya varios idiomas habilitados en nuestro sitio debemos añadirlos en Configuración > Regional e idiomas > Idiomas. Igualmente, si no tenemos el sistema de traducción de contenido activo deberemos activarlo en la sección. La configuración de multiidioma en Drupal es compleja, pero a grandes rasgos deberemos habilita el módulo Multilingual:content translation y después en Configuración > Regional e idiomas >Idioma y traducción del contenido se elige qué contenido y qué campos serán traducibles.
Configuración del módulo
Finalmente accedemos a la configuración de AI Translate desde Configuración > AI> AI Translate Settings, desde donde podemos configurar las opciones de traducción. Por cada idioma podemos configurar lo siguiente:
- Modelo de OpenAI: modelo de IA que se utilizará para traducir al idioma (por ejemplo, GPT-3.5).
- Prompt: dado que la final lo que se hace es enviar un prompt al proveedor de IA, es posible configurar este prompt por cada idioma. Esto es especialmente necesario dado que cada idioma tiene sus propias características y podemos querer explicitar ciertos usos (por ejemplo, indicar que no se use el title case cuando se traduce al español).
Adicionalmente, se puede indicar si queremos que las entidades referenciadas se traduzcan o no y cuáles. Un ejemplo sería la traducción de Paragraphs de una entidad, de forma que al traducir la entidad también se traducen sus paragraphs.
Traducir contenidos
Para traducir los contenidos basta con ir a la pestaña de traducción, en la que nos aparecerán los idiomas del sitio a los que traducir el contenido y una columna llamada AI Translations con un enlace para traducir utilizando el modelo que hayamos especificado en la configuración del módulo.
Clicando en un enlace la IA traduce el contenido, de forma que solo hay que revisar la traducción después. El proceso podemos verlo en el siguiente vídeo:
Generación de imágenes
Además de texto, es posible generar imágenes para nuestros contenidos. Para ello, podemos usar el módulo Image Genie AI, que utiliza los modelos DALL·E de OpenAI para transformar descripciones textuales en imágenes. Podemos elegir entre diferentes versiones del modelo, como DALL·E 2 y DALL·E 3. La diferencia entre ambos es que DALL·E3 es más avanzado en cuanto a sus capacidades, pero también más costoso.
Instalación y configuración
Para comenzar, instalaremos y activaremos el módulo Image Genie AI:
composer require 'drupal/ai_image_generation:^1.0';
drush en ai_image_generation
Antes de continuar, y específicamente si se usan claves de API de OpenAI, es necesario aplicar dos parches para corregir dos issues.
El primer parche es necesario porque las claves de API actuales de OpenAI son de 164 caracteres pero el formulario de configuración del módulo solo acepta 128 caracteres. El segundo parche corrige un problema al exportar la configuración del módulo.
Una vez aplicados los parches, accedemos a la configuración del módulo (/admin/content/ai_image_generation_settings), y añadimos el identificador de organización y la clave de API de nuestra cuenta de OpenAI, con lo que tendríamos listo el módulo.
Ejemplo de uso
Con esto ya podremos empezar el módulo y generar imágenes en nuestro Drupal. A continuación se muestra un ejemplo de uso:
Configuración de permisos
Es posible establecer quién puede acceder y utilizar las diferentes funcionalidades basadas en IA mediante los muchos permisos que el módulo Drupal AI declara. Por ejemplo, podemos permitir que solo los editores o administradores tengan acceso a estas herramientas avanzadas, que sería lo lógico si se quiere controlar el coste que puede generar el uso intensivo de los servicios de IA.
En otros casos podría por ejemplo hacer disponible el servicio de traducción a todos los usuarios. Pongamos una plataforma de blogs con acceso por suscripción, de forma que el coste de uso de la IA estuviese cubierto.
Conclusión
La integración de la inteligencia artificial en Drupal abre un mundo de posibilidades para mejorar la gestión y creación de contenido. Esta integración no solo optimiza el flujo de trabajo editorial, también coloca al proyecto que lo use en la vanguardia tecnológica en cuanto a la gestión de contenidos gracias a las nuevas capacidades que ofrecen las soluciones basadas en inteligencia artificial.
Mediante el módulo Drupal AI es sencillo integrar estas capacidades, como ha podido verse en este artículo. Pese a que los módulos usados no están maduros como para usarlos en producción con total confianza, la realidad es que ya ofrecen funcionalidades muy útiles. Las pruebas que hemos realizado en Metadrop indican que sí ofrecen un grado de estabilidad razonable para ser usados en proyectos que no sean altamente críticos. Y creemos que no tardarán en ser lo suficientemente estables como para ser usados en otros proyectos.