Introducción Detallada al Proyecto GPT Researcher
Resumen del Proyecto
GPT Researcher es un agente de investigación de código abierto y profundo, diseñado específicamente para realizar investigaciones web y locales sobre cualquier tarea dada. El proyecto tiene como objetivo generar informes de investigación detallados, objetivos e imparciales, con citas completas. Ofrece un conjunto completo de opciones de personalización para crear agentes de investigación personalizados y específicos del dominio.
Características Principales
Funcionalidades Clave
- 📝 Genera informes de investigación detallados utilizando la web y documentos locales
- 🖼️ Funcionalidad inteligente de captura y filtrado de imágenes
- 📜 Genera informes detallados de más de 2000 palabras
- 🌐 Agrega más de 20 fuentes de información para llegar a conclusiones objetivas
- 🖥️ Ofrece versiones frontend ligeras (HTML/CSS/JS) y listas para producción (NextJS + Tailwind)
- 🔍 Soporte para el rastreo web con JavaScript
- 📂 Mantiene la memoria y el contexto durante todo el proceso de investigación
- 📄 Soporte para exportar informes a formatos PDF, Word, etc.
Investigación Profunda (Deep Research)
GPT Researcher ahora incluye Deep Research: un flujo de trabajo de investigación recursivo avanzado, capaz de explorar temas con profundidad y amplitud de agente. Esta función emplea un patrón de exploración en forma de árbol, profundizando en subtemas mientras mantiene una visión integral del tema de investigación.
Características de Deep Research:
- 🌳 Exploración en forma de árbol con profundidad y amplitud configurables
- ⚡️ Procesamiento concurrente para obtener resultados más rápidos
- 🤝 Gestión inteligente del contexto entre ramas de investigación
- ⏱️ Aproximadamente 5 minutos por investigación profunda
- 💰 Costo aproximado de $0.4 por investigación (utilizando "alto" esfuerzo de inferencia con o3-mini)
Arquitectura Técnica
Idea Central
La idea central del proyecto es utilizar agentes "Planificador" y "Ejecutor". El planificador genera preguntas de investigación, mientras que el agente ejecutor recopila información relevante. Luego, el publicador agrega todos los hallazgos en un informe integral.
Flujo de Trabajo
- Crea un agente específico para la tarea basado en la consulta de investigación
- Genera un conjunto de preguntas que puedan formar una visión objetiva de la tarea
- Utiliza agentes rastreadores para recopilar información para cada pregunta
- Resume cada recurso y rastrea las fuentes
- Filtra y agrega los resúmenes en el informe de investigación final
Problemas que Resuelve
GPT Researcher tiene como objetivo resolver los siguientes desafíos de investigación:
- Costo de Tiempo: La investigación manual para llegar a conclusiones objetivas puede llevar semanas y requiere muchos recursos
- Información Obsoleta: Los LLM entrenados con información obsoleta pueden producir alucinaciones, irrelevantes para la tarea de investigación actual
- Límite de Tokens: Los límites de tokens actuales de los LLM son insuficientes para generar informes de investigación extensos
- Fuentes de Información Limitadas: Las fuentes web limitadas en los servicios existentes conducen a información errónea y resultados superficiales
- Problemas de Sesgo: Las fuentes web selectivas pueden introducir sesgos en la tarea de investigación
Instalación y Uso
Inicio Rápido
Requisitos del Entorno:
- Instalar Python 3.11 o superior
Pasos:
- Clona el proyecto y navega al directorio:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcher
- Configura las claves API:
export OPENAI_API_KEY={Tu Clave API de OpenAI aquí}
export TAVILY_API_KEY={Tu Clave API de Tavily aquí}
- Instala las dependencias e inicia el servidor:
pip install -r requirements.txt
python -m uvicorn main:app --reload
- Accede a http://localhost:8000 para comenzar a usar
Instalación con Paquete PIP
pip install gpt-researcher
Ejemplo de Código:
from gpt_researcher import GPTResearcher
query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query, report_type="research_report")
# Realiza la investigación para la consulta dada
research_result = await researcher.conduct_research()
# Escribe el informe
report = await researcher.write_report()
Despliegue con Docker
- Instala Docker
- Clona el archivo '.env.example', agrega las claves API y guárdalo como '.env'
- Comenta los servicios que no deseas ejecutar en el archivo docker-compose
- Ejecuta:
docker-compose up --build
Por defecto, se iniciarán dos procesos:
- El servidor Python se ejecuta en localhost:8000
- La aplicación React se ejecuta en localhost:3000
Investigación de Documentos Locales
GPT Researcher admite la realización de tareas de investigación basadas en documentos locales. Actualmente, los formatos de archivo admitidos incluyen: PDF, texto plano, CSV, Excel, Markdown, PowerPoint y documentos de Word.
Pasos de Configuración:
- Agrega la variable de entorno
DOC_PATH
que apunta a la carpeta donde se encuentran los documentos:
export DOC_PATH="./my-docs"
- En la aplicación frontend, selecciona "Mis Documentos" en la opción desplegable "Fuente del Informe", o establece el parámetro
report_source
en "local" cuando uses el paquete PIP.
Sistema Multi-Agente
A medida que la IA evoluciona desde la ingeniería de prompts y RAG hacia sistemas multi-agente, GPT Researcher introduce un nuevo asistente multi-agente construido sobre LangGraph.
Al utilizar LangGraph, el proceso de investigación puede mejorar significativamente en profundidad y calidad al aprovechar múltiples agentes con habilidades especializadas. Inspirado en el reciente artículo de STORM, este proyecto demuestra cómo un equipo de agentes de IA puede colaborar para investigar un tema dado, desde la planificación hasta la publicación.
En promedio, se generan informes de investigación de 5 a 6 páginas, compatibles con múltiples formatos como PDF, Docx y Markdown.
Interfaz Frontend
GPT Researcher ahora cuenta con una interfaz frontend mejorada para mejorar la experiencia del usuario y simplificar el proceso de investigación. El frontend proporciona:
- Una interfaz intuitiva para ingresar consultas de investigación
- Seguimiento del progreso en tiempo real de las tareas de investigación
- Visualización interactiva de los hallazgos de la investigación
- Configuraciones personalizables para una experiencia de investigación a medida
Se ofrecen dos opciones de implementación:
- Un frontend estático ligero servido por FastAPI
- Una aplicación NextJS rica en funciones con capacidades avanzadas
Características Técnicas
Control de Sesgo
- Reduce los hechos erróneos y sesgados rastreando múltiples sitios web
- Disminuye la probabilidad de que toda la información sea incorrecta seleccionando la información más frecuente
- No tiene como objetivo eliminar el sesgo, sino minimizarlo en la medida de lo posible
- Rastrea múltiples puntos de vista, explicando uniformemente diversas perspectivas
Optimización del Rendimiento
- Proporciona un rendimiento estable y aumenta la velocidad al paralelizar el trabajo del agente
- El procesamiento asíncrono mejora la eficiencia en comparación con las operaciones síncronas
- La gestión inteligente del contexto garantiza la coherencia de la investigación
Descargo de Responsabilidad
GPT Researcher es una aplicación experimental que se proporciona "tal cual", sin garantías expresas o implícitas de ningún tipo. El código se comparte con fines académicos bajo la licencia Apache 2. El contenido aquí no es un consejo académico y no se recomienda su uso en trabajos académicos o de investigación.
