github網址是:https://github.com/assafelovic/gpt-researcher
因為docker安裝方法不夠清晰,因此寫一個使用方法
以下是針對 Windows 系統 使用 Docker 運行 AI-Researcher 項目的 詳細分步指南:
步驟 1:安裝 Docker
- 下載 Docker Desktop
訪問 Docker 官網 下載 Windows 版安裝包。 - 安裝并啟動 Docker
- 雙擊安裝包,按默認選項完成安裝。
- 安裝完成后,啟動 Docker Desktop。首次啟動會提示啟用 WSL2,點擊確認。
- 等待 Docker 圖標在任務欄顯示為綠色(表示已運行)。
!!! 安裝前需要增加一些代理,因為docker國內不能訪問
打開設置——docker engine ,增加代碼
"registry-mirrors": ["https://docker.1panel.live","https://hub.rat.dev"]
步驟 2:配置環境變量文件(.env
)
-
克隆
.env.example
文件- 在項目根目錄(含
docker-compose.yml
的文件夾)中,找到.env.example
文件。 - 復制此文件,右鍵 → 復制 → 粘貼到同一目錄。
- 將粘貼后的副本重命名為
.env
(刪除.example
后綴)。
- 在項目根目錄(含
-
編輯
.env
文件- 右鍵 → 用記事本或 VS Code 打開
.env
文件。 - 填寫你的 API 密鑰(如 OpenAI、Google 等):
OPENAI_API_KEY=你的OpenAI_API密鑰 GOOGLE_API_KEY=你的Google_API密鑰 ...
- 保存文件(確保文件名是
.env
,不是.env.txt
)。
注意:
- 如果文件名顯示為
.env.txt
,需在文件資源管理器開啟“顯示文件擴展名”后重命名。
(方法:資源管理器 → 查看 → 勾選“文件擴展名”)
- 右鍵 → 用記事本或 VS Code 打開
步驟 3:調整 docker-compose.yml
文件
-
用文本編輯器打開
docker-compose.yml
- 右鍵文件 → 用 VS Code 或記事本打開。
-
注釋不需要的服務
- 找到
services
下的服務(如celery
、redis
等),修改ports
- 找到
gptr-nextjs:pull_policy: buildimage: gptresearcher/gptr-nextjsstdin_open: trueenvironment:CHOKIDAR_USEPOLLING: "true"LOGGING_LEVEL: INFONEXT_PUBLIC_GA_MEASUREMENT_ID: ${NEXT_PUBLIC_GA_MEASUREMENT_ID}NEXT_PUBLIC_GPTR_API_URL: ${NEXT_PUBLIC_GPTR_API_URL}build:dockerfile: Dockerfile.devcontext: frontend/nextjsvolumes:- /app/node_modules- ./frontend/nextjs:/app- ./outputs:/app/outputsrestart: alwaysports:- 3333:3000
- 保存文件。
步驟 4:啟動 Docker 容器
-
打開終端(PowerShell 或 CMD)
- 在項目根目錄的地址欄輸入
cmd
或powershell
,回車打開命令行。
- 在項目根目錄的地址欄輸入
-
運行 Docker 命令
docker compose up --build
- 如果報錯,嘗試:
docker-compose up --build # 舊版本 Docker 可能需要此寫法
過程說明:
--build
會重新構建鏡像(首次運行或代碼修改后需要)。- 等待下載鏡像和構建完成(首次可能較久,依賴網絡速度)。
- 如果報錯,嘗試:
步驟 5:訪問應用
-
訪問 React 前端
構建完成后,在瀏覽器輸入:http://localhost:3333
-
訪問 Python 后端 API
后端服務運行在:http://localhost:8000
完整流程總結
- 安裝 Docker Desktop → 啟動并確認運行狀態。
- 復制
.env.example
→ 重命名.env
→ 填寫 API 密鑰。 - 編輯
docker-compose.yml
→ 注釋不需要的服務。 - 在項目目錄打開終端 → 運行
docker compose up --build
。 - 訪問
http://localhost:3000
使用應用。
如有其他問題,可提供錯誤截圖或日志進一步排查! 🚀