Come trasformare una rete neurale locale in un ricercatore internet autonomo
I chatbot standard con accesso web seguono un pattern semplice: poni una domanda, il modello effettua una singola query di ricerca, raccoglie un paio di frammenti e genera una risposta rapida. Se l'argomento è complesso, una ricerca superficiale non basta. Ti ritrovi ad aprire manualmente i link, a riformulare le query e a ricomporre i fatti pezzo dopo pezzo.
Il progetto Automated-AI-Web-Researcher-Ollama adotta un approccio diverso. È un'utilità console Python che trasforma un modello linguistico locale in esecuzione su Ollama in un agente di ricerca autonomo. Poni una singola domanda, esegui lo script e puoi andare a bere un caffè tranquillo. Il programma stesso scompone l'argomento in sottotask, cerca articoli tramite DuckDuckGo, analizza i siti web, estrae il testo e approfondisce iterativamente l'argomento in base al materiale trovato.
Cosa c'è sotto il cofano e come funziona
L'autore del progetto ha scritto l'utilità come prototype aperto per lavorare con modelli open. Tutta l'elaborazione del testo avviene sulla tua macchina, quindi le query e i testi scaricati non vengono inviati a server di terze parti come OpenAI o Anthropic.
L'algoritmo funziona così:
- Formuli un argomento di ricerca. Ad esempio:
@В каком году население Земли начнет сокращаться по прогнозам демографов? - Il modello studia la domanda e crea un elenco di cinque direzioni di ricerca specifiche, assegnando loro una priorità.
- Per ogni direzione a turno, lo script genera query di ricerca, le invia a DuckDuckGo, seleziona le pagine adatte e ne analizza il contenuto.
- Tutto il testo trovato insieme ai link viene immediatamente salvato in un file di testo locale.
- Dopo aver completato il primo round, il modello analizza i dati raccolti, identifica le lacune e crea l'elenco successivo di direzioni di ricerca.
Il ciclo continua finché non interrompi il processo. In poco tempo, lo script riesce a effettuare diverse decine di query di ricerca e scaricare decine di pagine.
Quando premi il comando di stop, l'LLM rivede l'intero file accumulato e scrive un rapporto finale dettagliato con i link alle fonti. Immediatamente dopo, si attiva una modalità interattiva in cui puoi porre domande di follow-up sulla base di conoscenza raccolta.
Installazione e configurazione
Avrai bisogno di Ollama installato e Python 3.10 o versione successiva. Dato che lo script raccoglie grandi quantità di testo, il modello richiede una finestra di contesto lunga. L'autore consiglia la famiglia Phi-3 con una finestra di contesto da 128k (ad esempio, phi3:3.8b-mini-128k-instruct o phi3:14b-medium-128k-instruct).
Clona il repository e crea un ambiente virtuale:
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
Gli utenti Windows devono passare al branch feature/windows-support.
Poi apri il file llm_config.py e configura la connessione a 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"]
}
Il parametro n_ctx imposta la dimensione della finestra di contesto in token. Regolalo in base alla RAM e alla memoria video disponibili.
Avvia il server Ollama e lo script stesso:
ollama serve
python Web-LLM.py
Nella console, digita il simbolo @, scrivi la tua domanda e premi CTRL+D per avviare.
Gestione del processo di ricerca
Gli indicatori di stato vengono visualizzati nel terminale durante l'esecuzione dello script. Il processo è completamente interattivo. Puoi passare comandi di un singolo carattere all'utilità in qualsiasi momento (ciascuno confermato premendo CTRL+D):
smostra lo stato attuale e le statistiche del materiale raccolto.femette la direzione di ricerca attuale che il modello sta considerando.pmette in pausa la raccolta. Il modello valuta rapidamente il materiale accumulato e riferisce se ci sono abbastanza informazioni per una risposta completa. Poi scegli se continuare la raccolta (c) o terminarla (q).qferma immediatamente la ricerca e attiva la generazione del riepilogo finale.
Dopo l'arresto, tutti i materiali di origine, i link e i riepiloghi strutturati rimangono in un file di testo all'interno della cartella di lavoro.
Aspetti da considerare
Il progetto è nella fase di prototype funzionante. Il codice è scritto in modo piuttosto diretto, senza framework pesanti come LangChain o AutoGen, il che è effettivamente un vantaggio: la logica di parsing e l'interazione con Ollama sono facili da leggere e modificare per i tuoi compiti.
Ci sono un paio di sfumature:
- La velocità dipende direttamente dal tuo hardware. Se esegui un modello da 14B di parametri con un contesto di 50k token su CPU, la generazione dei passaggi intermedi richiederà un tempo considerevole. Su GPU con 12-16 GB di VRAM, l'utilità vola.
- Per l'analisi approfondita, è meglio usare modelli con un buon supporto per il contesto lungo. Oltre a Phi-3, i moderni Mistral NeMo o Qwen 2.5 si adattano perfettamente a questo scopo.
- Il parser di pagine è basilare, quindi i siti complessi con molto JavaScript lato client potrebbero restituire contenuto incompleto.
A chi sarà utile questa utilità
Lo script sarà utile per sviluppatori e analisti che hanno regolarmente bisogno di immergersi rapidamente in nuove tecnologie, raccogliere documentazione tecnica su librerie rare o analizzare tendenze di mercato. Invece della monotona navigazione sul browser, deleghi il compito a un agente locale e ottieni immediatamente un riepilogo pronto con link verificati.
Se stai sperimentando con pipeline di agenti basati su Ollama, il progetto serve come un buon esempio illustrativo di come costruire un ciclo di ricerca autonomo su modelli open con dipendenze minime.
Progetti correlati
