Cette page est informative et sans valeur de conseil. Vérifiez la licence de l'outil et de ses dépendances. Les réponses générées par le LLM peuvent contenir des erreurs : croisez toujours les informations importantes avec les sources originales.
À quoi ça sert
Perplexica prend votre question, lance des recherches web via SearXNG, récupère les pages pertinentes, et demande à un LLM de synthétiser une réponse sourcée. L'interface ressemble à Perplexity AI mais fonctionne avec vos propres modèles et votre propre instance SearXNG. C'est un outil de recherche augmentée par IA, privé par défaut.
Pour qui
Pour les utilisateurs avancés ou développeurs à l'aise avec Docker et la configuration YAML, qui veulent une recherche web + synthèse IA sans passer par un service cloud propriétaire. Une clé API pour un LLM externe (OpenAI, Ollama en local, OpenRouter…) est nécessaire si vous n'avez pas de modèle local puissant.
Installation
Prérequis
Docker et Docker Compose installés. Une instance SearXNG (peut être configurée dans le même Docker Compose). Un accès LLM : Ollama en local, ou une clé API (OpenAI, OpenRouter, etc.).
Cloner et configurer
git clone https://github.com/ItzCrazyKns/Perplexica.git
cd Perplexica
# Copier le fichier de configuration
cp sample.config.toml config.toml
Configurer config.toml
# Exemples de paramètres à renseigner dans config.toml :
[GENERAL]
PORT = 3000
SIMILARITY_MEASURE = "cosine"
[API_KEYS]
OPENAI = "" # Laisser vide si vous utilisez Ollama
GROQ = "" # Optionnel
ANTHROPIC = "" # Optionnel
[API_ENDPOINTS]
OLLAMA = "http://localhost:11434" # Si Ollama est lancé en local
SEARXNG = "http://searxng:8080" # URL de votre instance SearXNG
Lancer avec Docker Compose
docker compose up -d
L'interface est ensuite accessible sur http://localhost:3000.
Précautions d'usage
- Les réponses du LLM peuvent être inexactes. Perplexica synthétise des résultats de recherche avec un modèle de langage. Le modèle peut se tromper, halluciner ou mal interpréter une source. Consultez toujours les sources citées.
- Les recherches web passent par SearXNG. SearXNG interroge des moteurs de recherche tiers (Google, Bing, DuckDuckGo…). Vos requêtes ne sont pas anonymes vis-à-vis de ces services, même si elles ne remontent pas à vous directement.
- Si vous utilisez une API cloud (OpenAI, etc.). Les questions que vous posez sont alors envoyées à un service tiers. Si la confidentialité est importante, utilisez un LLM local via Ollama.
- Licence. Perplexica est sous licence MIT. Vérifiez la licence de chaque dépendance (SearXNG, LLM utilisé).
Matrice de risque
| Risque | Niveau | Mitigation |
|---|---|---|
| Données envoyées à un LLM cloud | 🟡 Moyen si API externe | Utiliser Ollama en local pour un traitement 100% privé |
| Réponse incorrecte ou hallucination | 🟡 Moyen | Vérifier les sources citées ; ne pas suivre un conseil important sans vérification |
| Requêtes transmises aux moteurs de recherche tiers | 🟡 Moyen | SearXNG anonymise partiellement — accepter cette limite ou choisir des sources privées |
| Exposition du service sur internet | 🔴 Élevé si mal configuré | Ne pas exposer le port 3000 sans authentification ; rester en accès local |
Sécurité
Perplexica s'auto-héberge — ce qui signifie que vous en êtes responsable :
- N'exposez pas l'interface sans authentification. Par défaut, Perplexica écoute sur localhost. Si vous l'exposez sur un réseau ou internet, ajoutez un reverse proxy avec authentification (Nginx + authentification basique, ou Traefik).
- Protégez vos clés API. Le fichier
config.tomlcontient vos clés. Ne le commitez pas dans un dépôt public. - Mettez à jour régulièrement.
git pull && docker compose up -d --buildpour rester à jour.
Aller plus loin
- SearXNG — le méta-moteur de recherche privé que Perplexica utilise en sous-couche.
- Ollama — faire tourner un LLM local pour alimenter Perplexica sans clé API.
- OpenRouter — accéder à de nombreux LLMs cloud via une seule clé API.
- OSIALab — tous les outils de recherche IA.
Sources
- Code source : github.com/ItzCrazyKns/Perplexica
- Licence : MIT
- SearXNG : github.com/searxng/searxng