>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Python

Como transformar uma rede neural local em um pesquisador autônomo da internet

Os chatbots padrão com acesso à web seguem um padrão simples: você faz uma pergunta, o modelo faz uma consulta de busca, pega alguns trechos e gera uma resposta rápida. Se o tópico for complexo, uma busca superficial não é suficiente. Você acaba abrindo links manualmente, reformulando consultas e montando fatos aos poucos.

O projeto Automated-AI-Web-Researcher-Ollama adota uma abordagem diferente. É um utilitário de console em Python que transforma um modelo de linguagem local executado no Ollama em um agente autônomo de pesquisa. Você faz uma pergunta, executa o script e pode ir tranquilamente tomar café. O programa divide o tópico em subtarefas, busca artigos via DuckDuckGo, analisa sites, extrai texto e aprofunda iterativamente o tema com base no material encontrado.

My Project Demo

O que está sob o capô e como funciona

O autor do projeto escreveu o utilitário como um protótipo aberto para trabalhar com modelos abertos. Todo o processamento de texto acontece na sua máquina, então consultas e textos baixados não são enviados para servidores de terceiros como OpenAI ou Anthropic.

O algoritmo funciona da seguinte forma:

  1. Você formula um tópico de pesquisa. Por exemplo: @В каком году население Земли начнет сокращаться по прогнозам демографов?
  2. O modelo estuda a pergunta e cria uma lista de cinco direções de busca específicas, priorizando-as.
  3. Para cada direção, o script gera consultas de busca, envia para o DuckDuckGo, seleciona páginas adequadas e analisa seu conteúdo.
  4. Todo o texto encontrado junto com os links é imediatamente salvo em um arquivo de texto local.
  5. Após completar a primeira rodada, o modelo analisa os dados coletados, identifica lacunas e cria a próxima lista de direções de busca.

O loop continua até você parar o processo. Em pouco tempo, o script consegue fazer várias dezenas de consultas de busca e baixar dezenas de páginas.

Quando você pressiona o comando de parada, o LLM revisa todo o arquivo acumulado e escreve um relatório final detalhado com links das fontes. Imediatamente depois, um modo interativo é ativado onde você pode fazer perguntas de acompanhamento sobre a base de conhecimento coletada.

Instalação e configuração

Você precisará do Ollama instalado e Python 3.10 ou mais recente. Como o script coleta grandes quantidades de texto, o modelo requer uma janela de contexto longa. O autor recomenda a família Phi-3 com janela de contexto de 128k (por exemplo, phi3:3.8b-mini-128k-instruct ou phi3:14b-medium-128k-instruct).

Clone o repositório e crie um ambiente virtual:

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

Usuários do Windows precisam mudar para o branch feature/windows-support.

Então abra o arquivo llm_config.py e configure a conexão com o 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"]
}

O parâmetro n_ctx define o tamanho da janela de contexto em tokens. Ajuste de acordo com sua RAM disponível e memória de vídeo.

Inicie o servidor Ollama e o próprio script:

ollama serve
python Web-LLM.py

No console, digite o símbolo @, escreva sua pergunta e pressione CTRL+D para iniciar.

Gerenciando o processo de pesquisa

Indicadores de status são exibidos no terminal durante a execução do script. O processo é totalmente interativo. Você pode passar comandos de um único caractere para o utilitário a qualquer momento (cada confirmado pressionando CTRL+D):

  • s mostra o status atual e estatísticas do material coletado.
  • f exibe a direção de busca atual que o modelo está considerando.
  • p pausa a coleta. O modelo avalia rapidamente o material acumulado e reporta se há informações suficientes para uma resposta abrangente. Então você escolhe se continua a coleta (c) ou termina (q).
  • q para imediatamente a pesquisa e aciona a geração do resumo final.

Após parar, todos os materiais de origem, links e resumos estruturados permanecem em um arquivo de texto na pasta de trabalho.

Pontos de atenção

O projeto está em estágio de protótipo funcional. O código é escrito de forma bastante direta, sem frameworks pesados como LangChain ou AutoGen, o que na verdade é um ponto positivo: a lógica de parsing e interação com o Ollama é fácil de ler e modificar para suas próprias tarefas.

Existem alguns nuances:

  • A velocidade depende diretamente do seu hardware. Se você executar um modelo de 14B parâmetros com contexto de 50k tokens em CPU, a geração de etapas intermediárias levará um tempo considerável. Em GPUs com 12-16 GB de VRAM, o utilitário é extremamente rápido.
  • Para análise profunda, é melhor usar modelos com bom suporte a contexto longo. Além do Phi-3, o Mistral NeMo moderno ou Qwen 2.5 se encaixam perfeitamente nisso.
  • O parser de páginas é básico, então sites complexos com muito JavaScript do lado do cliente podem retornar conteúdo incompleto.

Quem achará este utilitário útil

O script será útil para desenvolvedores e analistas que precisam regularmente mergulhar rapidamente em novas tecnologias, coletar documentação técnica sobre bibliotecas raras ou analisar tendências de mercado. Em vez de navegação monótona no navegador, você delega a tarefa a um agente local e obtém imediatamente um resumo pronto com links verificados.

Se você está experimentando com pipelines de agentes baseados em Ollama, o projeto serve como um bom exemplo ilustrativo de como construir um ciclo de pesquisa autônomo em modelos abertos com dependências mínimas.

Projetos relacionados