Inicio rápido de Vane (Perplexica 2.0) con Ollama y llama.cpp

Búsqueda de IA autoalojada con LLM locales

Índice

Vane es una de las entradas más pragmáticas en el espacio de “búsqueda de IA con citas”: un motor de respuestas autoalojado que combina la recuperación web en vivo con LLM locales o en la nube, manteniendo toda la pila bajo tu control.

El proyecto fue originalmente conocido como Perplexica, y el cambio de nombre a Vane no es cosmético: refleja tanto una limpieza de marca como un cambio constante de ser considerado como “un clon” hacia ser un motor de respuestas general.

laptop-llama-server

Dado que la parte útil de la pila no es solo la interfaz de usuario, sino también dónde residen la inferencia y los datos, esta comparación de alojamiento de LLM en 2026 reúne configuraciones locales, autoalojadas y en la nube para que puedas colocar a Vane junto a otros tiempos de ejecución y opciones de implementación.

Este artículo se centra en las partes que realmente importan a los lectores técnicos: cómo funciona el sistema, una puesta en marcha rápida con Docker y cómo ejecutarlo con inferencia local mediante Ollama y llama.cpp (directamente o a través de LM Studio). A lo largo del camino, cada tema de preguntas frecuentes se responde en contexto, no se deja para el final.

Qué es Vane y cómo funcionan los motores de búsqueda de IA

A un nivel alto, Vane es una aplicación Next.js que combina una interfaz de chat con búsqueda y citas. Las piezas arquitectónicas centrales son exactamente lo que esperarías de un motor de búsqueda de IA moderno: rutas de API para chat y búsqueda, una orquestación que decide cuándo realizar la recuperación y un escritor de respuestas consciente de las citas.

Cuando envías una consulta en la interfaz de usuario, Vane llama a POST /api/chat. Internamente, el flujo de trabajo está deliberadamente estructurado:

  • Clasifica la pregunta primero para decidir si se necesita investigación y qué asistentes deben ejecutarse.
  • Ejecuta la investigación y los widgets en paralelo.
  • Genera la respuesta final e incluye las citas.

Esa etiqueta de “motor de búsqueda de IA” importa, porque esto no es solo un frontend de chat. La diferencia clave es la generación aumentada por recuperación: en lugar de depender puramente de los parámetros del LLM, Vane obtiene contexto externo (resultados web y opcionalmente archivos cargados por el usuario) y usa ese material como sustrato de fundamentación para la respuesta final. Su documentación llama explícitamente a la búsqueda web y a “la búsqueda en archivos cargados por el usuario” como parte de la investigación, utilizando incrustaciones (embeddings) para la búsqueda semántica sobre los archivos cargados.

Las citas no son un pensamiento posterior. Vane solicita al modelo que cite las referencias que utilizó, y luego la interfaz de usuario renderiza esas citas junto a la respuesta. En la práctica, esto es lo que separa la búsqueda de IA “útil” de un generador de alucinaciones confiado que solo tiene un botón de búsqueda.

SearxNG se encuentra debajo de la capa de recuperación web para la mayoría de las configuraciones. SearxNG es un motor de metabúsqueda gratuito que agrega resultados de muchos servicios de búsqueda y, por diseño, no rastrea ni perfila a los usuarios. Esa es una filosofía fundamentalmente diferente de las APIs de búsqueda pagas, que usualmente te dan un índice de un solo proveedor y un contrato de datos comercial.

Historia de Perplexica a Vane y cambio de nombre

Perplexica comenzó como un motor de respuestas de código abierto y autoalojable inspirado en Perplexity AI. Varios guías públicos aún describen el proyecto como “anteriormente conocido como Perplexica” y tratan a Vane como la continuación en lugar de un bifurcación hostil.

El cambio de nombre se implementó directamente en el repositorio principal. En el historial de commits de la rama principal, el commit titulado feat(app): rename to 'vane' aparece el 9 de marzo de 2026 (SHA 39c0f19).

El “cómo” es más interesante que el titular. Ese commit de cambio de nombre no es solo una modificación del README: actualiza los nombres de las imágenes de Docker de itzcrazykns1337/perplexica a itzcrazykns1337/vane, ajusta las rutas del sistema de archivos del contenedor de /home/perplexica a /home/vane, y actualiza el texto del proyecto y los activos en consecuencia.

Si te preguntas por qué los proyectos de IA de código abierto cambian de nombre, Vane es un ejemplo de libro de texto de los impulsores habituales:

  • La proximidad del nombre a una marca comercial crea confusión (y a veces riesgo legal).
  • El alcance del proyecto se expande más allá del encuadre original (de “clon” a “motor de respuestas”).
  • Los artefactos de distribución necesitan una identidad coherente (imágenes de Docker, documentación, etiquetas de UI).

Además, el ecosistema no cambia de nombre de la noche a la mañana. Docker Hub aún muestra ambos repositorios bajo la cuenta del mantenedor, incluyendo itzcrazykns1337/vane y itzcrazykns1337/perplexica. Así que aún verás publicaciones antiguas de blogs, archivos de composición y referencias al registro que utilizan la nomenclatura de Perplexica incluso después del cambio de marca del repositorio.

Puesta en marcha rápida con Docker y configuración básica

El README oficial de Vane es refrescantemente directo: ejecuta un solo contenedor y obtendrás Vane junto con un backend de búsqueda SearxNG incluido. La puesta en marcha mínima de Docker se ve así.

docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

Esa imagen se posiciona como la ruta “funciona al instante” porque ya incluye SearxNG, por lo que no necesitas un backend de búsqueda externo solo para probar la interfaz de usuario. La configuración ocurre en la pantalla de configuración después de abrir la interfaz web en http://localhost:3000.

Si ya ejecutas SearxNG (común en laboratorios domésticos), la imagen “slim” de Vane espera que la apuntes a una instancia externa de SearxNG usando SEARXNG_API_URL. El README también señala dos expectativas prácticas de configuración de SearxNG: salida JSON habilitada y el motor de Wolfram Alpha habilitado.

docker run -d -p 3000:3000 \
  -e SEARXNG_API_URL=http://your-searxng-url:8080 \
  -v vane-data:/home/vane/data \
  --name vane \
  itzcrazykns1337/vane:slim-latest

Mantener Vane actualizado también está documentado en el repositorio. El flujo de trabajo oficial de actualización es básicamente obtener la última imagen y reiniciar con el mismo volumen, lo que preserva la configuración.

docker pull itzcrazykns1337/vane:latest
docker stop vane
docker rm vane
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

Una vez que lo tengas ejecutando, Vane puede usarse como un atajo de motor de búsqueda del navegador apuntando un motor personalizado a http://localhost:3000/?q=%s. Esa es una pequeña característica con un impacto desproporcionado si quieres que la “búsqueda de IA” se sienta como búsqueda en lugar de una aplicación que visitas.

Para la automatización e integración, Vane expone una API. La documentación describe GET /api/providers para descubrir proveedores y modelos configurados, y POST /api/search para ejecutar una búsqueda con un modelo de chat elegido, modelo de incrustaciones, fuentes y un optimizationMode (velocidad, equilibrado, calidad).

Configuración de LLM local con Ollama

Vane soporta LLM locales a través de Ollama y proveedores en la nube en la misma interfaz de usuario, lo cual es la abstracción correcta si piensas en términos de “conexiones” y “modelos” en lugar de “proveedores”.

El problema más común no es la elección del modelo, es la red. Cuando Vane se ejecuta en Docker y Ollama se ejecuta en el host, “localhost” no significa lo que crees que significa desde dentro del contenedor. Vane documenta URLs base específicas del sistema operativo para conectarse a Ollama desde un contenedor.

Problemas de conectividad con Docker

La sección de solución de problemas de Vane recomienda explícitamente:

  • Windows y macOS: http://host.docker.internal:11434
  • Linux: http://<private_ip_of_host>:11434

Para Linux, Vane también señala que Ollama puede estar vinculado a 127.0.0.1 por defecto y necesita ser expuesto. El README sugiere establecer OLLAMA_HOST=0.0.0.0:11434 en el servicio systemd y reiniciar el servicio.

Esto está en línea con las propias variables de entorno serve de Ollama, donde OLLAMA_HOST controla la dirección de vinculación del servidor y tiene como valor predeterminado 127.0.0.1:11434.

Mantén los modelos calientes y elige modelos

Si ejecutas inferencia local, notarás los arranques en frío. Ollama tiene dos mecanismos relacionados para mantener los modelos cargados:

  • OLLAMA_KEEP_ALIVE como configuración del servidor.
  • keep_alive como parámetro por solicitud para /api/generate y /api/chat, que anula el valor predeterminado del servidor.

Vane añadió su propio soporte de keep_alive para modelos de Ollama (para que la aplicación pueda influir en cuánto tiempo un modelo permanece en memoria). Esa característica aparece en las notas de lanzamiento de Vane v1.10.0.

La selección de modelos es la parte que se complica demasiado en internet. Para el tipo de trabajo de Vane, la división más práctica es:

  • Un modelo de chat ajustado para instrucciones (para resumen y síntesis).
  • Un modelo de incrustaciones para búsqueda de similitud sobre archivos cargados y texto recuperado. La documentación de la API de Vane muestra que la solicitud de búsqueda elige explícitamente tanto un modelo de chat como un modelo de incrustaciones.

