Auto-hébergement de Perplexica - avec Ollama

Exécuter un service du style Copilot localement ? Facile !

Sommaire

C’est très excitant !

Au lieu d’appeler Copilot ou Perplexity.ai et de tout raconter au monde, vous pouvez maintenant héberger un service similaire sur votre propre ordinateur ou laptop !

Qu’est-ce que c’est

Perplexica est un système similaire à Copilot et Perplexity.ai.

  • Vous posez une question
  • L’IA cherche sur Internet des réponses (vous pouvez spécifier où chercher : articles académiques, écrits, YouTube, Reddit…)
  • Ensuite, l’IA résume tout ce qu’elle a trouvé
  • Puis présente le résultat avec des références vers les sites web d’origine
  • Une liste d’images et de vidéos YouTube à droite
  • Des questions de suivi prêtes pour que vous cliquiez, si vous souhaitez explorer le sujet davantage

Ces systèmes sont hébergés en cloud et appartiennent à certaines entreprises (par exemple, Microsoft ou Meta). Perplexica est un logiciel Open Source que vous pouvez héberger sur votre PC ou sur un ordinateur puissant. Pour une comparaison plus large entre Ollama local et vLLM, Docker Model Runner, LocalAI et fournisseurs de cloud — y compris les compromis en matière de coût et d’infrastructure — consultez LLM Hosting : Local, Self-Hosted & Cloud Infrastructure Compared.

réponse de perplexica avec llama3.1 8b q6 et jina embeddings Ici, nous voyons la réponse de Perplexica avec le modèle de chat llama3.1 8b q6 et le modèle d’embedding de Jina — à la question « Qui est Elon Musk ? »

Perplexica se compose de plusieurs modules

  1. SearxNG - moteur de recherche métasearch. Il appellera 10+ autres moteurs de recherche pour obtenir les résultats, donc Perplexica peut les combiner. SearxNG est très configurable en soi, vous pouvez activer/désactiver chaque moteur et ajouter de nouveaux. Mais pour nos besoins, la configuration par défaut fonctionne bien.
  2. Perplexica Backend et Frontend. Techniquement, ce sont deux modules séparés, un fournit l’API, l’autre l’interface utilisateur
  3. Service Ollama - ce n’est pas une partie du projet Perplexica, mais si vous souhaitez héberger vos LLM localement, Ollama est la seule façon d’y parvenir.

L’installation de tout le système se compose de deux grandes étapes :

  1. Installer Ollama + télécharger les modèles Ollama
  2. Installer Perplexica avec SearxNG

Installer Ollama

Pour commencer avec Ollama, suivez ces étapes :

Installez Ollama en exécutant le script :

curl -fsSL https://ollama.com/install.sh | sh

Demandez à Ollama de télécharger votre modèle LLM préféré. Si c’est Llama3.1 8b q4 - exécutez le script :

ollama pull llama3.1:latest

Téléchargez la dernière version de Nomic-Embed-Text pour l’utiliser comme modèle d’embedding (si c’est votre préféré) en utilisant

ollama pull nomic-embed-text:latest

Modifiez le fichier de service Ollama en exécutant

sudo systemctl edit ollama.service

Ajoutez les lignes suivantes pour exposer Ollama au réseau (Perplexica doit s’y connecter depuis l’intérieur de Docker)

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Relancez le démon systemd et redémarrez le service Ollama :

sudo systemctl daemon-reload
sudo systemctl restart ollama

Vérifiez que Ollama a bien démarré

systemctl status ollama.service
sudo journalctl -u ollama.service --no-pager

Pour une description détaillée sur l’installation, la mise à jour et la configuration d’Ollama, veuillez consulter : Installer et configurer Ollama

Pour plus de détails sur l’utilisation d’autres modèles Ollama avec Perplexica, veuillez consulter la section ‘Installer d’autres modèles Ollama’ ci-dessous.

Installer Perplexica

J’ai installé Perplexica dans un Docker sur Linux, mais un docker-compose très similaire peut être utilisé sur Windows ou Mac.

Allons-y !

Démarrage avec Docker (Recommandé) Assurez-vous que Docker est installé et en cours d’exécution sur votre système.

