SearXNG : donner la recherche web à un modèle local
Un modèle ouvert ignore tout de cette semaine, et rien dans sa réponse ne vous prévient : il parlera du mois dernier avec le même aplomb que d'une table de multiplication. Lui donner accès à une recherche web corrige ça. SearXNG est un métamoteur auto-hébergé qui rend ce service sans clé d'API, sans facture à la requête et sans compte — ce qui en fait la brique cohérente d'une installation locale, où l'on n'a pas envie d'envoyer chaque question chez un tiers.
#Pourquoi un modèle local a besoin du web
La connaissance d'un modèle s'arrête à sa date d'entraînement, et il ne sait pas où se situe cette frontière. Deux solutions existent : lui fournir vous-même les faits dans le prompt, ou lui donner le moyen d'aller les chercher. La recherche est la forme générale de la seconde.
La voie évidente est une API de recherche commerciale : un compte, une clé, une facture à la requête. SearXNG est l'alternative auto-hébergée. Vous exploitez l'instance, les requêtes partent de chez vous, aucun compte n'existe et rien n'est journalisé sauf si vous le décidez. Pour une installation dont l'intérêt est précisément que les données restent à la maison, envoyer chaque question à un service tiers par la porte de service serait un drôle d'endroit où s'arrêter.
#Ce que fait SearXNG, sans magie
Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.
- Espace en ligne à vie
- PDF + fichiers
- Remboursé 30 j
SearXNG n'explore pas le web et ne possède aucun index. C'est un intermédiaire : votre requête part vers un ensemble configurable de moteurs existants, leurs réponses reviennent, sont dédupliquées et reclassées, et vous recevez une liste unique. Les moteurs interrogés ne voient pas votre adresse IP mais celle de l'instance.
- La qualité est héritée
- Désactivez les moteurs qui renvoient du bruit pour votre usage : cela améliore les réponses du modèle davantage que n'importe quelle retouche de prompt.
- L'automatisation ressemble à un abus
- Un humain lance quelques recherches par minute, une boucle d'agent en lance des dizaines. Les moteurs en amont répondent par des captchas et des blocages temporaires, que vous voyez arriver sous forme de résultats vides.
#L'installer
- 01Déployer le conteneur
- 02Le garder sur le réseau local
- 03Vérifier depuis la machine qui l'appellera
#Le réglage que tout le monde manque
Par défaut, une instance SearXNG ne sert que du HTML : parfait pour un humain, inutilisable pour un programme. La liste des formats autorisés se trouve dans le fichier de configuration, sous la clé des formats de recherche, et il faut y ajouter le format JSON puis redémarrer. C'est l'unique cause de la grande majorité des « ça ne marche pas » rencontrés en branchant SearXNG à une interface de chat.
#Le brancher à votre modèle
| Environnement | Rôle de SearXNG |
|---|---|
| Interface web de chat local | Fournisseur de recherche intégré : on renseigne l'URL de l'instance, les réponses gagnent une liste de sources |
| Cadriciel d'agents | Un outil de recherche que l'agent peut appeler |
| Chaîne de recherche documentaire | Étape de récupération pour les questions d'actualité, à côté de l'index de vos documents |
| Outil d'automatisation | Un simple appel HTTP vers le point d'accès JSON |
Le schéma est toujours le même : la recherche renvoie des extraits et des adresses, votre code ou votre interface en retient quelques-uns, et ils sont insérés dans le prompt avant que le modèle ne réponde. Le modèle ne navigue pas : il lit ce qu'on lui a tendu. C'est pourquoi la qualité des extraits et la taille de la fenêtre de contexte pèsent ici plus lourd que la taille du modèle.
- Installer Open WebUI, l'interface qui consomme ces résultats
- Automatiser des enchaînements avec n8n et Ollama
- Architecture d'un agent local qui utilise des outils
#Les limites à prévoir
- Les quotas des moteurs
- Des résultats vides signifient presque toujours un blocage en amont, pas une erreur de configuration. Moins de moteurs actifs, plus de cache, et pas d'agent qui cherche en boucle.
- Des extraits courts
- Pour du contenu en profondeur, il faut récupérer et nettoyer les pages derrière les liens : c'est le métier d'un extracteur, pas d'un moteur de recherche.
- Aucun classement intelligent
- SearXNG fusionne des résultats, il ne comprend pas votre question. Une requête vague renvoie un contexte vague, que le modèle résume consciencieusement.
- L'entretien vous revient
- Les moteurs en amont changent leurs pages, les modules doivent suivre. Une instance laissée un an sans mise à jour se dégrade silencieusement.
#FAQ
SearXNG est-il gratuit ?+
Pourquoi mon instance renvoie du HTML et pas du JSON ?+
Puis-je utiliser une instance publique au lieu d'héberger la mienne ?+
Faut-il un GPU ?+
Pourquoi les résultats deviennent vides au bout d'un moment ?+
Est-ce que cela rend mon modèle à jour ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.