Comment transformer un réseau neuronal local en chercheur internet autonome
Les chatbots standard avec accès web suivent un schéma simple : vous posez une question, le modèle effectue une recherche, récupère quelques extraits et génère une réponse rapide. Si le sujet est complexe, une recherche superficielle ne suffit pas. Vous vous retrouvez à ouvrir manuellement des liens, reformuler des requêtes et assembler les faits petit à petit.
Le projet Automated-AI-Web-Researcher-Ollama adopte une approche différente. C'est un utilitaire console Python qui transforme un modèle de langage local fonctionnant sur Ollama en agent de recherche autonome. Vous posez une question, lancez le script, et vous pouvez tranquillement aller boire un café. Le programme lui-même décompose le sujet en sous-tâches, recherche des articles via DuckDuckGo, analyse les sites web, extrait le texte et creuse progressivement le sujet en fonction du matériel trouvé.
Ce qu'il y a sous le capot et comment ça fonctionne
L'auteur du projet a écrit cet utilitaire comme un prototype ouvert pour travailler avec des modèles ouverts. Tout le traitement de texte se fait sur votre machine, donc les requêtes et les textes téléchargés ne sont pas envoyés vers des serveurs tiers comme OpenAI ou Anthropic.
L'algorithme fonctionne comme suit :
- Vous formulez un sujet de recherche. Par exemple :
@В каком году население Земли начнет сокращаться по прогнозам демографов? - Le modèle étudie la question et crée une liste de cinq directions de recherche spécifiques, en les hiérarchisant.
- Pour chaque direction à tour de rôle, le script génère des requêtes de recherche, les envoie à DuckDuckGo, sélectionne les pages appropriées et analyse leur contenu.
- Tout le texte trouvé ainsi que les liens sont immédiatement sauvegardés dans un fichier texte local.
- Après avoir terminé le premier tour, le modèle analyse les données collectées, identifie les lacunes et crée la liste suivante de directions de recherche.
La boucle continue jusqu'à ce que vous arrêtiez le processus. En peu de temps, le script parvient à effectuer plusieurs dizaines de requêtes de recherche et à télécharger des dizaines de pages.
Lorsque vous appuyez sur la commande d'arrêt, le LLM passe en revue l'ensemble du fichier accumulé et rédige un rapport final détaillé avec les liens sources. Immédiatement après, un mode interactif s'active où vous pouvez poser des questions complémentaires sur la base de connaissances collectée.
Installation et configuration
Vous aurez besoin d'Ollama installé et de Python 3.10 ou plus récent. Comme le script collecte de grandes quantités de texte, le modèle nécessite une fenêtre de contexte longue. L'auteur recommande la famille Phi-3 avec une fenêtre de contexte de 128k (par exemple, phi3:3.8b-mini-128k-instruct ou phi3:14b-medium-128k-instruct).
Clonez le dépôt et créez un environnement virtuel :
git clone https://github.com/TheBlewish/Automated-AI-Web-Researcher-Ollama
cd Automated-AI-Web-Researcher-Ollama
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Les utilisateurs Windows doivent passer à la branche feature/windows-support.
Puis ouvrez le fichier llm_config.py et configurez la connexion à Ollama :
LLM_CONFIG_OLLAMA = {
"llm_type": "ollama",
"base_url": "http://localhost:11434",
"model_name": "phi3:3.8b-mini-128k-instruct",
"temperature": 0.7,
"top_p": 0.9,
"n_ctx": 55000,
"stop": ["User:", "\n\n"]
}
Le paramètre n_ctx définit la taille de la fenêtre de contexte en tokens. Ajustez-le en fonction de votre RAM et de votre mémoire vidéo disponibles.
Démarrez le serveur Ollama et le script lui-même :
ollama serve
python Web-LLM.py
Dans la console, tapez le symbole @, écrivez votre question et appuyez sur CTRL+D pour démarrer.
Gestion du processus de recherche
Des indicateurs d'état s'affichent dans le terminal pendant l'exécution du script. Le processus est entièrement interactif. Vous pouvez passer des commandes d'un seul caractère à l'utilitaire à tout moment (chacune confirmée en appuyant sur CTRL+D) :
saffiche l'état actuel et les statistiques du matériel collecté.faffiche la direction de recherche actuelle que le modèle envisage.pmet en pause la collecte. Le modèle évalue rapidement le matériel accumulé et indique s'il y a suffisamment d'informations pour une réponse complète. Ensuite, vous choisissez de continuer la collecte (c) ou de la terminer (q).qarrête immédiatement la recherche et déclenche la génération du résumé final.
Après l'arrêt, tous les matériaux sources, liens et résumés structurés restent dans un fichier texte dans le dossier de travail.
Points à garder à l'esprit
Le projet est au stade de prototype fonctionnel. Le code est écrit de manière assez directe, sans frameworks lourds comme LangChain ou AutoGen, ce qui est en fait un avantage : la logique d'analyse et l'interaction avec Ollama sont faciles à lire et à modifier pour vos propres tâches.
Il y a quelques nuances :
- La vitesse dépend directement de votre matériel. Si vous exécutez un modèle de 14B paramètres avec un contexte de 50k tokens sur CPU, la génération des étapes intermédiaires prendra un temps considérable. Sur les GPU avec 12-16 Go de VRAM, l'utilitaire fonctionne très rapidement.
- Pour une analyse approfondie, il vaut mieux utiliser des modèles avec un bon support de contexte long. En dehors de Phi-3, les Mistral NeMo ou Qwen 2.5 modernes correspondent parfaitement à cette exigence.
- L'analyseur de pages est basique, donc les sites complexes avec beaucoup de JavaScript côté client peuvent renvoyer un contenu incomplet.
Qui trouvera cet utilitaire utile
Le script sera utile pour les développeurs et les analystes qui ont régulièrement besoin de se plonger rapidement dans de nouvelles technologies, de rassembler de la documentation technique sur des bibliothèques rares ou d'analyser les tendances du marché. Au lieu de naviguer monotonement dans le navigateur, vous déléguez la tâche à un agent local et obtenez immédiatement un résumé prêt à l'emploi avec des liens vérifiés.
Si vous expérimentez avec des pipelines d'agents basés sur Ollama, le projet sert de bon exemple illustratif de la façon de construire un cycle de recherche autonome sur des modèles ouverts avec des dépendances minimales.
Projets similaires