Cloner le dépôt Perplexica :

git clone https://github.com/ItzCrazyKns/Perplexica.git

Après le clonage, accédez au répertoire contenant les fichiers du projet.

cd Perplexica

Renommez le fichier sample.config.toml en config.toml. Si vous prévoyez de mettre à jour Perplexica ultérieurement — en exécutant git pull dans ce dépôt — alors simplement copiez le fichier sample.config.toml vers config.toml

cp sample.config.toml config.toml

Éditez le fichier de configuration

nano config.toml

Pour les configurations Docker, vous devez uniquement remplir les champs suivants :

OLLAMA : L’URL de l’API Ollama.

Vous devez l’entrer comme http://host.docker.internal:PORT_NUMBER.

Si vous avez installé Ollama sur le port 11434 (celui par défaut), utilisez http://host.docker.internal:11434. Pour d’autres ports, ajustez en conséquence.

Tant que vous êtes toujours dans le répertoire Perplexica, exécutez :

docker compose up -d

Il va télécharger les images Docker SearxNG et base node, construire deux images Docker Perplexica et démarrer 3 conteneurs. Attendez quelques minutes pour que l’installation se termine.

Vous pouvez accéder à Perplexica à http://localhost:3000 dans votre navigateur web.

Allez dans Paramètres. Vous savez — l’icône Cog en bas à gauche, et choisissez vos modèles Ollama

paramètres de perplexica - configuration des modèles ollama

Ici, vous voyez le modèle de chat sélectionné llama3.1:8b-instruct-q6_K (Llama 3.1 8b avec quantification q6_K), et le modèle d’embedding nomic-embed-text:137m-v1.5-fp16.

Vous pouvez également choisir le thème Clair ou Sombre selon ce que vous préférez.

Les options de recherche de Perplexica (Cliquez sur cet œil dans l’icône de la boîte), en mode Sombre : options de recherche de perplexica

Installer d’autres modèles Ollama

Vous avez déjà installé les modèles llama3.1:latest et nomic-embed-text:latest dans la section “Installer Ollama” précédente.

Vous n’avez besoin que d’un seul modèle pour le chat, mais il existe de nombreux modèles disponibles. Ils se comportent légèrement différemment, il est bon de commencer par les plus courants : Llama3.1, Gemma2, Mistral Nemo ou Qwen2.

Modèles de chat

Le nom complet du modèle de chat que vous avez vu dans la section d’installation - llama3.1:latest est llama3.1:8b-text-q4_0. Cela signifie qu’il a 8 milliards de paramètres et une quantification 4_0. Il est rapide et relativement petit (4,8 Go), mais si votre GPU a plus de mémoire, je vous recommanderais de tenter

  • llama3.1:8b-instruct-q6_K (6,7 Go) - dans mes tests, il a montré beaucoup de meilleures réponses, bien qu’un peu plus lent.
  • llama3.1:8b-instruct-q8_0 (8,5 Go) - ou peut-être ce dernier.

En général, tous les modèles du groupe llama3.1:8b sont relativement rapides.

vous pouvez les tirer avec le script que je vous recommande d’essayer :

ollama pull llama3.1:8b-instruct-q6_K
ollama pull llama3.1:8b-instruct-q8_0

En comparaison avec Llama3.1:8b, Gemma2 produit des réponses plus concises et artistiques. Essayez ces :

# 9,8 Go
ollama pull gemma2:9b-instruct-q8_0

# 14 Go
ollama pull gemma2:27b-instruct-q3_K_L

Les modèles Mistral Nemo produisent des réponses quelque part entre Gemma2 et Llama3.1.

# le modèle par défaut, 7,1 Go
ollama pull mistral-nemo:12b-instruct-2407-q4_0

# 10 Go
ollama pull mistral-nemo:12b-instruct-2407-q6_K

# 13 Go
ollama pull mistral-nemo:12b-instruct-2407-q8_0

Vous pourriez aussi vouloir essayer les modèles Qwen2

# le modèle par défaut, 4,4 Go
ollama pull qwen2:7b-instruct-q4_0

