Un chat de soporte de WordPress puede enviar una conversación, un fragmento de artículo o el texto que debe indexar a la URL configurada en el plugin. Si esa URL apunta a OpenAI o a otro proveedor externo, la petición sale del servidor. Una instalación autoalojada conecta WordPress con Ollama para ejecutar modelos y con Qdrant para buscar información mediante vectores. Este artículo separa el trabajo entre motor, memoria y plugins.
Por qué tener la IA dentro de tu servidor
Controlar dónde se procesa el texto y evitar cuotas de proveedor son dos motivos para montar la IA en infraestructura propia. Cuando WordPress, Ollama y Qdrant se ejecutan en el mismo servidor o en una red privada que administras, los prompts y los vectores pueden quedar bajo tu control. El código de Ollama utiliza una licencia MIT y el de Qdrant, Apache 2.0; cada modelo descargado tiene su propia licencia. El autoalojamiento puede eliminar la cuota por petición, pero no el coste total del servicio.
Antes de instalar nada, define las tareas que quieres trasladar: borradores, chat de soporte o búsqueda interna. Para un chat de soporte, conviene medir la latencia con varias peticiones simultáneas; para un índice, importa la frecuencia de publicación y el volumen de cada entrada. Esta lista determina el modelo, el contexto, la RAM y si necesitas una GPU.
Ollama y Qdrant: motor y memoria
Ollama permite descargar y ejecutar modelos como llama3, mistral o gemma. Los archivos de una variante de Llama 3 de 8B en 4 bits ocupan varios gigabytes; el tamaño depende de la cuantización y el consumo en memoria también varía con la longitud del contexto. Su API escucha en el puerto 11434 de forma predeterminada y ofrece rutas compatibles con OpenAI bajo /v1. Un cliente compatible puede apuntar a esa URL, pero debe comprobar los endpoints, los nombres de los modelos, el streaming, las llamadas a herramientas y los embeddings.
Qdrant organiza los embeddings en colecciones y puede buscar por similitud de coseno. Su despliegue con Docker expone por defecto el puerto 6333 para la API REST y el 6334 para gRPC. all-MiniLM-L6-v2, ejecutado con una biblioteca compatible como Sentence Transformers, genera vectores de 384 dimensiones; mediante la API de Ollama, nomic-embed-text es otra opción. El mismo modelo debe generar los vectores durante la indexación y las consultas, y sus dimensiones deben coincidir con las de la colección. Con el modelo y la colección definidos, toca conectar los servicios.
Si WordPress también se ejecuta como contenedor en la misma red de Docker Compose, los servicios se resuelven por su nombre y pueden utilizarse las URL internas http://ollama:11434 y http://qdrant:6333 sin publicar los puertos a Internet. Si WordPress se ejecuta en el host, debe conectarse a esa red o usar puertos mapeados con acceso limitado. El despliegue completo, con Compose, volúmenes y ajustes de contexto, aparece en IA local en WordPress con Ollama y Qdrant: monta tu stack autoalojado.
La comprobación inicial consiste en levantar los contenedores y ejecutar curl http://localhost:11434/api/tags. La respuesta incluye los modelos descargados en esa instancia. Si no aparece ninguno, todavía hay que descargar un modelo antes de conectar WordPress.
La capa de plugins: WordPress entra en escena
WordPress no necesita un plugin escrito desde cero para esta arquitectura. La primera criba consiste en comprobar si permite configurar por separado la URL de generación y la de embeddings. AI Engine, de Meow Apps, incluye una integración específica con Ollama. Un plugin con API compatible con OpenAI puede funcionar con Ollama si sus endpoints y nombres de modelo se corresponden, pero no basta con cambiar una etiqueta.
La parte semántica está menos unificada. Algunos plugins conectan WordPress con Qdrant y otros dejan la indexación a una integración externa. En un sitio pequeño, un mu-plugin puede generar el embedding, enviarlo al cliente PHP de Qdrant al guardar una entrada y diferir el trabajo con WP-Cron. Para un volumen mayor, el procesamiento necesita una cola de trabajo y control de reintentos.
La comparación de herramientas y sus límites aparece en Los mejores plugins de IA para WordPress con Ollama y Qdrant locales. Antes de instalar uno, comprueba con una petición real si acepta una URL propia, un modelo local y los endpoints que necesita. Si solo admite claves de servicios en la nube y no deja modificar la URL base, no podrá conectarse con Ollama.
Límites que conviene conocer de antemano
El hardware impone el primer límite. Un modelo de 8B en 4 bits puede caber en una GPU de 8 GB, pero el contexto, la cuantización y la memoria reservada por Ollama reducen el margen disponible. También puede ejecutarse en CPU, aunque la latencia y el número de respuestas dependen del procesador, la RAM y el modelo. Mide una petición con la longitud de contexto real antes de contratar o ampliar hardware.
OLLAMA_NUM_PARALLEL controla cuántas peticiones procesa cada modelo de forma simultánea. Aumentar ese valor puede elevar el consumo de RAM y VRAM y reducir la velocidad de respuesta bajo carga. La prueba de concurrencia debe usar varias solicitudes representativas, no una sola llamada desde la línea de comandos.
El alojamiento determina la tercera restricción. Un hosting compartido puede impedir la instalación de contenedores o servicios de larga duración. localhost siempre señala la máquina donde se ejecuta WordPress, por lo que no alcanza un Ollama instalado en otro servidor. Las opciones incluyen alojarlo en el mismo equipo, unir ambos servicios mediante una red privada o utilizar un VPS que controles. Dimensiona la infraestructura con el modelo, el contexto máximo y la concurrencia que necesitará el sitio.
Empieza por la búsqueda, no por la generación
La búsqueda semántica ofrece una primera prueba trazable porque cada resultado puede vincularse con una entrada existente. Qdrant no redacta respuestas: devuelve identificadores y metadatos que WordPress puede relacionar con el contenido almacenado. Esa separación permite comprobar si el sistema recupera el artículo correcto antes de añadir un modelo que redacte texto. Usa consultas reales del sitio y define qué documento debería aparecer para cada una.
El primer ensayo consiste en instalar Ollama, descargar nomic-embed-text, crear una colección en Qdrant e indexar un lote reciente de entradas. Compara los resultados con el buscador de WordPress y registra la posición de cada fuente esperada. La búsqueda supera la prueba cuando recupera los documentos relevantes de forma consistente. Después puedes incorporar un modelo de 8B para generar borradores; si la recuperación falla, corrige primero la indexación, el modelo de embeddings o la colección.
