>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
Python

Cómo convertir una red neuronal local en un investigador autónomo de internet

Los chatbots estándar con acceso web siguen un patrón simple: haces una pregunta, el modelo realiza una búsqueda, obtiene un par de fragmentos y genera una respuesta rápida. Si el tema es complejo, una búsqueda superficial no es suficiente. Terminas abriendo enlaces manualmente, reformulando consultas y armando los datos pieza por pieza.

El proyecto Automated-AI-Web-Researcher-Ollama toma un enfoque diferente. Es una utilidad de consola en Python que convierte un modelo de lenguaje local ejecutándose en Ollama en un agente de investigación autónomo. Haces una pregunta, ejecutas el script y puedes irte tranquilamente a tomar café. El programa mismo descompone el tema en subtareas, busca artículos a través de DuckDuckGo, analiza sitios web, extrae texto y profundiza iterativamente en el tema basándose en el material encontrado.

My Project Demo

Qué hay bajo el capó y cómo funciona

El autor del proyecto escribió la utilidad como un prototipo abierto para trabajar con modelos abiertos. Todo el procesamiento de texto ocurre en tu máquina, por lo que las consultas y los textos descargados no se envían a servidores de terceros como OpenAI o Anthropic.

El algoritmo funciona de la siguiente manera:

  1. Formula un tema de investigación. Por ejemplo: @В каком году население Земли начнет сокращаться по прогнозам демографов?
  2. El modelo estudia la pregunta y crea una lista de cinco direcciones de búsqueda específicas, priorizándolas.
  3. Para cada dirección a su vez, el script genera consultas de búsqueda, las envía a DuckDuckGo, selecciona páginas adecuadas y analiza su contenido.
  4. Todo el texto encontrado junto con los enlaces se guarda inmediatamente en un archivo de texto local.
  5. Después de completar la primera ronda, el modelo analiza los datos recopilados, identifica vacíos y crea la siguiente lista de direcciones de búsqueda.

El bucle continúa hasta que detengas el proceso. En poco tiempo, el script logra realizar varias decenas de búsquedas y descargar decenas de páginas.

Cuando presionas el comando de parada, el LLM revisa todo el archivo acumulado y escribe un informe final detallado con enlaces a las fuentes. Inmediatamente después, se activa un modo interactivo donde puedes hacer preguntas de seguimiento sobre la base de conocimientos recopilada.

Instalación y configuración

Necesitarás tener Ollama instalado y Python 3.10 o superior. Dado que el script recopila grandes cantidades de texto, el modelo requiere una ventana de contexto larga. El autor recomienda la familia Phi-3 con una ventana de contexto de 128k (por ejemplo, phi3:3.8b-mini-128k-instruct o phi3:14b-medium-128k-instruct).

Clona el repositorio y crea un entorno 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

Los usuarios de Windows necesitan cambiar a la rama feature/windows-support.

Luego abre el archivo llm_config.py y configura la conexión 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"]
}

El parámetro n_ctx establece el tamaño de la ventana de contexto en tokens. Ajústalo según tu RAM y memoria de video disponibles.

Inicia el servidor de Ollama y el script:

ollama serve
python Web-LLM.py

En la consola, escribe el símbolo @, escribe tu pregunta y presiona CTRL+D para comenzar.

Gestión del proceso de investigación

Los indicadores de estado se muestran en la terminal durante la ejecución del script. El proceso es totalmente interactivo. Puedes pasar comandos de un solo carácter a la utilidad en cualquier momento (cada uno confirmado presionando CTRL+D):

  • s muestra el estado actual y las estadísticas del material recopilado.
  • f muestra la dirección de búsqueda actual que el modelo está considerando.
  • p pausa la recopilación. El modelo evalúa rápidamente el material acumulado e informa si hay suficiente información para una respuesta completa. Luego eliges si continuar la recopilación (c) o finalizarla (q).
  • q detiene inmediatamente la investigación y activa la generación del resumen final.

Después de detener, todos los materiales de origen, enlaces y resúmenes estructurados permanecen en un archivo de texto dentro de la carpeta de trabajo.

Cosas a tener en cuenta

El proyecto se encuentra en la etapa de prototipo funcional. El código está escrito de manera bastante directa, sin marcos pesados como LangChain o AutoGen, lo cual es realmente una ventaja: la lógica de análisis e interacción con Ollama es fácil de leer y modificar para tus propias tareas.

Hay un par de matices:

  • La velocidad depende directamente de tu hardware. Si ejecutas un modelo de 14B parámetros con un contexto de 50k tokens en CPU, la generación de pasos intermedios tomará un tiempo considerable. En GPUs con 12-16 GB de VRAM, la utilidad vuela rápido.
  • Para análisis profundos, es mejor usar modelos con buen soporte de contexto largo. Además de Phi-3, Mistral NeMo moderno o Qwen 2.5 encajan perfectamente.
  • El analizador de páginas es básico, por lo que sitios complejos con mucho JavaScript del lado del cliente pueden devolver contenido incompleto.

A quién le será útil esta utilidad

El script será útil para desarrolladores y analistas que regularmente necesitan sumergirse rápidamente en nuevas tecnologías, recopilar documentación técnica sobre bibliotecas poco comunes o analizar tendencias del mercado. En lugar de la monótona navegación por el navegador, delegas la tarea a un agente local e inmediatamente obtienes un resumen listo con enlaces verificados.

Si estás experimentando con pipelines de agentes basados en Ollama, el proyecto sirve como un buen ejemplo ilustrativo de cómo construir un ciclo de investigación autónomo sobre modelos abiertos con dependencias mínimas.

Proyectos relacionados