# 8,1 Go
ollama pull qwen2:7b-instruct-q8_0

Les modèles que j’ai préférés sont : llama3.1:8b-instruct-q6_K et mistral-nemo:12b-instruct-2407-q8_0.

Pour vérifier les modèles que Ollama a localement :

ollama list

Pour supprimer un modèle inutile :

ollama rm qwen2:7b-instruct-q4_0 # par exemple

Modèles d’embedding

Vous pouvez sauter l’installation de ceux-ci, Perplexica a déjà installé 3 modèles d’embedding : BGE Small, GTE Small et Bert bilingue. Ils fonctionnent pas mal, mais vous pourriez vouloir essayer d’autres modèles d’embedding.

Dans la section d’installation d’Ollama ci-dessus, vous avez installé le modèle d’embedding nomic-embed-text:latest, c’est un bon modèle, mais je vous recommanderais aussi d’essayer :

ollama pull jina/jina-embeddings-v2-base-en:latest
# et 
ollama pull bge-m3:567m-fp16

J’ai préféré les résultats du modèle jina/jina-embeddings-v2-base-en:latest, mais voyez vous-même.

Installation réseau de Perplexica

Si vous l’installez sur un serveur réseau, alors avant la

docker compose up -d

ou si vous exécutez déjà Perplexica et avez besoin de reconstruire les images

# Arrêtez-le et supprimez tous les conteneurs (!!! si vous en avez besoin uniquement)
docker compose down --rmi all

Insérez l’adresse IP de votre serveur Perplexica dans docker-compose.yaml : puis avant

nano docker-compose.yaml
perplexica-frontend:
    build:
      context: .
      dockerfile: app.dockerfile
      args:
      - NEXT_PUBLIC_API_URL=http://127.0.0.1:3001/api   # << ici
      - NEXT_PUBLIC_WS_URL=ws://127.0.0.1:3001          # << ici
    depends_on:
      - perplexica-backend

maintenant démarrez les conteneurs Perplexica et SearxNG :

docker compose up -d

Ou reconstruisez et démarrez :

docker compose up -d --build

Mise à jour de Perplexica

Perplexica en cours d’exécution sur Docker :

# Arrêtez-le et supprimez tous les conteneurs (!!! si vous en avez besoin uniquement)
docker compose down --rmi all

# Naviguez vers le dossier du projet
# où vous avez cloné Perplexica lors de l'installation
cd Perplexica

# Téléchargez les mises à jour
git pull

# Mise à jour et Reconstruire les conteneurs Docker :
docker compose up -d --build

Pour les installations non Docker, veuillez consulter : https://github.com/ItzCrazyKns/Perplexica/blob/master/docs/installation/UPDATING.md

FAQ

  • Q : Qu’est-ce que Perplexica ?

  • A : Perplexica est un moteur de recherche AI gratuit et auto-hébergé, et une alternative à perplexity.ai et aux systèmes Copilot qui permet aux utilisateurs de faire fonctionner leur propre moteur de recherche localement sur leur ordinateur.

  • Q : Quelles sont les étapes pour installer et configurer Perplexica avec Ollama ?

  • A : Les étapes comprennent l’installation d’Ollama, le téléchargement des modèles, puis l’installation de Perplexica.

  • Q : Quelles options de personnalisation sont disponibles dans Perplexica ?

  • A : Les options comprennent le choix de différents modèles comme LLama 3.1, Mistral Nemo ou Gemma2, la configuration de modèles d’embedding locaux, et l’exploration de différentes options de recherche telles que les actualités, les articles académiques, les vidéos YouTube et les forums Reddit.

  • Q : Quel modèle Ollama utiliser avec Perplexica ?

  • A : Les meilleurs résultats que nous avons obtenus dans nos tests étaient lorsqu’on exécutait Perplexica avec llama3.1:8b-instruct-q6_K et jina/jina-embeddings-v2-base-en:latest.

Pour voir comment Ollama (le backend typique de Perplexica) s’intègre avec vLLM, Docker Model Runner, LocalAI et fournisseurs de cloud, consultez notre guide LLM Hosting : Local, Self-Hosted & Cloud Infrastructure Compared.

Liens utiles