Jak przekształcić lokalną sieć neuronową w autonomicznego badacza internetu
Standardowe chatboty z dostępem do sieci podążają prostym schematem: zadajesz pytanie, model wykonuje jedno zapytanie wyszukiwania, pobiera kilka fragmentów i generuje szybką odpowiedź. Jeśli temat jest złożony, powierzchowne wyszukiwanie nie wystarczy. Kończysz na ręcznym otwieraniu linków, przeformułowaniu zapytań i składaniu faktów kawałek po kawałku.
Projekt Automated-AI-Web-Researcher-Ollama przyjmuje inne podejście. To narzędzie konsolowe w Pythonie, które przekształca lokalny model językowy działający na Ollama w autonomicznego agenta badawczego. Zadajesz jedno pytanie, uruchamiasz skrypt i spokojnie idziesz napić się kawy. Program sam dzieli temat na podzadania, wyszukuje artykuły przez DuckDuckGo, parsuje strony, wyodrębnia tekst i iteracyjnie zagłębia się w temat na podstawie znalezionego materiału.
Co kryje się pod maską i jak to działa
Autor projektu napisał narzędzie jako otwarty prototyp do pracy z otwartymi modelami. Całe przetwarzanie tekstu odbywa się na Twojej maszynie, więc zapytania i pobrane teksty nie są wysyłane na serwery stron trzecich, takie jak OpenAI czy Anthropic.
Algorytm działa następująco:
- Formułujesz temat badawczy. Na przykład:
@В каком году население Земли начнет сокращаться по прогнозам демографов? - Model analizuje pytanie i tworzy listę pięciu konkretnych kierunków wyszukiwania, ustawiając ich priorytety.
- Dla każdego kierunku z kolei skrypt generuje zapytania wyszukiwania, wysyła je do DuckDuckGo, wybiera odpowiednie strony i parsuje ich zawartość.
- Cały znaleziony tekst wraz z linkami jest natychmiast zapisywany do lokalnego pliku tekstowego.
- Po zakończeniu pierwszej rundy model analizuje zebrane dane, identyfikuje luki i tworzy kolejną listę kierunków wyszukiwania.
Pętla trwa, aż zatrzymasz proces. W krótkim czasie skrypt wykonuje kilkadziesiąt zapytań wyszukiwania i pobiera dziesiątki stron.
Gdy naciśniesz polecenie zatrzymania, LLM przegląda cały zgromadzony plik i pisze szczegółowy raport końcowy z linkami do źródeł. Natychmiast potem aktywuje się tryb interaktywny, w którym możesz zadawać dodatkowe pytania dotyczące zebranej bazy wiedzy.
Instalacja i konfiguracja
Będziesz potrzebować zainstalowanego Ollama i Pythona 3.10 lub nowszego. Ponieważ skrypt zbiera duże ilości tekstu, model wymaga dużego okna kontekstowego. Autor zaleca rodzinę Phi-3 z oknem kontekstowym 128k (na przykład phi3:3.8b-mini-128k-instruct lub phi3:14b-medium-128k-instruct).
Sklonuj repozytorium i utwórz środowisko wirtualne:
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
Użytkownicy Windows muszą przełączyć się na branch feature/windows-support.
Następnie otwórz plik llm_config.py i skonfiguruj połączenie z 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"]
}
Parametr n_ctx ustawia rozmiar okna kontekstowego w tokenach. Dostosuj go do dostępnej pamięci RAM i pamięci wideo.
Uruchom serwer Ollama i sam skrypt:
ollama serve
python Web-LLM.py
W konsoli wpisz symbol @, napisz swoje pytanie i naciśnij CTRL+D, aby rozpocząć.
Zarządzanie procesem badawczym
Wskaźniki statusu są wyświetlane w terminalu podczas wykonywania skryptu. Proces jest w pełni interaktywny. Możesz w dowolnym momencie przekazywać do narzędzia polecenia składające się z jednego znaku (każde potwierdzane przez naciśnięcie CTRL+D):
spokazuje aktualny status i statystyki zebranego materiału.fwyprowadza aktualny kierunek wyszukiwania, nad którym model się zastanawia.pwstrzymuje zbieranie. Model szybko ocenia zgromadzony materiał i raportuje, czy jest wystarczająco dużo informacji na kompleksową odpowiedź. Następnie wybierasz, czy kontynuować zbieranie (c) czy zakończyć je (q).qnatychmiast zatrzymuje badanie i uruchamia generowanie podsumowania końcowego.
Po zatrzymaniu wszystkie materiały źródłowe, linki i ustrukturyzowane podsumowania pozostają w pliku tekstowym w folderze roboczym.
Na co zwrócić uwagę
Projekt znajduje się na etapie działającego prototypu. Kod jest napisany dość bezpośrednio, bez ciężkich frameworków takich jak LangChain czy AutoGen, co jest actually zaletą: logika parsowania i interakcji z Ollama jest łatwa do czytania i modyfikowania pod kątem własnych zadań.
Jest kilka niuansów:
- Szybkość bezpośrednio zależy od Twojego sprzętu. Jeśli uruchamiasz model z 14B parametrami z oknem kontekstowym 50k na CPU, generowanie pośrednich kroków zajmie sporo czasu. Na GPU z 12-16 GB pamięci VRAM narzędzie działa błyskawicznie.
- Do dogłębnej analizy lepiej używać modeli z dobrą obsługą długiego kontekstu. Oprócz Phi-3, nowoczesne Mistral NeMo lub Qwen 2.5 doskonale się do tego nadają.
- Parser stron jest podstawowy, więc złożone strony z ciężkim JavaScriptem po stronie klienta mogą zwracać niepełną zawartość.
Komu przyda się to narzędzie
Skrypt będzie pomocny dla programistów i analityków, którzy regularnie potrzebują szybko zagłębiać się w nowe technologie, zbierać dokumentację techniczną rzadkich bibliotek lub analizować trendy rynkowe. Zamiast monotonnego surfowania po przeglądarce, delegujesz zadanie do lokalnego agenta i natychmiast otrzymujesz gotowe podsumowanie z zweryfikowanymi linkami.
Jeśli eksperymentujesz z potokami agentów opartymi na Ollama, projekt służy jako dobry poglądowy przykład, jak zbudować autonomiczny cykl badawczy na otwartych modelach z minimalnymi zależnościami.
Powiązane projekty
