Skip to content
BotServBotServ
NextcloudOllamaIntegraciónDocumentosIA

Integrar Nextcloud con Ollama

Integra Nextcloud con Ollama para resumen de documentos, búsqueda inteligente, etiquetado automático y ejemplos prácticos.

S

schutzgeist

6 min read
Integrar Nextcloud con Ollama

Integrar Nextcloud con Ollama

Qué cubre este artículo

  • Cómo conectar Nextcloud con Ollama.
  • Cómo funcionan el resumen de documentos, la búsqueda inteligente y el etiquetado automático.
  • Cómo usar aplicaciones de Nextcloud y scripts personalizados con Ollama.
  • Casos prácticos para procesamiento de documentos, búsqueda de conocimiento y automatización.
  • Buenas prácticas para rendimiento, seguridad y privacidad.

Introducción: Nextcloud con Ollama explicado

Nextcloud es una nube auto-alojada para archivos, calendario, contactos y más. Ollama es un servidor de modelos de IA local. Cuando integras ambos, puedes procesar documentos en Nextcloud con IA: resumirlos automáticamente, buscar de forma inteligente, asignar etiquetas, todo localmente, sin depender de la nube.

Este artículo va dirigido a usuarios que quieren ampliar Nextcloud con IA local. Deberías entender cómo funciona Nextcloud y cómo se ejecuta Ollama. Encontrarás fundamentos de programación en Python en IRC-Coding.de.

¿Por qué necesito Nextcloud con Ollama?

Imagina que tienes cientos de documentos en Nextcloud: contratos, informes, facturas. Quieres buscarlos, resumirlos, clasificarlos. Sin IA tendrías que leer cada documento manualmente. Con Ollama en Nextcloud, la IA lo hace automáticamente, localmente, sin que los documentos salgan de tu servidor.

Nextcloud con Ollama en síntesis

Nextcloud almacena documentos, Ollama los procesa con IA. La integración se hace mediante aplicaciones de Nextcloud, scripts personalizados o webhooks. Todos los datos permanecen locales.

La idea central es simple: Nextcloud almacena, Ollama comprende.

Para quién está dirigido este artículo

  • Usuarios de Nextcloud que quieren funcionalidades de IA.
  • Auto-alojadores que desean ampliar Nextcloud con IA.
  • Empresas que necesitan procesar documentos automáticamente.
  • Equipos que quieren automatizar la gestión del conocimiento.

Conocimientos previos de Nextcloud y Ollama son útiles.

Conceptos clave

  • Nextcloud - Nube auto-alojada. Útil para: gestión de documentos.
  • Ollama - Servidor de modelos local. Útil para: el backend de IA.
  • Aplicación Nextcloud - Extensión para Nextcloud. Útil para: integración nativa.
  • Webhook - Callback HTTP. Útil para: procesamiento impulsado por eventos.
  • RAG - Generación aumentada por recuperación. Útil para: búsqueda inteligente.
  • Embeddings - Representaciones vectoriales. Útil para: búsqueda semántica.
  • Docker - Contenedores. Útil para: ambos servicios.

Métodos de integración

1. Aplicaciones de Nextcloud

Hay aplicaciones comunitarias que integran Ollama en Nextcloud:

  • Nextcloud Assistant: Asistente de IA para Nextcloud.
  • Nextcloud Talk IA: IA integrada en Nextcloud Talk.
  • Nextcloud Mail IA: IA para procesamiento de correo.

2. Scripts personalizados

Escribes tus propios scripts que se invocan en eventos específicos:

# Al crear nuevo documento: generar resumen
# nextcloud-occ files:scan --path="/user/files/dokumente" --post-process

3. Webhooks

Nextcloud puede enviar webhooks cuando ocurren eventos:

# Configuración de webhooks en Nextcloud
webhook:
  - event: "file.created"
    url: "http://localhost:8000/process-document"

4. Aplicación Flow

Nextcloud Flow es una herramienta de flujo de trabajo dentro de Nextcloud:

# Flow: Nuevo documento → Ollama → Etiquetas
trigger: file.created
actions:
  - ollama_summarize
  - add_tags

Configuración con Docker Compose

version: "3.8"

services:
  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - nextcloud_data:/var/www/html
      - ./apps:/var/www/html/custom_apps
    networks:
      - ai-network

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    networks:
      - ai-network

volumes:
  nextcloud_data:
  ollama_data:

networks:
  ai-network:
    driver: bridge

Caso práctico 1: Resumen de documentos

# Script: Crear resumen al cargar un documento
import requests

def on_document_created(file_path, file_id):
    """Se ejecuta cuando se crea un nuevo documento"""
    # 1. Leer documento desde Nextcloud
    response = requests.get(
        f"http://nextcloud/remote.php/dav/files/user/{file_path}",
        auth=("user", "password")
    )
    content = response.text

    # 2. Resumir con Ollama
    summary = call_ollama([
        {"role": "system", "content": "Fasse en 3 oraciones."},
        {"role": "user", "content": content[:4000]}
    ])

    # 3. Guardar resumen como comentario
    add_comment(file_id, summary["message"]["content"])

