So verwandeln Sie ein lokales neuronales Netz in einen autonomen Internet-Rechercheur
Standard-Chatbots mit Web-Zugriff folgen einem einfachen Muster: Sie stellen eine Frage, das Modell führt eine einzige Suchanfrage durch, greift ein paar Schnipsel auf und generiert eine schnelle Antwort. Wenn das Thema komplex ist, reicht eine oberflächliche Suche nicht aus. Sie landen dabei, manuell Links zu öffnen, Abfragen neu zu formulieren und Fakten Stück für Stück zusammenzusetzen.
Das Projekt Automated-AI-Web-Researcher-Ollama verfolgt einen anderen Ansatz. Es ist ein Python-Konsolenprogramm, das ein lokales Sprachmodell, das auf Ollama läuft, in einen autonomen Rechercheagenten verwandelt. Sie stellen eine Frage, führen das Skript aus und können in Ruhe Kaffee trinken. Das Programm zerlegt das Thema selbst in Teilaufgaben, sucht über DuckDuckGo nach Artikeln, parst Websites, extrahiert Text und arbeitet sich iterativ tiefer in das Thema ein, basierend auf dem gefundenen Material.
Was steckt unter der Haube und wie es funktioniert
Der Autor des Projekts hat das Tool als offenen Prototyp für die Arbeit mit offenen Modellen geschrieben. Die gesamte Textverarbeitung findet auf Ihrem Rechner statt, daher werden Abfragen und heruntergeladene Texte nicht an Drittanbieter-Server wie OpenAI oder Anthropic gesendet.
Der Algorithmus funktioniert wie folgt:
- Sie formulieren ein Recherche-Thema. Zum Beispiel:
@В каком году население Земли начнет сокращаться по прогнозам демографов? - Das Modell analysiert die Frage und erstellt eine Liste von fünf spezifischen Suchrichtungen, die es priorisiert.
- Für jede Richtung erstellt das Skript nacheinander Suchanfragen, sendet sie an DuckDuckGo, wählt geeignete Seiten aus und parst deren Inhalt.
- Alle gefundenen Texte zusammen mit Links werden sofort in eine lokale Textdatei gespeichert.
- Nach Abschluss der ersten Runde analysiert das Modell die gesammelten Daten, identifiziert Lücken und erstellt die nächste Liste von Suchrichtungen.
Die Schleife wird fortgesetzt, bis Sie den Prozess stoppen. In kurzer Zeit schafft es das Skript, mehrere Dutzend Suchanfragen zu stellen und Dutzende von Seiten herunterzuladen.
Wenn Sie den Stopp-Befehl geben, überprüft das LLM die gesamte akkumulierte Datei und schreibt einen detaillierten Abschlussbericht mit Quelllinks. Danach wird sofort ein interaktiver Modus aktiviert, in dem Sie Nachfragen zur gesammelten Wissensbasis stellen können.
Installation und Einrichtung
Sie benötigen Ollama und Python 3.10 oder neuer. Da das Skript große Textmengen sammelt, benötigt das Modell ein großes Kontextfenster. Der Autor empfiehlt die Phi-3-Familie mit einem 128k-Kontextfenster (zum Beispiel phi3:3.8b-mini-128k-instruct oder phi3:14b-medium-128k-instruct).
Klonen Sie das Repository und erstellen Sie eine virtuelle Umgebung:
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-Benutzer müssen zum feature/windows-support-Branch wechseln.
Öffnen Sie dann die llm_config.py-Datei und konfigurieren Sie die Verbindung zu 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"]
}
Der Parameter n_ctx legt die Kontextfenstergröße in Tokens fest. Passen Sie ihn entsprechend Ihrem verfügbaren RAM und Ihrer Grafikspeicherkapazität an.
Starten Sie den Ollama-Server und das Skript selbst:
ollama serve
python Web-LLM.py
Geben Sie in der Konsole das @-Symbol ein, schreiben Sie Ihre Frage und drücken Sie CTRL+D zum Starten.
Verwaltung des Recherche-Prozesses
Während der Skriptausführung werden Statusanzeigen im Terminal angezeigt. Der Prozess ist vollständig interaktiv. Sie können dem Tool jederzeit Ein-Zeichen-Befehle senden (jeweils bestätigt durch CTRL+D):
szeigt den aktuellen Status und die Statistiken des gesammelten Materials.fgibt die aktuelle Suchrichtung aus, über die das Modell nachdenkt.ppausiert die Sammlung. Das Modell bewertet schnell das akkumulierte Material und meldet, ob genügend Informationen für eine umfassende Antwort vorhanden sind. Dann wählen Sie, ob Sie die Sammlung fortsetzen (c) oder beenden (q) möchten.qstoppt die Recherche sofort und löst die Abschlusszusammenfassung aus.
Nach dem Stopp verbleiben alle Quellmaterialien, Links und strukturierten Zusammenfassungen in einer Textdatei im Arbeitsordner.
Dinge, die Sie beachten sollten
Das Projekt befindet sich im Stadium eines funktionierenden Prototyps. Der Code ist ziemlich straightforward geschrieben, ohne schwere Frameworks wie LangChain oder AutoGen, was eigentlich ein Vorteil ist: Die Parsing-Logik und die Interaktion mit Ollama sind leicht lesbar und für Ihre eigenen Aufgaben anpassbar.
Es gibt ein paar Feinheiten:
- Die Geschwindigkeit hängt direkt von Ihrer Hardware ab. Wenn Sie ein 14B-Parameter-Modell mit einem 50k-Token-Kontext auf der CPU ausführen, wird die Generierung von Zwischenschritten considerable Zeit in Anspruch nehmen. Auf GPUs mit 12-16 GB VRAM fliegt das Tool schnell.
- Für tiefe Analysen ist es besser, Modelle mit guter Unterstützung für lange Kontexte zu verwenden. Neben Phi-3 eignen sich moderne Mistral NeMo oder Qwen 2.5 perfekt dafür.
- Der Seitenparser ist einfach gehalten, daher können komplexe Websites mit viel clientseitigem JavaScript unvollständige Inhalte zurückgeben.
Wem dieses Tool nützlich sein wird
Das Skript ist hilfreich für Entwickler und Analysten, die regelmäßig schnell in neue Technologien eintauchen, technische Dokumentation zu seltenen Bibliotheken sammeln oder Markttrends analysieren müssen. Anstatt monotones Surfen im Browser übernehmen Sie die Aufgabe einem lokalen Agenten und erhalten sofort eine fertige Zusammenfassung mit verifizierten Links.
Wenn Sie mit Agent-Pipelines auf Ollama-Basis experimentieren, dient das Projekt als gutes illustratives Beispiel dafür, wie man einen autonomen Recherchezyklus auf offenen Modellen mit minimalen Abhängigkeiten aufbaut.
Ähnliche Projekte
