Autohospedaje de Perplexica con Ollama
¿Ejecutando un servicio estilo copilot localmente? ¡Fácil!
¡Eso es muy emocionante! En lugar de llamar a copilot o perplexity.ai y contarle al mundo entero qué es lo que buscas, ahora puedes alojar un servicio similar en tu propio PC o laptop.
¿Qué es?
Perplexica es un sistema similar a Copilot y Perplexity.ai.
- Tú haces una pregunta
- La IA busca en Internet las respuestas (puedes especificar dónde buscar: artículos académicos, escritura, YouTube, Reddit…)
- Luego la IA resume todo lo que ha encontrado
- Luego presenta el resultado con referencias a los sitios web originales
- También una lista de imágenes y videos de YouTube a la derecha
- También preguntas de seguimiento listas para que las hagas clic, si quieres explorar un poco más el tema
Esos sistemas están alojados en la nube y pertenecen a algunas corporaciones (por ejemplo, Microsoft o Meta). Perplexica es un software de código abierto que puedes alojar en tu PC o laptop potente.
Aquí vemos la respuesta de Perplexica con el modelo de chat llama3.1 8b q6 y el modelo de embedding de Jina - a la pregunta
¿Quién es Elon Musk?
Perplexica consta de varios módulos
- SearxNG - motor de metabúsqueda. Llamará a 10+ otros motores de búsqueda para obtener los resultados, por lo que Perplexica puede combinarlos. SearxNG es muy configurable por sí mismo, puedes encender y apagar cada motor y agregar nuevos. Pero para nuestros propósitos la configuración predeterminada funciona bien.
- Backend y frontend de Perplexica. Técnicamente son dos módulos separados, uno proporciona la API, otro es la interfaz de usuario
- 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 de todo el sistema consta de 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 modelo favorito de LLM. Si es Llama3.1 8b q4 - ejecuta el script:
ollama pull llama3.1:latest
Descarga la última versión de Nomic-Embed-Text para usarla como modelo de embedding (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ñadiendo 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
Verifica que Ollama se haya iniciado correctamente
systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager
Descripción detallada de cómo instalar, actualizar y configurar Ollama, por favor vea: Instalar y configurar Ollama
Para obtener información detallada sobre el uso de otros modelos de Ollama con Perplexica, por favor consulte la sección ‘Instalando otros modelos de Ollama’ a continuación.
Instalando Perplexica
He instalado Perplexica en docker en Linux, pero un docker-compose muy similar se puede usar en Windows o Mac.
¡Vamos!
Comenzando con Docker (Recomendado) Asegúrate de que Docker esté instalado y en ejecución 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 adelante - para hacer un 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 llenar los siguientes campos:
OLLAMA: Tu URL de API de Ollama.
Debes introducirla como http://host.docker.internal:PORT_NUMBER.
Si instalaste Ollama en el puerto 11434 (ese es el predeterminado), usa http://host.docker.internal:11434. Para otros puertos, ajusta según corresponda.
Mientras aún estés en el directorio de Perplexica, ejecuta:
docker compose up -d
Esto descargará las imágenes de SearxNG y el nodo base de docker, construirá dos imágenes de docker de Perplexica y iniciará 3 contenedores. Espera unos minutos para que se complete la configuración.
Puedes acceder a Perplexica en http://localhost:3000 en tu navegador web.
Ve a Configuración. Sabes, el icono de engranaje en la parte inferior 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 embedding nomic-embed-text:137m-v1.5-fp16.
También puedes seleccionar el tema claro o oscuro según lo que más te guste.
Opciones de búsqueda de Perplexica (Haz clic en este ojo en el icono de la caja), en el tema oscuro:
Instalando otros modelos de Ollama
Ya has instalado los modelos llama3.1:latest y nomic-embed-text:latest en la sección anterior “Instalando Ollama”.
Solo necesitas un modelo para el chat, pero hay muchos modelos disponibles. Se comportan ligeramente diferentes, 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. Eso significa que tiene 8 mil millones de parámetros y cuantización 4_0. Es rápido y relativamente pequeño (4,8 GB), pero si tu GPU tiene algo más de memoria, te recomendaría que intentes
- llama3.1:8b-instruct-q6_K (6,7 GB) - en mis pruebas mostró una respuesta mucho mejor, aunque un poco más lenta.
- llama3.1:8b-instruct-q8_0 (8,5 GB) - o quizás este.
En general, todos los modelos del grupo llama3.1:8b son relativamente rápidos.
puedes extraer los que te recomiendo probar con el script:
ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0
Comparado con Llama3.1:8b, Gemma2 produce respuestas más concisas y artísticas. Prueba estos:
# 9,8 GB
ollama pull gemma2:9b-instruct-q8_0
# 14 GB
ollama pull gemma2:27b-instruct-q3_K_L
Los modelos Mistral Nemo producen respuestas en algún lugar entre gemma2 y llama3.1.
# el predeterminado, 7,1 GB
ollama pull mistral-nemo:12b-instruct-2407-q4_0
# 10 GB
ollama pull mistral-nemo:12b-instruct-2407-q6_K
# 13 GB
ollama pull mistral-nemo:12b-instruct-2407-q8_0
También podrías querer probar los modelos Qwen2
# el predeterminado, 4,4 GB
ollama pull qwen2:7b-instruct-q4_0
# 8,1 GB
ollama pull qwen2:7b-instruct-q8_0
Los modelos que más me gustaron son: llama3.1:8b-instruct-q6_K y mistral-nemo:12b-instruct-2407-q8_0.
Para ver los modelos que Ollama tiene en su repositorio local:
ollama list
Para eliminar algunos modelos innecesarios:
ollama rm qwen2:7b-instruct-q4_0 # por ejemplo
Modelos de embedding
Puedes omitir la instalación de estos, Perplexica tiene preinstalados 3 modelos de embedding: BGE Small, GTE Small y Bert bilingüe. Funcionan bastante bien, pero podrías querer probar otros modelos de embedding.
En la sección anterior de instalación de Ollama instalaste el modelo de embedding nomic-embed-text:latest, es un buen modelo, pero te recomendaría que también intentes:
ollama pull jina/jina-embeddings-v2-base-en:latest
# y
ollama pull bge-m3:567m-fp16
Me gustaron más los resultados del modelo jina/jina-embeddings-v2-base-en:latest, pero pruébalo tú mismo.
Instalación de Perplexica en la red
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 es necesario)
docker compose down --rmi all
Coloca la dirección IP de tu servidor de 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 y inicia:
docker compose up -d --build
Actualizando Perplexica
Perplexica en ejecución en docker:
# Detén y elimina todos los contenedores (!!! solo si es necesario)
docker compose down --rmi all
# navega al directorio del proyecto
# donde clonaste perplexica durante la instalación
cd Perplexica
# actualiza
git pull
# Actualiza y Reconstruye los contenedores de Docker:
docker compose up -d --build
Para instalaciones no en docker, por favor vea: https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md
Preguntas frecuentes
-
P: ¿Qué es Perplexica?
-
R: Perplexica es un motor de búsqueda de IA gratuito y autoalojado, y una alternativa a perplexity.ai y los sistemas 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, extraer los modelos, luego instalar Perplexica.
-
P: ¿Cuáles son las opciones de personalización disponibles en Perplexica?
-
R: Las opciones incluyen elegir diferentes modelos como LLama 3.1, Mistral Nemo o Gemma2, configurar modelos de embedding 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.
Enlaces útiles
- Modelos de embedding y reranker de Qwen3 en Ollama: rendimiento de vanguardia
- Prueba: cómo Ollama utiliza el rendimiento de los núcleos de CPU de Intel y núcleos eficientes
- Cómo maneja Ollama las solicitudes paralelas
- Prueba de Deepseek-r1 en Ollama
- Instrucciones de instalación en el sitio de Perplexica: https://github.com/ItzCrazyKns/Perplexica
- Exponer Perplexica a la red
- Comparación del rendimiento de velocidad de LLM
- Instalar Ollama y mover modelos de Ollama a una carpeta diferente
- Comparación de habilidades de resumen de LLM
- Comparación de LLM: Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 y Phi
- Guía rápida de Ollama