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 docker
RHEL-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 docker
Setup GPT Researcher #
Clone repository GPT Researcher:
git clone https://github.com/assafelovic/gpt-researcher.git
cd gpt-researcher
Buat 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=true
Update 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:3000
Tambahkan modul embedding untuk Google GenAI di requirements.txt:
langchain-google-genai
Jalankan GPT Researcher:
docker compose up -d
Periksa apakah container berjalan dengan baik:
docker compose ps
Setelah container aktif, buka:
- Frontend UI GPT Researcher →
http://localhost:3000 - API backend (Swagger/OpenAPI) →
http://localhost:8000/docs(jika di-expose)
Referensi: