GPT Researcher 프로젝트 상세 소개
프로젝트 개요
GPT Researcher는 주어진 작업에 대한 웹 및 로컬 연구를 위해 설계된 오픈 소스 심층 연구 에이전트입니다. 이 프로젝트는 자세하고 객관적이며 편향되지 않은 연구 보고서를 생성하고 완전한 인용 정보를 제공하는 것을 목표로 합니다. 맞춤화되고 특정 분야에 특화된 연구 에이전트를 만들 수 있는 다양한 사용자 정의 옵션을 제공합니다.
핵심 기능
주요 기능
- 📝 웹 및 로컬 문서를 사용하여 자세한 연구 보고서 생성
- 🖼️ 지능형 이미지 캡처 및 필터링 기능
- 📜 2000자 이상의 자세한 보고서 생성
- 🌐 20개 이상의 정보 소스를 집계하여 객관적인 결론 도출
- 🖥️ 경량(HTML/CSS/JS) 및 프로덕션 준비(NextJS + Tailwind) 프런트엔드 버전 제공
- 🔍 JavaScript를 지원하는 웹 페이지 크롤링
- 📂 전체 연구 과정에서 기억 및 컨텍스트 유지
- 📄 보고서를 PDF, Word 등 형식으로 내보내기 지원
Deep Research 심층 연구 기능
GPT Researcher는 이제 Deep Research를 포함합니다. Deep Research는 에이전트의 깊이와 폭으로 주제를 탐색할 수 있는 고급 재귀 연구 워크플로입니다. 이 기능은 연구 주제의 포괄적인 뷰를 유지하면서 하위 주제를 깊이 파고드는 트리 구조 탐색 모드를 사용합니다.
Deep Research 특징:
- 🌳 구성 가능한 깊이와 폭의 트리 구조 탐색
- ⚡️ 더 빠른 결과를 위한 동시 처리
- 🤝 연구 분기 간의 지능형 컨텍스트 관리
- ⏱️ 매번 심층 연구에 약 5분 소요
- 💰 매번 연구 비용 약 0.4달러 (o3-mini의 "높음" 추론 노력 사용 시)
기술 아키텍처
핵심 이념
이 프로젝트의 핵심 아이디어는 "계획자"와 "실행자" 에이전트를 활용하는 것입니다. 계획자는 연구 질문을 생성하고 실행 에이전트는 관련 정보를 수집합니다. 게시자는 모든 발견 사항을 종합 보고서로 집계합니다.
작업 흐름
- 연구 쿼리를 기반으로 특정 작업 에이전트 생성
- 작업의 객관적인 관점을 형성할 수 있는 질문 집합 생성
- 크롤러 에이전트를 사용하여 각 질문에 대한 정보 수집
- 각 리소스를 요약하고 출처 추적
- 요약을 필터링하고 최종 연구 보고서로 집계
해결 과제
GPT Researcher는 다음과 같은 연구 과제를 해결하는 것을 목표로 합니다.
- 시간 비용: 인공 연구로 객관적인 결론을 도출하는 데 수 주가 걸릴 수 있으며 많은 리소스가 필요합니다.
- 정보 노후화: 오래된 정보로 훈련된 LLM은 환각을 일으킬 수 있으며 현재 연구 작업과 관련이 없습니다.
- 토큰 제한: 현재 LLM의 토큰 제한은 장편 연구 보고서를 생성하기에 충분하지 않습니다.
- 정보 출처 제한: 기존 서비스의 제한된 웹 소스는 오정보 및 얕은 결과를 초래합니다.
- 편향 문제: 선택적인 웹 소스는 연구 작업에 편향을 도입할 수 있습니다.
설치 및 사용
빠른 시작
환경 요구 사항:
- Python 3.11 이상 버전 설치
단계:
- 프로젝트를 복제하고 디렉토리로 이동:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcher
- API 키 설정:
export OPENAI_API_KEY={Your OpenAI API Key here}
export TAVILY_API_KEY={Your Tavily API Key here}
- 종속성을 설치하고 서버 시작:
pip install -r requirements.txt
python -m uvicorn main:app --reload
- http://localhost:8000 에 접속하여 사용 시작
PIP 패키지 설치
pip install gpt-researcher
코드 예시:
from gpt_researcher import GPTResearcher
query = "why is Nvidia stock going up?"
researcher = GPTResearcher(query=query, report_type="research_report")
# 주어진 쿼리에 대한 연구 수행
research_result = await researcher.conduct_research()
# 보고서 작성
report = await researcher.write_report()
Docker 배포
- Docker 설치
- '.env.example' 파일을 복제하고 API 키를 추가하여 '.env'로 저장
- docker-compose 파일에서 실행하지 않으려는 서비스 주석 처리
- 실행:
docker-compose up --build
기본적으로 두 개의 프로세스가 시작됩니다.
- Python 서버는 localhost:8000에서 실행
- React 앱은 localhost:3000에서 실행
로컬 문서 연구
GPT Researcher는 로컬 문서를 기반으로 연구 작업을 지원합니다. 현재 지원되는 파일 형식은 PDF, 일반 텍스트, CSV, Excel, Markdown, PowerPoint 및 Word 문서입니다.
설정 단계:
- 환경 변수
DOC_PATH를 문서가 있는 폴더로 지정:
export DOC_PATH="./my-docs"
- 프런트엔드 앱에서 "보고서 소스" 드롭다운 옵션에서 "내 문서"를 선택하거나 PIP 패키지를 사용할 때
report_source매개변수를 "local"로 설정합니다.
다중 에이전트 시스템
AI가 프롬프트 엔지니어링 및 RAG에서 다중 에이전트 시스템으로 발전함에 따라 GPT Researcher는 LangGraph를 기반으로 구축된 새로운 다중 에이전트 도우미를 도입했습니다.
LangGraph를 사용하면 전문 기술을 가진 여러 에이전트를 활용하여 연구 프로세스의 깊이와 품질을 크게 향상시킬 수 있습니다. 최근 STORM 논문에서 영감을 받아 이 프로젝트는 AI 에이전트 팀이 계획에서 게시까지 주어진 주제에 대한 연구를 어떻게 협력하는지 보여줍니다.
평균적으로 5-6페이지의 연구 보고서를 생성하며 PDF, Docx 및 Markdown과 같은 다양한 형식을 지원합니다.
프런트엔드 인터페이스
GPT Researcher는 사용자 경험을 개선하고 연구 프로세스를 간소화하기 위해 향상된 프런트엔드 인터페이스를 제공합니다. 프런트엔드는 다음을 제공합니다.
- 연구 쿼리를 입력하기 위한 직관적인 인터페이스
- 연구 작업의 실시간 진행 상황 추적
- 연구 결과의 대화형 표시
- 맞춤화된 연구 경험을 위한 사용자 정의 가능한 설정
두 가지 배포 옵션 제공:
- FastAPI에서 제공하는 경량 정적 프런트엔드
- 고급 기능이 있는 기능이 풍부한 NextJS 애플리케이션
기술 특징
편향 제어
- 여러 웹사이트를 크롤링하여 오류 및 편향된 사실 감소
- 가장 빈번한 정보를 선택하여 모든 정보가 잘못될 확률 감소
- 편향 제거를 목표로 하지 않고 가능한 한 편향 감소
- 다양한 관점을 크롤링하여 다양한 관점을 균등하게 설명
성능 최적화
- 에이전트 작업을 병렬화하여 안정적인 성능 제공 및 속도 향상
- 동기 작업에 비해 비동기 처리가 효율성 향상
- 지능형 컨텍스트 관리를 통해 연구의 일관성 보장
면책 조항
GPT Researcher는 실험적인 애플리케이션이며 명시적 또는 묵시적 보증 없이 "있는 그대로" 제공됩니다. 코드는 Apache 2 라이선스에 따라 학술 목적으로 공유됩니다. 여기의 내용은 학술적 조언이 아니며 학술 또는 연구 논문에 사용하지 않는 것이 좋습니다.