Caso práctico 2: Búsqueda inteligente con RAG

def semantic_search(query):
    """Búsqueda semántica en documentos de Nextcloud"""
    # 1. Crear embedding de la consulta
    query_embedding = get_embedding(query)

    # 2. Buscar documentos similares
    results = vector_db.search(query_embedding, limit=5)

    # 3. Construir contexto
    context = "\n".join(r.content for r in results)

    # 4. Generar respuesta
    response = call_ollama([
        {"role": "system", "content": "Responde basándote en los documentos."},
        {"role": "user", "content": f"Documentos:\n{context}\n\nPregunta: {query}"}
    ])
    return response["message"]["content"]

Caso práctico 3: Etiquetado automático

def auto_tag_document(file_id, content):
    """Etiquetar documento automáticamente"""
    # Generar etiquetas
    response = call_ollama([
        {"role": "system", "content": "Asigna 3-5 etiquetas. Responde como array JSON."},
        {"role": "user", "content": content[:3000]}
    ], format="json")

    tags = json.loads(response["message"]["content"])

    # Establecer etiquetas en Nextcloud
    for tag in tags:
        add_tag(file_id, tag)

Caso práctico 4: Clasificación de documentos

def classify_document(file_id, content):
    """Clasificar documento"""
    response = call_ollama([
        {"role": "system", "content": """Clasifica en:
- factura
- contrato
- informe
- oferta
- otro

Responde solo con la categoría."""},
        {"role": "user", "content": content[:3000]}
    ])

    category = response["message"]["content"].strip().lower()

    # Mover a carpeta correspondiente
    move_to_folder(file_id, f"documentos/{category}")

Recomendaciones de seguridad

Problemas comunes

  • Docker Networking: Nextcloud y Ollama deben estar en la misma red.
  • Rendimiento: Los documentos grandes requieren tiempo. Usa procesamiento asincrónico.
  • Longitud del contexto: Los documentos grandes deben dividirse en fragmentos.
  • OCR: Los documentos escaneados necesitan OCR antes del procesamiento por IA.
  • Manejo de errores: Si Ollama no está disponible, Nextcloud no debe fallar.

Enlaces relacionados

Puntos clave:

  • Nextcloud + Ollama: almacena documentos, la IA los procesa.
  • Integraciones: apps, scripts personalizados, webhooks, Flow.
  • Casos de uso: resúmenes, búsqueda, etiquetado, clasificación.
  • Todo local, sin cloud, sin costos de API.
  • Seguridad: HTTPS, autenticación, aislamiento de red.

FAQ

¿Cómo conecto Nextcloud con Ollama?

A través de apps de Nextcloud, scripts personalizados, webhooks o la app Flow. Ambos servicios deben ejecutarse en la misma red Docker.

¿Qué apps de Nextcloud hay disponibles?

Nextcloud Assistant para soporte de IA, Nextcloud Talk AI para chat, Nextcloud Mail AI para correo electrónico. La disponibilidad depende de tu versión de Nextcloud.

¿Cómo creo resúmenes automáticos?

Con un script personalizado o webhook: cuando se carga un documento, extrae el texto, envíalo a Ollama y guarda el resumen como comentario o campo personalizado.

¿Cómo construyo búsqueda inteligente?

Con RAG: almacena documentos en una base de datos vectorial, cuando se realiza una búsqueda encuentra documentos similares y genera la respuesta con contexto.

¿Cómo funciona el etiquetado automático?

Ollama analiza el contenido del documento y genera etiquetas. Estas se almacenan en Nextcloud como tags o categorías.

¿Es seguro?

Sí, si ambos se ejecutan localmente. Nextcloud almacena documentos en local, Ollama procesa en local. Ningún dato sale de tu servidor.

¿Cuál es el costo?

Nextcloud y Ollama son open source. Solo pagas costos de hardware. Sin costos de API, sin suscripciones.

¿Qué tan rápido es?

Depende del modelo y el tamaño del documento. Documentos pequeños: segundos. Documentos grandes: minutos. Para muchos documentos usa procesamiento asincrónico.

¿Puedo procesar documentos escaneados?

Sí, pero necesitas OCR antes del procesamiento por IA. Usa Tesseract u herramientas OCR similares para extraer texto de los escaneos.

¿Qué modelo debo usar?

Para resúmenes: llama3.1:8b. Para análisis complejos: qwen2.5:32b. Para embeddings: nomic-embed-text. Para traducción: qwen2.5.

Referencias y lecturas complementarias

Volver al blog
Share:

Entradas relacionadas