Visión general¶
Resumen¶
Esta página explica, para quienes administran el servidor, las funciones de inteligencia artificial de la plataforma base: qué apps las aportan y cómo se clasifican según la clasificación de IA ética, qué apps las usan, cómo acelerar la recogida de las tareas de IA con workers y por qué una instrucción puede ser lenta. En APS Conecta Gestión esto difiere, como indica el aviso al inicio del texto traducido.
Fuente: documentación de Nextcloud, «admin_manual/ai/overview», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
En APS Conecta Gestión esto difiere
Nextcloud se esfuerza por llevar funciones de inteligencia artificial a APS Conecta Gestión. Esta sección destaca estas funciones, cómo funcionan y dónde encontrarlas. Todas estas funciones son completamente opcionales. Si se quieren tener en el servidor, hay que instalarlas mediante apps de APS Conecta Gestión independientes.
Visión general de las funciones de IA¶
APS Conecta Gestión usa la modularidad para separar la funcionalidad de IA en bruto de las interfaces gráficas de usuario y de las apps que usan esa funcionalidad. Así, cada instancia puede usar varios backends que aportan la funcionalidad a los mismos frontends, y la misma funcionalidad puede implementarse en varias apps que usan procesamiento en las instalaciones propias o proveedores externos de servicios de IA.
Función |
App |
Clasificación |
Código abierto |
Modelo disponible libremente |
Datos de entrenamiento disponibles libremente |
Privacidad: mantiene los datos en las instalaciones propias |
|---|---|---|---|---|---|---|
Bandeja de entrada inteligente |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Reconocimiento de objetos en imágenes |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Reconocimiento facial en imágenes |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Reconocimiento de acciones en vídeo |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Reconocimiento del género musical en audio |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Detección de inicios de sesión sospechosos |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Recursos relacionados |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Archivos recomendados |
recommended_files |
Verde |
Sí |
Sí |
Sí |
Sí |
Procesamiento de texto con LLM |
Verde |
Sí |
Sí - modelo Llama 3.1 de Meta |
Sí |
Sí |
|
Rojo |
No |
No |
No |
No |
||
Amarillo |
Sí |
Sí - p. ej., modelos Llama de Meta |
No |
Sí |
||
Amarillo |
Sí |
Sí - p. ej., modelos Llama de Meta |
No |
Sí |
||
OpenAI and LocalAI integration (mediante IONOS AI Model Hub) |
Naranja |
No |
Sí |
No |
No |
|
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
IBM watsonx.ai integration (mediante IBM watsonx.ai como servicio) |
Naranja |
No |
Sí - p. ej., modelos Granite de IBM |
No |
No |
|
IBM watsonx.ai integration (mediante el software IBM watsonx.ai) |
Naranja |
No |
Sí - p. ej., modelos Granite de IBM |
No |
Sí |
|
Traducción automática |
Verde |
Sí |
Sí - modelos MADLAD de Google |
Sí |
Sí |
|
Rojo |
No |
No |
No |
No |
||
Rojo |
No |
No |
No |
No |
||
Verde |
Sí |
Sí |
Sí |
Sí |
||
Amarillo |
Sí |
Sí - p. ej., modelos Llama de Meta |
No |
Sí |
||
OpenAI and LocalAI integration (mediante IONOS AI Model Hub) |
Naranja |
No |
Sí |
No |
No |
|
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Voz a texto |
Amarillo |
Sí |
Sí - modelos Whisper de OpenAI |
No |
Sí |
|
Amarillo |
Sí |
Sí - modelos Whisper de OpenAI |
No |
No |
||
Verde |
Sí |
Sí |
Sí |
Sí |
||
Amarillo |
Sí |
Sí - p. ej., Whisper |
No |
Sí |
||
OpenAI and LocalAI integration (mediante IONOS AI Model Hub) |
Naranja |
No |
Sí |
No |
No |
|
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Amarillo |
Sí |
Sí - modelos Whisper de OpenAI |
No |
No |
||
Generación de imágenes |
Amarillo |
Sí |
Sí - modelo StableDiffusion XL de StabilityAI |
No |
Sí |
|
Amarillo |
Sí |
Sí - modelos StableDiffusion de StabilityAI |
No |
No |
||
Rojo |
No |
No |
No |
No |
||
Verde |
Sí |
Sí |
Sí |
Sí |
||
Amarillo |
Sí |
Sí - p. ej., modelos Llama de Meta |
No |
Sí |
||
OpenAI and LocalAI integration (mediante IONOS AI Model Hub) |
Naranja |
No |
Sí |
No |
No |
|
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Naranja |
No |
Sí |
No |
No |
||
Context Chat |
Amarillo |
Sí |
Sí |
No |
Sí |
|
Amarillo |
Sí |
Sí |
No |
Sí |
||
Búsqueda de Context Chat |
Amarillo |
Sí |
Sí |
No |
Sí |
|
Context Agent |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Texto a voz |
Rojo |
No |
No |
No |
No |
|
Amarillo |
Sí |
Sí |
No |
Sí |
||
Generación de documentos |
Verde |
Sí |
Sí |
Sí |
Sí |
|
Transcripción en directo |
Amarillo |
Sí |
Sí |
No |
Sí |
Clasificación de IA ética¶
Hasta Hub 3, Nextcloud logró ofrecer funciones sin depender de blobs propietarios ni de servicios de terceros. Sin embargo, aunque existe una gran comunidad que desarrolla tecnologías éticas, seguras y respetuosas con la privacidad, hay muchas otras tecnologías relevantes que los usuarios podrían querer usar. Nextcloud quiere ofrecer a los usuarios estas tecnologías de vanguardia, pero también ser transparente. Para algunos casos de uso, ChatGPT puede ser una solución razonable, mientras que para datos más privados, profesionales o sensibles es primordial contar con una solución local, en las instalaciones propias y abierta. Para diferenciarlas, Nextcloud desarrolló una clasificación de IA ética (Ethical AI Rating).
La clasificación tiene cuatro niveles:
Rojo
Naranja
Amarillo
Verde
Se basa en puntos de estos factores:
¿El software (tanto el de inferencia como el de entrenamiento) tiene una licencia libre y de código abierto?
¿El modelo entrenado está disponible libremente para el autoalojamiento?
¿Los datos de entrenamiento están disponibles y son de uso libre?
Si se cumplen todos estos puntos, se otorga una etiqueta verde. Si no se cumple ninguno, es roja. Si se cumple 1 condición, es naranja, y si se cumplen 2 condiciones, amarilla.
Funciones usadas por otras apps¶
Algunas de las funciones de IA de Nextcloud se realizan como API genéricas que cualquier app puede usar y para las que cualquier app puede aportar una implementación registrando un proveedor. Hasta ahora, son la traducción automática, la voz a texto, el texto a voz, la generación de imágenes, el procesamiento de texto y Context Chat.
Procesamiento de texto¶
Como se ve en la tabla anterior, hay varias apps que ofrecen procesamiento de texto con modelos de lenguaje de gran tamaño. En las apps que lo consumen, como Context Chat y el asistente, los usuarios pueden usar la funcionalidad de procesamiento de texto independientemente de qué app la implemente internamente.
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica para las distintas tareas, un selector inteligente y la funcionalidad «Chat with AI»
Mail para resumir hilos de correo (cómo activarlo se explica en la documentación de Nextcloud Mail)
Summary Bot para resumir historiales de chat en Talk
Talk para resumir el historial de chat (cómo activarlo se explica en la documentación de Nextcloud Talk)
Text para ofrecer una interfaz gráfica integrada en el texto para las distintas tareas
Collectives, que integra el asistente mediante el selector inteligente para ofrecer una interfaz gráfica para las distintas tareas
Notes, que integra el asistente mediante el selector inteligente para ofrecer una interfaz gráfica para las distintas tareas
Deck, que integra el asistente mediante el selector inteligente para ofrecer una interfaz gráfica para las distintas tareas
Nextcloud Office, que integra el asistente mediante el selector inteligente para ofrecer una interfaz gráfica para las distintas tareas en los documentos
Clientes de escritorio para un «Chat with AI» sencillo
Apps de backend¶
llm2 - Ejecuta modelos LLM de IA de código abierto en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
IBM watsonx.ai integration (mediante IBM watsonx.ai como servicio) - Se integra con la API de IBM watsonx.ai para aportar funcionalidad de IA desde los servidores de IBM Cloud (soporte al cliente disponible previa solicitud; ver IA como servicio)
Traducción automática¶
Como se ve en la tabla anterior, hay varias apps que ofrecen capacidades de traducción automática. Cada app aporta su propio conjunto de idiomas admitidos. En las apps que la consumen, como la app Text, los usuarios pueden usar la funcionalidad de traducción independientemente de qué app la implemente internamente.
Apps de frontend¶
Assistant, que ofrece una interfaz gráfica de traducción
Analytics para traducir las etiquetas de los gráficos
Talk para traducir mensajes y para traducciones en directo en las llamadas, junto con la app Live Transcription
Deck para ofrecer una interfaz de traducción en la descripción de las tarjetas
Text para ofrecer el menú de traducción
Notes para ofrecer una interfaz de traducción en el contenido de las notas
Collectives para ofrecer una interfaz de traducción en el contenido de las páginas
Nextcloud Office para ofrecer una interfaz de traducción en el contenido de los documentos
Apps de backend¶
translate2 (ExApp) - Ejecuta modelos de traducción de IA de código abierto localmente en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
DeepL integration - Se integra con la API de deepl para aportar funcionalidad de traducción desde los servidores de Deepl.com (solo con soporte de la comunidad)
Voz a texto¶
Como se ve en la tabla anterior, hay varias apps que ofrecen capacidades de voz a texto. En las apps que la consumen, como la app Talk, los usuarios pueden usar la funcionalidad de transcripción independientemente de qué app la implemente internamente.
Apps de frontend¶
Assistant, que ofrece una interfaz gráfica de traducción, un selector inteligente y chat de audio
Talk para transcribir llamadas (cómo activarlo se explica en la documentación de Nextcloud Talk)
Apps de backend¶
stt_whisper2 - Ejecuta modelos de IA de voz a texto de pesos abiertos en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
Generación de imágenes¶
Como se ve en la tabla anterior, hay varias apps que ofrecen capacidades de generación de imágenes. En las apps que la consumen, como la app auxiliar Text-to-Image, los usuarios pueden usar la funcionalidad de generación de imágenes independientemente de qué app la implemente internamente.
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica y un selector inteligente
Deck para insertar imágenes con el selector inteligente
Text para insertar imágenes con el asistente y el selector inteligente
Notes para insertar imágenes con el asistente y el selector inteligente
Collectives para insertar imágenes con el asistente y el selector inteligente
Nextcloud Office para insertar imágenes con el asistente y el selector inteligente
Apps de backend¶
Local Stable Diffusion 2 (ExApp) (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
integration_replicate - Se integra con la API de replicate para aportar funcionalidad de IA desde los servidores de replicate (ver IA como servicio)
Texto a voz¶
Como se ve en la tabla anterior, hay varias apps que ofrecen capacidades de generación de voz. En las apps que la consumen, como la app del asistente, los usuarios pueden usar la funcionalidad de generación de voz independientemente de qué app la implemente internamente.
Apps de frontend¶
Assistant para ofrecer un chat de audio
Apps de backend¶
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
Local Text To Speech (ExApp) (soporte al cliente disponible previa solicitud)
Context Chat¶
La función Context Chat de Nextcloud se introdujo en Nextcloud Hub 7 (v28). Permite hacer preguntas al asistente sobre los propios documentos en APS Conecta Gestión. Hay que instalar tanto la app context_chat como la app externa context_chat_backend. Conviene estar preparado para que algunas cosas fallen o estén algo por pulir. ¡Nextcloud espera con interés los comentarios!
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica para las tareas de Context Chat
Nextcloud Context Agent para ofrecer Context Chat como herramienta que el agente puede ejecutar en la función «Chat with AI»
Apps de backend¶
context_chat + context_chat_backend - (soporte al cliente disponible previa solicitud)
Apps proveedoras¶
Las apps pueden integrar su contenido con Context Chat para que pueda consultarse con Context Chat. Hasta ahora, las siguientes apps han implementado esta integración:
Búsqueda de Context Chat¶
La función de búsqueda de Context Chat de Nextcloud permite buscar en los propios documentos con lenguaje natural. Hay que instalar tanto la app context_chat como la app externa context_chat_backend. ¡Nextcloud espera con interés los comentarios!
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica para las tareas de búsqueda de Context Chat
Apps de backend¶
context_chat + context_chat_backend - (soporte al cliente disponible previa solicitud)
Apps proveedoras¶
Ver la sección Context Chat anterior.
Context Agent¶
La función Context Agent de Nextcloud se introdujo en Nextcloud Hub 9 (v30). Permite pedir al asistente que ejecute tareas relacionadas con APS Conecta Gestión. Hay que instalar tanto la app context_agent como un proveedor de procesamiento de texto.
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica para la función «Chat with AI»
Apps de backend¶
Nextcloud Context Agent para capacidades de IA agéntica en la función «Chat with AI» (soporte al cliente disponible previa solicitud)
Apps proveedoras¶
llm2 - Ejecuta modelos LLM de IA de código abierto en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
Generación de documentos¶
Desde Hub 11 puede hacerse que APS Conecta Gestión genere automáticamente documentos de Office con contenido. Esta funcionalidad está disponible en la app del asistente y es posible gracias a la app Nextcloud Office.
Apps de frontend¶
Assistant para ofrecer una interfaz gráfica para las tareas de búsqueda de Context Chat
Apps de backend¶
Apps proveedoras¶
llm2 - Ejecuta modelos LLM de IA de código abierto en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
OpenAI and LocalAI integration (mediante la API de OpenAI) - Se integra con la API de OpenAI para aportar funcionalidad de IA desde los servidores de OpenAI (soporte al cliente disponible previa solicitud; ver IA como servicio)
IBM watsonx.ai integration (mediante IBM watsonx.ai como servicio) - Se integra con la API de IBM watsonx.ai para aportar funcionalidad de IA desde los servidores de IBM Cloud (soporte al cliente disponible previa solicitud; ver IA como servicio)
Transcripción en directo¶
Desde Hub 25 Autumn puede hacerse que APS Conecta Gestión genere automáticamente subtítulos para las videollamadas y las llamadas de audio en Nextcloud Talk.
Apps de frontend¶
Talk para mostrar los subtítulos en las llamadas
Apps de backend¶
live_transcription - Ejecuta modelos de IA de voz a texto de pesos abiertos en el hardware del propio servidor (soporte al cliente disponible previa solicitud)
Flujos de trabajo de Windmill¶
Los endpoints de IA pueden usarse en los flujos de trabajo de Windmill. En el Windmill Hub hay algunos flujos de trabajo de ejemplo que muestran las posibilidades de combinar los flujos de trabajo de Windmill con la IA de APS Conecta Gestión.
Acelerar la recogida de las tareas de IA¶
La mayoría de las tareas de IA se ejecutan como parte del sistema de trabajos en segundo plano de APS Conecta Gestión, que de forma predeterminada solo ejecuta trabajos cada 5 minutos. Para recoger antes los trabajos programados, pueden configurarse workers de trabajos en segundo plano dentro del servidor o contenedor principal de APS Conecta Gestión que procesen las tareas de IA en cuanto se programan. Si el código PHP o los valores de configuración de APS Conecta Gestión cambian mientras un worker está en ejecución, esos cambios no surtirán efecto dentro del ejecutor. Por eso, el worker debe reiniciarse periódicamente. Esto se hace con un tiempo de espera de N segundos, lo que significa que cualquier cambio en la configuración o en el código se aplicará al cabo de N segundos (en el peor de los casos). Este tiempo de espera no afecta en modo alguno al procesamiento ni al tiempo de espera de las tareas de IA.
Cambiado en la versión 32.0.7: El comando para ejecutar el worker cambió de background-job:worker a taskprocessing:worker. Si se usa una versión anterior de APS Conecta Gestión, usar el comando antiguo.
Sesión de screen o tmux¶
Ejecutar el siguiente comando occ dentro de una sesión de screen o tmux, preferiblemente 4 o más veces, para procesar en paralelo varias solicitudes de usuarios distintos o del mismo usuario (y como requisito de algunas apps, como context_chat). Lo mejor es ejecutar un comando por sesión de screen o por ventana o panel de tmux, para mantener los registros visibles y el worker fácil de reiniciar.
set -e; while true; do sudo -E -u www-data php occ taskprocessing:worker -v -t 60; done
Para Nextcloud-AIO, usar este comando en el servidor anfitrión.
set -e; while true; do docker exec -it nextcloud-aio-nextcloud sudo -E -u www-data php occ taskprocessing:worker -v -t 60; done
Puede ajustarse el número de workers y el tiempo de espera (en segundos) según las necesidades. Los registros del worker pueden consultarse conectándose a la sesión de screen o tmux.
Servicio de systemd¶
Crear un archivo de servicio de systemd en
/etc/systemd/system/nextcloud-ai-worker@.servicecon el siguiente contenido:
[Unit]
Description=Nextcloud AI worker %i
After=network.target
[Service]
ExecStart=/opt/nextcloud-ai-worker/taskprocessing.sh %i
Restart=always
StartLimitInterval=60
StartLimitBurst=10
[Install]
WantedBy=multi-user.target
Crear un script de shell en
/opt/nextcloud-ai-worker/taskprocessing.shcon el siguiente contenido y asegurarse de hacerlo ejecutable:
#!/bin/sh
echo "Starting Nextcloud AI Worker $1"
cd /path/to/nextcloud
sudo -E -u www-data php occ taskprocessing:worker -v -t 60
Puede ajustarse el tiempo de espera según las necesidades (en segundos).
Activar e iniciar el servicio 4 o más veces:
for i in {1..4}; do systemctl enable --now nextcloud-ai-worker@$i.service; done
El estado de los workers puede comprobarse con (sustituir 1 por el número del worker):
systemctl status nextcloud-ai-worker@1.service
La lista de workers puede comprobarse con:
systemctl list-units --type=service | grep nextcloud-ai-worker
Los registros completos de los workers pueden consultarse con (sustituir 1 por el número del worker):
journalctl -xeu nextcloud-ai-worker@1.service -f
Preguntas frecuentes¶
¿Por qué es lenta mi instrucción?¶
Los motivos de un rendimiento lento desde la perspectiva del usuario pueden ser
Usar procesamiento por CPU en lugar de GPU (a veces este límite lo impone la app usada)
Alta demanda de la función por parte de los usuarios: las instrucciones de los usuarios y las tareas de IA suelen procesarse en el orden en que se reciben, lo que puede causar retrasos cuando muchos usuarios acceden a estas funciones al mismo tiempo.