GPT Researcher adalah agen riset otomatis berbasis Large Language Model (LLM) yang dirancang untuk melakukan pencarian, pengumpulan, dan sintesis informasi dari web secara terstruktur, kemudian menyajikan laporan lengkap dengan sitasi yang dapat ditelusuri.
Untuk menjalankan GPT Researcher menggunakan Docker, berikut adalah spesifikasi minimum yang direkomendasikan:
| Komponen | Rekomendasi Minimum | Catatan |
|---|---|---|
| CPU | 2 vCPU (dual-core) | Lebih banyak core dapat mempercepat pemrosesan paralel. |
| RAM | 4 GB | 8 GB atau lebih dianjurkan jika sering melakukan riset berskala besar. |
| Storage | 50–120 GB | Digunakan untuk image Docker, log, dan cache. |
Anda juga perlu menyiapkan API Key untuk layanan berikut:
- OpenRouter – untuk AI Research
- Google AI Studio – untuk Embedding
- Tavily – untuk Web Scraper
Instalasi Docker #
Debian/Ubuntu #
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now dockerRHEL-based (misalnya Rocky Linux 9) #
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf -y -q --best install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-ce-rootless-extras docker-buildx-plugin docker-model-plugin
sudo systemctl enable --now dockerSetup GPT Researcher #
Clone repository GPT Researcher:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcherBuat file .env kemudian isi dengan konfigurasi berikut:
##
# gpt-researcher
##
OPENROUTER_API_KEY=sk-or-v1-xxxx
OPENAI_API_KEY=sk-or-v1-xxxx
OPENAI_BASE_URL=https://openrouter.ai/api/v1
FAST_LLM=openrouter:google/gemini-2.0-flash-lite-001
SMART_LLM=openrouter:google/gemini-2.0-flash-001
STRATEGIC_LLM=openrouter:google/gemini-2.5-pro
OPENROUTER_LIMIT_RPS=1 # Rate limit (request per second)
EMBEDDING=google_genai:models/gemini-embedding-001 # OpenRouter tidak mendukung embedding; gunakan Google (gratis)
GOOGLE_API_KEY=xxxx
SCRAPER="tavily_extract"
TAVILY_API_KEY=tvly-xxxx
LOGGING_LEVEL=INFO
DOC_PATH=./my-docs
LANGUAGE=indonesia
WORKERS=1
##
# gptr-nextjs
##
# NEXT_PUBLIC_GPTR_API_URL= # Default ke localhost:8000 jika dikosongkan
NEXT_PUBLIC_GA_MEASUREMENT_ID=
LANGCHAIN_API_KEY=
CHOKIDAR_USEPOLLING=trueUpdate file docker-compose.yml menjadi seperti berikut:
services:
gpt-researcher:
pull_policy: build
image: gptresearcher/gpt-researcher
build: ./
env_file:
- .env
volumes:
- ${PWD}/my-docs:/usr/src/app/my-docs:rw
- ${PWD}/outputs:/usr/src/app/outputs:rw
- ${PWD}/logs:/usr/src/app/logs:rw
user: root
restart: always
ports:
- 8000:8000
gptr-nextjs:
pull_policy: build
image: gptresearcher/gptr-nextjs
stdin_open: true
env_file:
- .env
build:
dockerfile: Dockerfile.dev
context: frontend/nextjs
volumes:
- /app/node_modules
- ./frontend/nextjs:/app
- ./frontend/nextjs/.next:/app/.next
- ./outputs:/app/outputs
restart: always
ports:
- 3000:3000Tambahkan modul embedding untuk Google GenAI di requirements.txt:
langchain-google-genaiJalankan GPT Researcher:
docker compose up -dPeriksa apakah container berjalan dengan baik:
docker compose psSetelah container aktif, buka:
- Frontend UI GPT Researcher →
http://localhost:3000 - API backend (Swagger/OpenAPI) →
http://localhost:8000/docs(jika di-expose)
Referensi: