Autoalojamiento de Perplexica - con Ollama
¿Ejecutando un servicio de estilo Copilot de forma local? ¡Fácil!
¡Eso es muy emocionante! En lugar de llamar a Copilot o Perplexity.ai y contarle al mundo entero lo que buscas, ¡ahora puedes alojar un servicio similar en tu propio PC o portátil!
Perplexica es un sistema similar a Copilot y Perplexity.ai.
- Haces una pregunta
- La IA busca las respuestas en internet (puedes especificar dónde buscar: artículos académicos, escritura, YouTube, Reddit…)
- Luego, la IA resume todo lo que ha encontrado
- Presenta el resultado con referencias a los sitios web originales
- También incluye una lista de imágenes y videos de YouTube a la derecha
- Además, ofrece preguntas de seguimiento listas para que hagas clic si deseas explorar el tema un poco más
Estos sistemas están alojados en la nube y pertenecen a ciertas corporaciones (por ejemplo, Microsoft o Meta). Perplexica es un software de código abierto que puedes alojar en tu PC o portátil potente.
La misma base de código aguas arriba ahora se distribuye como Vane; Vane (Perplexica 2.0) Inicio Rápido con Ollama y llama.cpp cubre las imágenes de Docker actuales, SearxNG y las rutas de inferencia local si estás alineándote con el proyecto renombrado.
Para una comparación más amplia de Ollama local con vLLM, Docker Model Runner, LocalAI y proveedores en la nube, incluyendo compensaciones de costo e infraestructura, consulta Alojamiento de LLM: Infraestructura Local, Auto-Alojada y en la Nube Comparada.
Aquí vemos la respuesta de Perplexica con el modelo de chat llama3.1 8b q6 y el modelo de incrustación jina, ante la pregunta ¿Quién es Elon Mask?
Perplexica consta de varios módulos:
- SearxNG - Motor de metabúsqueda. Llamará a más de 10 motores de búsqueda para obtener los resultados, para que Perplexica pueda combinarlos. SearxNG es muy configurable por sí mismo; puedes activar y desactivar cada motor y añadir nuevos. Pero para nuestros propósitos, la configuración predeterminada funciona bien.
- Backend y Frontend de Perplexica. Técnicamente, estos son dos módulos separados; uno proporciona la API y el otro es la UI.
- Servicio Ollama - que no es parte del proyecto Perplexica, pero si quieres alojar tus LLMs localmente, Ollama es la única forma de usarlos.
Por lo tanto, la instalación del sistema completo consiste en dos pasos grandes:
- Instalar Ollama + descargar modelos de Ollama
- Instalar Perplexica junto con SearxNG
Instalando Ollama
Para comenzar con Ollama, sigue estos pasos:
Instala Ollama ejecutando el script:
curl -fsSL https://ollama.com/install.sh | sh
Dile a Ollama que descargue tu LLM favorito. Si es Llama3.1 8b q4, ejecuta el script:
ollama pull llama3.1:latest
Obtén la última versión de Nomic-Embed-Text para usar como modelo de incrustación (si es tu favorito) usando:
ollama pull nomic-embed-text:latest
Edita el archivo de servicio de Ollama ejecutando:
sudo systemctl edit ollama.service
Añade las siguientes líneas para exponer Ollama a la red (Perplexica necesita conectarse a él desde dentro de Docker):
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Recarga el demonio systemd y reinicia el servicio de Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Comprueba que Ollama se inició correctamente:
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Para una descripción detallada de cómo instalar, actualizar y configurar Ollama, consulta: Instalar y configurar Ollama
Para los detalles sobre usar otros modelos de Ollama con Perplexica, consulta la sección ‘Instalando otros modelos de Ollama’ a continuación.
Instalando Perplexica
He instalado Perplexica dockerizado en Linux, pero un docker-compose muy similar puede usarse en Windows o Mac.
¡Vamos!
Comenzando con Docker (Recomendado) Asegúrate de que Docker esté instalado y ejecutándose en tu sistema.
Clona el repositorio de Perplexica:
git clone https://github.com/ItzCrazyKns/Perplexica.git
Después de clonar, navega al directorio que contiene los archivos del proyecto.
cd Perplexica
Renombra el archivo sample.config.toml a config.toml. Si planeas actualizar Perplexica más tarde con git pull en este repositorio, entonces simplemente copia el archivo sample.config.toml a config.toml
cp sample.config.toml config.toml
Edita el archivo de configuración:
nano config.toml
Para configuraciones de Docker, solo necesitas rellenar los siguientes campos:
OLLAMA: Tu URL de API de Ollama.
Debes ingresarlo como http://host.docker.internal:NUMERO_DE_PUERTO.
Si instalaste Ollama en el puerto 11434 (que es el predeterminado), usa http://host.docker.internal:11434. Para otros puertos, ajusta en consecuencia.
Cuando aún estés en el directorio de Perplexica, ejecuta:
docker compose up -d
Esto obtendrá las imágenes de Docker de SearxNG y base de node, construirá dos imágenes de Docker de Perplexica e iniciará 3 contenedores. Espera unos minutos para que la configuración se complete.
Puedes acceder a Perplexica en http://localhost:3000 en tu navegador web.
Ve a Configuración. Ya sabes, el icono de la rueda dentada abajo a la izquierda, y elige tus modelos de Ollama.

Aquí ves el modelo de chat seleccionado llama3.1:8b-instruct-q6_K (Llama 3.1 8b con cuantización q6_K), y el modelo de incrustación nomic-embed-text:137m-v1.5-fp16.
También puedes seleccionar el tema Claro u Oscuro, según tu preferencia.
Opciones de búsqueda de Perplexica (Haz clic en este icono de ojo en la caja), en tema Oscuro:

Instalando otros modelos de Ollama
Ya has instalado los modelos llama3.1:latest y nomic-embed-text:latest en la sección “Instalando Ollama” anterior.
Solo necesitas un modelo para el chat, pero hay muchos modelos disponibles. Se comportan ligeramente diferente, es bueno comenzar con los más comunes: Llama3.1, Gemma2, Mistral Nemo o Qwen2.
Modelos de chat
El nombre completo del modelo de chat que viste en la sección de instalación - llama3.1:latest es llama3.1:8b-text-q4_0. Esto significa que tiene 8 mil millones de parámetros y cuantización 4_0. Es rápido y relativamente pequeño (4.8GB), pero si tu GPU tiene algo más de memoria, te recomendaría que probaras:
- llama3.1:8b-instruct-q6_K (6.7GB) - en mis pruebas mostró una respuesta mucho mejor, aunque fue un poco más lenta.
- llama3.1:8b-instruct-q8_0 (8.5GB) - o quizás este.
En general, todos los modelos del grupo llama3.1:8b son relativamente rápidos.
Puedes obtener los que recomendé probar con el script:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
En comparación con Llama3.1:8b, Gemma2 produce respuestas más concisas y artísticas. Prueba estos:
# 9.8GB
ollama pull gemma2:9b-instruct-q8_0
# 14GB
ollama pull gemma2:27b-instruct-q3_K_L
Los modelos Mistral Nemo producen respuestas en algún punto intermedio entre gemma2 y llama3.1.
# el predeterminado, 7.1GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
También podrías querer probar los modelos Qwen2:
# el predeterminado, 4.4GB
ollama pull qwen2:7b-instruct-q4_0
# 8.1GB
ollama pull qwen2:7b-instruct-q8_0
Los modelos que más me gustaron fueron: llama3.1:8b-instruct-q6_K y mistral-nemo:12b-instruct-2407-q8_0.
Para verificar los modelos que Ollama tiene en el repositorio local:
ollama list
Para eliminar algún modelo innecesario:
ollama rm qwen2:7b-instruct-q4_0 # por ejemplo
Modelos de incrustación
Puedes omitir la instalación de estos, ya que Perplexica tiene 3 modelos de incrustación preinstalados: BGE Small, GTE Small y Bert bilingüe. Funcionan bastante bien, pero podrías querer probar otros modelos de incrustación.
En la sección de instalación de Ollama anterior, instalaste el modelo de incrustación nomic-embed-text:latest, es un buen modelo, pero te recomendaría que también probaras:
ollama pull jina/jina-embeddings-v2-base-en:latest
# y
ollama pull bge-m3:567m-fp16
Me gustaron más los resultados de jina/jina-embeddings-v2-base-en:latest, pero tú mismo decide.
Instalación de Red de Perplexica
Si lo instalas en un servidor de red, entonces antes de:
docker compose up -d
o si ya estás ejecutando Perplexica y necesitas reconstruir las imágenes:
# Detén y elimina todos los contenedores (!!! solo si lo necesitas)
docker compose down --rmi all
Pon la dirección IP de tu servidor Perplexica en docker-compose.yaml: luego, antes de:
nano docker-compose.yaml
perplexica-frontend:
build:
context: .
dockerfile: app.dockerfile
args:
- NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api # << aquí
- NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001 # << aquí
depends_on:
- perplexica-backend
Ahora inicia los contenedores de Perplexica y SearxNG:
docker compose up -d
O reconstruye e inicia:
docker compose up -d --build
Actualizando Perplexica
Perplexica ejecutándose en Docker:
# Detén y elimina todos los contenedores (!!! solo si lo necesitas)
docker compose down --rmi all
# navega a la carpeta del proyecto
# donde clonaste perplexica durante la instalación
cd Perplexica
# obtén las actualizaciones
git pull
# Actualiza y reconstruye los contenedores de Docker:
docker compose up -d --build
Para instalaciones sin Docker, consulta: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
FAQ
-
P: ¿Qué es Perplexica?
-
R: Perplexica es un motor de búsqueda de IA auto-alojado gratuito y una alternativa a los sistemas perplexity.ai y Copilot que permite a los usuarios ejecutar su propio motor de búsqueda localmente en su computadora.
-
P: ¿Cuáles son los pasos para instalar y configurar Perplexica con Ollama?
-
R: Los pasos incluyen instalar Ollama, obtener los modelos y luego instalar Perplexica.
-
P: ¿Qué opciones de personalización están disponibles en Perplexica?
-
R: Las opciones incluyen elegir diferentes modelos como LLama 3.1, Mistral Nemo o Gemma2, configurar modelos de incrustación locales y explorar varias opciones de búsqueda como noticias, artículos académicos, videos de YouTube y foros de Reddit.
-
P: ¿Qué modelo de Ollama usar con Perplexica?
-
R: Los mejores resultados que obtuvimos en nuestras pruebas fueron cuando ejecutamos Perplexica con llama3.1:8b-instruct-q6_K y jina/jina-embeddings-v2-base-en:latest.
Para ver cómo Ollama (el backend típico de Perplexica) se ajusta con vLLM, Docker Model Runner, LocalAI y proveedores en la nube, consulta nuestra guía Alojamiento de LLM: Infraestructura Local, Auto-Alojada y en la Nube Comparada.
Enlaces útiles
- Instrucciones de instalación en el sitio de Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Exponer Perplexica a la red
- Instalar Ollama y Mover Modelos de Ollama a una Carpeta Diferente
- Comparación de LLMs: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 y Phi
- Hoja de trucos de Ollama