Nextcloud ha presentado recientemente Nextcloud Assistant, una herramienta que define un punto de entrada centralizado para que el usuario haga uso de las funciones de Inteligencia Artificial (IA) de la plataforma.
Este artículo ofrece una visión general de esta herramienta y proporciona pasos de alto nivel para ponerla en funcionamiento, utilizando un servicio LocalAI.
Resumen de la configuración
A alto nivel, la configuración es un proceso de cuatro fases:
- Configurar el servicio LocalAI
- Configurar Nextcloud Assistant
- Configurar la sección de Inteligencia Artificial
- Probarlo
Entorno de software
Este es el entorno de software local que hemos utilizado:
- Servidor Nextcloud:
29.0.0
- LocalAI:
2.15.0
- Nextcloud Assistant:
1.0.9
- Sistema operativo:
Ubuntu Server 22.04.4 LTS
Conceptos
Introduzcamos algunos conceptos importantes antes de iniciar el procedimiento de configuración.
Proveedor de inteligencia artificial (IA)
Necesitas un proveedor de inteligencia artificial (IA) para hacer uso de las funciones de IA en tu instancia de Nextcloud a través de Nextcloud Assistant. Por el momento, los proveedores de IA compatibles con Nextcloud Assistant son
- OpenAI, un servicio en la nube operado por la empresa estadounidense Open AI
- LocalAI, un servicio gratuito y de código abierto que se puede implementar in situ, descrito en la página principal del proyecto como "una API REST de sustitución directa compatible con las especificaciones de la API OpenAI para inferencias locales".
Este artículo se centra en cómo configurar el Asistente Nextcloud con un servicio LocalAI.
Cuentas Conectadas
En general, cuando integras un servicio externo en Nextcloud, como Mastodon, Github o Jira, tendrás que instalar la app y configurar su conexión y autenticación en los ajustes de Cuentas Conectadas.
La integración debe ser habilitada y configurada globalmente (es decir, en toda la instancia) por el administrador y, dependiendo del tipo de integración, el usuario podrá personalizar algunos aspectos para su propio uso.
Nextcloud Assistant se gestiona como una Cuenta Conectada ya que es, en esencia, un puente que permite a su instancia Nextcloud "hablar" con un proveedor de IA.
Capacidad de IA
Las capacidades de IA son las categorías de tareas en las que el proveedor de IA puede ayudarte. Las capacidades que actualmente están expuestas en Nextcloud Assistant son las siguientes:
- Traducción automática
- Dictado a texto (o transcripción)
- Generación de imágenes
- Procesamiento de texto (prompt, resumen, generación de titular y reformulación)
Configurar el servicio LocalAI
Existen diferentes opciones para desplegar el servicio LocalAI. Lee la página de quickstart del proyecto para más detalles. En este artículo vamos a utilizar el método denominado "From binary" en esa página.
Descarga el binario del repositorio de versiones, en nuestro caso es local-ai-Linux-x86_64
, y colócalo en una carpeta adecuada, por ejemplo /opt/local-ai/
.
NOTA: Si quieres generar imágenes, tendrás que compilar el binario local-ai por ti mismo. Según nuestras pruebas, no parece una tarea trivial.
En nuestro caso, también vamos a cambiarle el nombre a local-ai
, para que nuestros listados de código sean más limpios.
Crea un servicio systemd para local-ai, llamado local-ai
:
$ vim /etc/systemd/system/local-ai.service [Unit] Description = Service for LocalAI, the free, Open Source OpenAI alternative Documentation = https://localai.io/ [Service] EnvironmentFile = /etc/local-ai/local-ai.env ExecStart = /opt/local-ai/local-ai run [Install] WantedBy = multi-user.target
Crea un archivo de definición de las variables de entorno relacionadas con el servicio:
$ vim /etc/local-ai/local-ai.env
LOCALAI_MODELS_PATH=/etc/local-ai/models
LOCALAI_API_KEY=your-api-key
NOTA: Se recomienda establecer el parámetro LOCALAI_API_KEY para mejorar la seguridad. Sin embargo es posible que no puedas acceder a la interfaz web desde un navegador si lo estableces (ver #2227). Si necesitas acceder a la interfaz web, por ejemplo porque necesitas descargar algunos modelos, simplemente coméntalo y reinicia el servicio.
Crea una carpeta para los modelos:
$ mkdir /etc/local-ai/models
Luego ejecuta:
$ systemctl daemon-reload
$ systemctl enable locali
$ systemctl start local-ai
Y comprueba que el servicio está en marcha:
$ systemctl status local-ai
El siguiente paso es conectarse a la interfaz web y descargar algunos modelos. Si no has cambiado el puerto, la interfaz web está disponible en localhost:8080
. Podrás acceder a la galería de modelos haciendo clic en Modelos en el menú superior.
En nuestro caso hemos descargado el modelo llamado llava-1.6-vicuna
(página del proyecto: https://llava-vl.github.io/). En general, es importante comprobar el tamaño de un modelo, pero no es trivial saberlo de antemano. Por eso, es una buena idea colocar los modelos en una partición dedicada y controlar su capacidad utilizada. Por ejemplo, este modelo concreto pesa unos 5G en disco.
El punto sobre los requisitos de los modelos en cuanto al consumo de recursos de hardware no se limita al almacenamiento. Cuando llega la primera solicitud de inferencia, el modelo se carga en la memoria y se utilizan todos los hilos disponibles en el sistema para realizar la operación. Puede que quieras ajustar el número de hilos para encontrar el equilibrio adecuado entre rendimiento y estabilidad del sistema. Pero, en general, tiene sentido disponer de un sistema dedicado a este servicio.
Configurar Nextcloud Assistant
Ve a la App Store y busca "asistente". Selecciona la aplicación Nextcloud Assistant y habilítala. Una vez activada, actualiza la página y deberías ver el icono de la aplicación disponible en la parte derecha de la barra superior, justo a la izquierda del icono de Búsqueda.
ajustes/admin/cuentas-conectadas
) y selecciona la cuenta para "Integración de OpenAI y LocalAI". A continuación, rellena Service URL
y Service name
(opcional, pero recomendado).LOCALAI_API_KEY
en el archivo de entorno LocalAI, entonces tienes que poner el mismo valor en el campo API Key
, sección Autenticación. Si no lo hiciste, entonces, puedes dejarlo vacío.Las opciones bajo Límites de uso no son aplicables para LocalAI, ya que LocalAI no las admite por el momento. Esto está bien, ya que el servicio está pensado para ser local y estar bajo tu control, pero esperamos que estas funciones estén disponibles en el futuro para LocalAI.
El modelo de IA puede configurarse seleccionando el endpoint de generación de texto, el modelo por defecto a utilizar y si quieres pasar parámetros adicionales. Si el modelo por defecto no tiene la capacidad necesaria para realizar la tarea, el sistema seleccionará otro que esté disponible y tenga la capacidad. Si no hay ningún modelo disponible para esa capacidad, las tareas de este tipo fallarán. Como mejora de la interfaz de usuario, sería estupendo tener la posibilidad de seleccionar el modelo predeterminado por capacidad, de forma similar a lo que se hace en la sección Inteligencia Artificial.
La lista de modelos entre los que elegir el predeterminado sólo se muestra aquí si se puede establecer una conexión satisfactoria con la URL del servicio, por lo que debes asegurarte de que tu servicio LocalAI está en funcionamiento cuando configures estos ajustes.
Por último, también puedes seleccionar en qué capacidades de IA debe utilizarse el servicio.
Configurar Sección Inteligencia Artificial
Para cada capacidad tendrás que especificar el proveedor. Para completar esta tarea ve a la sección ajustes/admin/ai. Lo que verás aquí depende de si tienes otros proveedores para una o varias de las capacidades. Por ejemplo, si instalaste y configuraste la aplicación Traducir, y tu servicio LocalAI también expone esta capacidad, tendrás que decidir cuál es el proveedor de traducción automática.
Estas son las capacidades disponibles:
- Traducción automática
- Dictado a texto
- Generación de imágenes
- Procesamiento de texto (prompt, resumen, generación de titular y reformulación)
Si te desplazas hasta la parte inferior, encontrarás también algunos cheboxes relacionados con el lugar de la interfaz de usuario en el que quieres que esté disponible el asistente: la barra superior y varias opciones relacionadas con el selector inteligente.
La ubicación de exposición que dejes habilitada puede ser deshabilitada por el usuario. Sin embargo, el usuario no puede habilitar una ubicación que tú hayas deshabilitado.
Pruébalo
Desde la barra superior
Si has seguido las instrucciones hasta ahora, ya deberías estar preparado para pedir al Asistente Nextcloud que ejecute alguna tarea por ti, empezando por invocarlo desde la barra superior.
Al hacer clic en el icono, aparece una ventana emergente en la que puedes elegir la tarea (generar texto, escritura contextual, resumir...) y dar al asistente la entrada para la tarea. La entrada puede escribirse o tomarse de un documento disponible en la instancia.
Al iniciar la tarea también se te ofrecerá la opción de ejecutarla en segundo plano.
Si eliges esta opción, tu tarea se inserta en la cola del programador de tareas en segundo plano y se te notificará mediante el sistema estándar de notificaciones de Nextcloud cuando tu resultado esté listo. Al hacer clic en la notificación, podrás recuperar el resultado y realizar otras acciones significativas, como copiar el resultado en el portapapeles, repetir la tarea y revisar tus interacciones recientes similares con el asistente.
Dentro de Nextcloud Text
Nextcloud Assistant también está disponible en Nextcloud Text. Lo encontrarás en la parte derecha de tu área de edición, con las mismas opciones que en la barra superior, pero con algunas acciones del usuario contextualizadas, como la posibilidad de insertar los resultados en el texto del documento.
Además, el asistente puede evocarse como una opción del Selector Inteligente, tecleando /
.
Por último, si configuraste el proveedor de IA para traducción automática para que fuera el accesible a través de tu servicio LocalAI, la función de traducción también lanzará una petición al modelo disponible en ese backend, cuando se utilice.
Es importante mencionar que Nextcloud Text no es sólo el editor por defecto para trabajar con archivos Markdown y de texto plano, sino el motor de edición de otras apps clave de Nextcloud, como Nextcloud Deck, Nextcloud Notes y Nextcloud Collectives. Con esta observación, nos gustaría destacar que las mismas funcionalidades estarán disponibles para estas apps sin ninguna configuración adicional.
Dentro de Nextcloud Talk
Nextcloud Assistant también está disponible en Nextcloud Talk, en dos modalidades: a través del Selector Inteligente o como proveedor de traducción.
El Selector Inteligente se puede activar escribiendo /ai
: se te ofrece transcribir una grabación de audio o generar un texto.
Si nos centramos en la tarea de transcripción de audio, primero se nos ofrece grabar o elegir un archivo de audio que queramos transcribir.
A continuación, se programa la tarea y se nos notifica cuándo están listos los resultados:
Por mencionar un caso de uso, la transcripción de audio es útil cuando recibimos un mensaje de voz que no podemos reproducir en ese mismo momento (por ejemplo, estamos en un tren sin auriculares): en su lugar, recuperamos el archivo del mensaje de voz, se lo damos al asistente y lo leemos cuando el resultado esté listo.
Aparte de las funciones disponibles mediante el Selector Inteligente, de forma similar a lo que ocurre en Texto, también podemos traducir un mensaje mediante traducción automática, seleccionando la opción correspondiente en el menú de tres puntos de un mensaje.
Conclusión
A medida que la Inteligencia Artificial se generaliza y los usuarios esperan disponer de funciones relacionadas con la IA en sus aplicaciones web, ya sean utilizadas en un contexto empresarial o privado, es importante desarrollar una comprensión de las opciones disponibles para desplegar esos servicios habilitadores de la IA. El Asistente Nextcloud es probablemente la integración más destacada que abre una vía estructurada para que los proveedores de IA ofrezcan sus funciones en un entorno de colaboración de contenidos. Este artículo se ha centrado en el proveedor LocalAI, que puede desplegarse en las instalaciones, lo que proporciona un mayor control sobre el cumplimiento y la gestión de los datos de los usuarios, ambos de suma importancia para un lugar de trabajo digital seguro y de confianza.
Sin tocar otros temas cruciales y complejos, como la evaluación de la calidad de los resultados basada en la IA y cómo la introducción de esta tecnología cambia la forma en que los usuarios colaboran en la plataforma, esperamos haberte proporcionado una útil introducción práctica a esta integración.
No dudes en ponerte en contacto con nuestro equipo para realizar cualquier consulta u observación relativa a este artículo. Estamos aquí para ayudarte con la implementación de servicios básicos y avanzados relacionados con la plataforma de Nextcloud.