Auto-hébergement de Perplexica avec Ollama
Exécuter localement un service du style Copilot ? Facile !
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 !
C’est quoi
Perplexica est un système similaire à Copilot et Perplexity.ai.
- Vous posez une question
- L’IA cherche sur Internet les réponses (vous pouvez spécifier où chercher : articles académiques, écrits, YouTube, Reddit…)
- Puis 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
- Aussi une liste d’images et de vidéos YouTube à droite
- Aussi 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 laptop puissant.
Ici, nous voyons la réponse de Perplexica avec le modèle de chat llama3.1 8b q6 et le modèle d’embedding jina - à la question « Qui est Elon Mask ? »
Perplexica se compose de plusieurs modules
- SearxNG - moteur de métarecherche. Il appellera 10+ autres moteurs de recherche pour obtenir les résultats, donc Perplexica peut les combiner.
SearxNG est très configurable, vous pouvez activer ou désactiver chaque moteur et ajouter de nouveaux.
Mais pour nos besoins, la configuration par défaut fonctionne bien. - Perplexica Backend et Frontend. Techniquement, ce sont deux modules séparés, un fournit l’API, l’autre l’interface utilisateur
- 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 de les utiliser.
L’installation de tout le système se compose de deux grandes étapes :
- Installer Ollama + télécharger les modèles Ollama
- 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 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
Éditez 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 les 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 dockerisé 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.
Clonez le dépôt Perplexica :
git clone https://github.com/ItzCrazyKns/Perplexica.git
Après le clone, naviguez vers le 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 effectuant un git pull dans ce dépôt - alors copiez simplement 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 tirera les images Docker SearxNG et base node, construira deux images Docker Perplexica et démarrera 3 conteneurs. Attendez quelques minutes pour que l’installation se termine.
Vous pouvez accéder à Perplexica à l’adresse http://localhost:3000 dans votre navigateur web.
Allez dans les Paramètres. Vous savez - l’icône de la roue dentée en bas à gauche, et choisissez vos 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 thème sombre :
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é une réponse bien meilleure, mais un peu plus lente.
- llama3.1:8b-instruct-q8_0 (8,5 Go) - ou peut-être celui-ci.
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 ai recommandé :
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 modèles :
# 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 ignorer l’installation de ces modèles, Perplexica a déjà trois modèles d’embedding préinstallés : 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é le résultat du modèle jina/jina-embeddings-v2-base-en:latest, mais voyez par vous-même.
Installation réseau de Perplexica
Si vous l’installez sur un serveur réseau, alors avant de
docker compose up -d
ou si vous exécutez déjà Perplexica et que vous devez reconstruire les images
# Arrêtez-le et supprimez tous les conteneurs (!!! uniquement si nécessaire)
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 (!!! uniquement si nécessaire)
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 Reconstruisez 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é, une alternative à perplexity.ai et aux systèmes Copilot qui permet aux utilisateurs d’exécuter 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.
Liens utiles
- Modèles d’embedding et de réorganisation de Qwen3 sur Ollama : performance d’avant-garde
- Test : Comment Ollama utilise les performances du processeur Intel et les cœurs efficaces
- Comment Ollama gère les demandes parallèles
- Test de Deepseek-r1 sur Ollama
- Instructions d’installation sur le site Perplexica : https://github.com/ItzCrazyKns/Perplexica
- Exposer Perplexica au réseau
- Comparaison de la performance des LLM
- Installer Ollama et déplacer les modèles Ollama vers un dossier différent
- Comparaison des capacités de résumé des LLM
- Comparaison des LLM : Mistral Small, Gemma 2, Qwen 2.5, Mistral Nemo, LLama3 et Phi
- Feuille de route Ollama