>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Python

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.

Demo mojego projektu

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:

  1. Formułujesz temat badawczy. Na przykład: @В каком году население Земли начнет сокращаться по прогнозам демографов?
  2. Model analizuje pytanie i tworzy listę pięciu konkretnych kierunków wyszukiwania, ustawiając ich priorytety.
  3. Dla każdego kierunku z kolei skrypt generuje zapytania wyszukiwania, wysyła je do DuckDuckGo, wybiera odpowiednie strony i parsuje ich zawartość.
  4. Cały znaleziony tekst wraz z linkami jest natychmiast zapisywany do lokalnego pliku tekstowego.
  5. 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):

  • s pokazuje aktualny status i statystyki zebranego materiału.
  • f wyprowadza aktualny kierunek wyszukiwania, nad którym model się zastanawia.
  • p wstrzymuje 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).
  • q natychmiast 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