Ollama en sí mismo soporta flujos de trabajo de incrustaciones, e incluso la documentación de la CLI incluye un ejemplo usando nomic-embed-text para incrustaciones.

Esto también es la respuesta a la pregunta frecuente sobre cómo ejecutar búsqueda de IA localmente sin APIs en la nube: con Vane en Docker, SearxNG local y Ollama en tu hardware, puedes mantener tanto tus consultas de búsqueda como tus cargas de documentos privados dentro de tu propio perímetro de red. (Si decides conectarte a un proveedor en la nube en su lugar, la conexión obviamente cambia la ruta de los datos.)

Configuración de LLM local con llama.cpp

Hay dos formas realistas de emparejar Vane con llama.cpp:

  • Usar LM Studio como la capa del servidor (y dejar que Vane hable con él).
  • Ejecutar el propio servidor HTTP de llama.cpp (llama-server) y conectarlo a través de un endpoint compatible con OpenAI.

Vane soporta explícitamente “Servidores Locales Compatibles con la API de OpenAI” y señala los requisitos habituales: vincularse a 0.0.0.0 en lugar de 127.0.0.1, usar el puerto correcto, establecer un nombre de modelo que exista en el servidor y no dejar el campo de la clave de API vacío incluso si el servidor no enforce autenticación.

LM Studio es relevante aquí porque se sitúa sobre backends locales (a menudo llama.cpp) mientras expone una API compatible con OpenAI. Vane v1.12.1 señala específicamente la adición de un proveedor de LM Studio.

La documentación de LM Studio enumera los endpoints compatibles con OpenAI y muestra un ejemplo de URL base usando http://localhost:1234/v1 (asumiendo puerto 1234). Eso importa porque, desde la perspectiva de Vane, es “solo otro servidor estilo OpenAI”.

Si prefieres ejecutar llama.cpp directamente, el servidor HTTP oficial de llama.cpp soporta completados de chat, respuestas e incrustaciones compatibles con la API de OpenAI, junto con una larga lista de características del servidor (lote, monitoreo, uso de herramientas).

Aunque no memorices las banderas, las partes importantes son:

  • El servidor existe y está activamente documentado.
  • La superficie de la API es lo suficientemente compatible como para que los clientes estilo OpenAI puedan hablar con ella, que es exactamente lo que Vane necesita para su patrón de conexión “compatible con OpenAI”.

Qué se lanzó recientemente y qué está cambiando ahora

Si quieres entender en qué se convirtió Vane durante el último año, sigue las notas de lanzamiento y el historial de la rama principal en lugar del hype.

A partir del 10 de abril de 2026 (Australia/Melbourne), el lanzamiento de GitHub etiquetado más reciente visible en la página de lanzamientos es v1.12.1 (31 de diciembre de 2025). Ese lanzamiento señala la adición de un proveedor de LM Studio y correcciones alrededor de llamadas a funciones con proveedores compatibles con OpenAI y análisis JSON.

Los lanzamientos anteriores delinean los cambios más grandes:

  • v1.11.0 (21 de octubre de 2025) introdujo un nuevo asistente de configuración y un sistema de configuración rediseñado, junto con un soporte más amplio de proveedores y una ruta de instalación de Docker de un solo comando. También menciona la obtención dinámica de modelos y varias mejoras de experiencia de usuario y desarrollador.
  • v1.12.0 (27 de diciembre de 2025) es un reinicio arquitectónico: elimina LangChain en favor de una implementación personalizada para transmisión, generación y comportamiento específico del proveedor. También renombra “proveedores” a “conexiones”, añade mejoras de renderizado de UI y código, y mueve más capacidad a las abstracciones propias del proyecto (incluyendo llamadas a funciones mejoradas en comparación con enfoques de análisis anteriores).
  • Anteriormente, v1.10.0 (20 de marzo de 2025) añadió cargas de archivos (PDF, TXT, DOCX), añadió un parámetro keep_alive de Ollama, añadió una clase de agente de metabúsqueda para mejorar la mantenibilidad y la creación de modo de enfoque, y añadió funcionalidad de búsqueda automática de imágenes y videos.

En el lado de la marca, el cambio de nombre a Vane se concretó el 9 de marzo de 2026 en la rama principal (feat(app): rename to 'vane'), actualizando tanto la nomenclatura del código como los artefactos de Docker.

Y el proyecto no dejó de evolucionar después del lanzamiento de diciembre de 2025. Los commits de la rama principal entre el 8 y 9 de abril de 2026 incluyen trabajo descrito como “modo de investigación profunda actualizado, gestión de contexto” y nuevos cambios relacionados con ejecución de búsqueda y raspado. En otras palabras, la parte de “motor de búsqueda de IA” sigue siendo iterada activamente, no está congelada detrás de etiquetas de lanzamiento.

Algunas Referencias