Hoe je een lokaal neuraal netwerk omzet in een autonome internetonderzoeker
Standaard chatbots met webtoegang volgen een eenvoudig patroon: je stelt een vraag, het model maakt één zoekopdracht, pakt een paar fragmenten en genereert een snelle reactie. Als het onderwerp complex is, is een oppervlakkige zoekopdracht niet voldoende. Je eindigt met het handmatig openen van links, het herformuleren van zoektermen en het beetje bij beetje samenvoegen van feiten.
Het Automated-AI-Web-Researcher-Ollama-project pakt dit anders aan. Het is een Python-consolehulpprogramma dat een lokaal taalmodel dat draait op Ollama omzet in een autonoom onderzoeksagent. Je stelt één vraag, voert het script uit en kunt rustig koffie gaan drinken. Het programma breekt het onderwerp zelf af in subtaken, zoekt naar artikelen via DuckDuckGo, parseert websites, extraheert tekst en graaft iteratief dieper in het onderwerp op basis van het gevonden materiaal.
Wat zit er onder de motorkap en hoe het werkt
De auteur van het project schreef het hulpprogramma als een open prototype voor het werken met open modellen. Alle tekstverwerking vindt plaats op je eigen machine, dus zoekopdrachten en gedownloade teksten worden niet naar servers van derden zoals OpenAI of Anthropic gestuurd.
De algoritme werkt als volgt:
- Je formuleert een onderzoeksonderwerp. Bijvoorbeeld:
@В каком году население Земли начнет сокращаться по прогнозам демографов? - Het model bestudeert de vraag en maakt een lijst van vijf specifieke zoekrichtingen, gerangschikt op prioriteit.
- Voor elke richting genereert het script zoekquery's, stuurt deze naar DuckDuckGo, selecteert geschikte pagina's en parseert hun inhoud.
- Alle gevonden tekst samen met links wordt direct opgeslagen in een lokaal tekstbestand.
- Na het voltooien van de eerste ronde analyseert het model de verzamelde gegevens, identificeert hiaten en maakt de volgende lijst van zoekrichtingen.
De lus gaat door tot je het proces stopt. In korte tijd lukt het het script om enkele tientallen zoekopdrachten te doen en tientallen pagina's te downloaden.
Wanneer je de stopopdracht geeft, bekijkt de LLM het volledige gecumuleerde bestand en schrijft een gedetailleerd eindrapport met bronlinks. Direct daarna wordt een interactieve modus geactiveerd waarin je vervolgvragen kunt stellen over de verzamelde kennisbank.
Installatie en configuratie
Je hebt Ollama geïnstalleerd nodig en Python 3.10 of nieuwer. Omdat het script grote hoeveelheden tekst verzamelt, heeft het model een groot contextvenster nodig. De auteur raadt de Phi-3-familie aan met een 128k contextvenster (bijvoorbeeld phi3:3.8b-mini-128k-instruct of phi3:14b-medium-128k-instruct).
Kloon de repository en maak een virtuele omgeving aan:
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
Windows-gebruikers moeten overschakelen naar de feature/windows-support-branch.
Open vervolgens het llm_config.py bestand en configureer de verbinding met 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"]
}
De n_ctx parameter stelt de contextvenster-grootte in tokens in. Pas deze aan op basis van je beschikbare RAM en videogeheugen.
Start de Ollama-server en het script zelf:
ollama serve
python Web-LLM.py
Typ in de console het @ symbool, schrijf je vraag en druk op CTRL+D om te starten.
Het onderzoeksproces beheren
Statusindicatoren worden weergegeven in de terminal tijdens de scriptuitvoering. Het proces is volledig interactief. Je kunt te allen tijde commando's met één teken aan het hulpprogramma doorgeven (elk bevestigd door op CTRL+D te drukken):
stoont de huidige status en statistieken van verzameld materiaal.ftoont de huidige zoekrichting waarover het model nadenkt.ppauzeert de verzameling. Het model evalueert snel het gecumuleerde materiaal en rapporteert of er voldoende informatie is voor een uitgebreid antwoord. Vervolgens kies je of je doorgaat met verzamelen (c) of het beëindigt (q).qstopt het onderzoek onmiddellijk en activeert de generatie van de eindsamenvatting.
Na het stoppen blijven alle bronmaterialen, links en gestructureerde samenvattingen in een tekstbestand in de werkmap.
Waar je rekening mee moet houden
Het project bevindt zich in de fase van een werkend prototype. De code is vrij rechtstreeks geschreven, zonder zware frameworks zoals LangChain of AutoGen, wat eigenlijk een pluspunt is: de parsinglogica en interactie met Ollama is gemakkelijk te lezen en aan te passen voor je eigen taken.
Er zijn een paar nuances:
- Snelheid hangt rechtstreeks af van je hardware. Als je een 14B parametermodel met een 50k token context op CPU draait, kost het genereren van tussenstappen aanzienlijke tijd. Op GPU's met 12-16 GB VRAM flitst het hulpprogramma snel.
- Voor diepgaande analyse kun je beter modellen gebruiken met goede ondersteuning voor lange contexten. Naast Phi-3 zijn moderne Mistral NeMo of Qwen 2.5 hier perfect voor geschikt.
- De paginaparser is basisch, dus complexe sites met zware client-side JavaScript kunnen onvolledige inhoud retourneren.
Voor wie is dit hulpprogramma nuttig
Het script is nuttig voor ontwikkelaars en analisten die regelmatig snel in nieuwe technologieën moeten duiken, technische documentatie over zeldzame bibliotheken moeten verzamelen of markttrends moeten analyseren. In plaats van eentonig door browsers surfen, delegeer je de taak aan een lokale agent en krijg je direct een kant-en-klare samenvatting met geverifieerde links.
Als je experimenteert met agent-pipelines op basis van Ollama, dient het project als een goed illustratief voorbeeld van hoe je een autonoom onderzoekscyclus op open modellen bouwt met minimale afhankelijkheden.
Gerelateerde projecten
