
Open Source Deep Research 進階實作:結合 Firecrawl API 與 Docker,打造你的個人化研究助理!
還記得 OpenAI 推出 Deep Research 時,大家驚呼連連,覺得這根本是學術界的救星!但每個月 200 美金的訂閱費,讓不少人只能望之卻步… 💸
別擔心!身為一個熱愛 Open Source 的部落格顧問,我今天要來跟大家分享一個更棒的解決方案:結合 Firecrawl API 與 Docker 的 Open Source Deep Research! 這個方法不只省錢,還能讓你打造一個更強大、更個人化的研究助理!😎
回顧:什麼是 Open Source Deep Research?
如果你還不熟悉 Open Source Deep Research,讓我們先簡單回顧一下。這個專案是由 David 大神開發的,它利用 OpenAI 的 o3 mini model
(或其他可相容 API)模型,加上一些 Open Source 工具,讓你也能擁有類似 OpenAI Deep Research 的功能。
簡單來說,它可以:
- 深入挖掘資料: 花 5-30 分鐘深入研究各種網頁、文件。
- 提供可靠的資訊來源: 提供引用來源,確保資訊的可信度。
- 處理多種資料類型: 支援文字、圖片、PDF 等格式。
總之,Open Source Deep Research 讓你不用花大錢,也能擁有一個超強的 Google 搜尋引擎 + PhD 研究員!👍
進階:結合 Firecrawl API 與 Docker,讓研究引擎更強大!
1. Firecrawl API :解放你的網路爬蟲能力
在之前的教學中,我們可能需要手動複製貼上網頁內容,或是使用一些比較陽春的網路爬蟲工具。但現在,有了 Firecrawl API,一切都變得不一樣了!
Firecrawl API 是一個強大的網路爬蟲與搜尋服務,它可以自動抓取網頁內容,並且提供穩定的 API 介面。有了它,你就可以輕鬆地從各種網站抓取資料,並且將這些資料餵給你的 Deep Research 引擎!
為什麼選擇 Firecrawl API?
- 方便易用: 提供簡單易懂的 API 介面,讓你輕鬆上手。
- 功能強大: 支援各種網頁爬取功能,包括 JavaScript 渲染、Cookie 管理等等。
- 價格合理: 提供免費方案,讓你先試用再決定是否付費。
2. Docker:打造一致性的開發環境
相信不少開發者都遇過這種情況:程式碼在我的電腦上可以跑,但在別人的電腦上卻不行! 🤯
這通常是因為開發環境不一致所造成。為了避免這種情況,我們可以使用 Docker 來建立一致性的開發環境。
Docker 是一個容器化平台,它可以讓你把程式碼和所有相依的環境打包在一起,確保程式碼在任何地方都能順利執行。
為什麼選擇 Docker?
- 一致性: 確保程式碼在任何地方都能順利執行。
- 隔離性: 將程式碼隔離在容器中,避免與其他程式碼衝突。
- 可移植性: 輕鬆將程式碼部署到不同的環境。
實作步驟:一步一步打造你的個人化研究助理
接下來,讓我們一步一步來看看如何使用 Node.js 與 Docker,並結合 Firecrawl API,打造一個更強大、更個人化的深度研究助理!🚀
準備工作
在開始之前,請確保你已經準備好以下東西:
- OpenAI API 金鑰: 若你要使用 OpenAI 的服務(例如 o3 mini model),可到 OpenAI Platform 註冊帳號並取得金鑰。
- 若你有自己的本地 LLM 服務,也可以不使用 OpenAI Key,改用自訂 endpoint。
- Firecrawl API 金鑰: 到 Firecrawl 註冊帳號並取得金鑰。
- Node.js 環境: 到 Node.js 官網 下載安裝。
- Docker: 到 Docker 官網 下載安裝。
- Git: 到 Git 官網 下載安裝。
- deep-research 程式碼: 從 GitHub 下載程式碼(或使用
git clone
)。
安裝與執行教學(Node.js 版本)
如果你只是想在本機上直接跑 Node.js 版本(不使用 Docker),可以參考以下步驟:
Clone 專案:
git clone https://github.com/dzhng/deep-research.git cd deep-research
安裝依賴:
npm install
建立並設定
.env.local
:在
deep-research
資料夾裡,建立一個名為.env.local
的檔案,並且加入以下內容:FIRECRAWL_KEY="your_firecrawl_key" # 如果想使用自架的 Firecrawl,取消註解並設置你的 URL # FIRECRAWL_BASE_URL="http://localhost:3002" OPENAI_KEY="your_openai_key"
如果你有自己的本地 LLM,想要改用自訂 API,請註解掉
OPENAI_KEY
,並改用:OPENAI_ENDPOINT="http://localhost:1234/v1" OPENAI_MODEL="custom_model_name"
執行研究助理:
npm start
接著你會看到互動式提示,請依照需求輸入:
- 你想研究的主題 (research query)
- 研究的廣度 (breadth)(建議 3-10,預設 4)
- 研究的深度 (depth)(建議 1-5,預設 2)
- 回答一些後續提問,來細化研究方向
最終報告會自動儲存到
output.md
中。
Docker 版本安裝教學
如果你想確保在任何環境都能順利執行,或是想避免安裝各種依賴,可以使用 Docker 來運行本專案。
Clone 專案:
git clone https://github.com/dzhng/deep-research.git cd deep-research
建立/修改
.env.local
:將專案內的
.env.example
檔改名為.env.local
,然後設定以下內容:FIRECRAWL_KEY="your_firecrawl_key" # FIRECRAWL_BASE_URL="http://localhost:3002" (如果有自架 Firecrawl) OPENAI_KEY="your_openai_key"
或者若你有自訂 LLM 端點:
OPENAI_ENDPOINT="http://localhost:1234/v1" OPENAI_MODEL="my_custom_model"
(記得註解或移除
OPENAI_KEY
)安裝依賴:
npm install
啟動 Docker 容器:
docker compose up -d
這會在背景啟動容器,並且命名為
deep-research
(可在docker-compose.yml
內確認服務名稱)。在 Docker 容器中執行程式:
docker exec -it deep-research npm run docker
執行後,一樣會出現互動式提示,讓你輸入研究主題、廣度、深度等資訊,最後會在容器中完成整個研究流程,並將結果輸出到
output.md
。
範例:研究「AI 在教育領域的應用」
讓我們來試試看研究「AI 在教育領域的應用」這個主題。如果你使用 Docker 版本:
- 進入專案資料夾後輸入:
docker compose up -d
- 等容器啟動完成後,再輸入:
docker exec -it deep-research npm run docker
- 互動式提示出現後,依序填入:
What are the applications of AI in education?
- breadth:
5
- depth:
5
- 報告會輸出在
output.md
。
如果是本機直接用 Node.js 執行,則只需要:
npm start
並同樣在互動式提示中輸入你的研究主題即可。
進階應用:打造你的個人化研究引擎
有了這個 Open Source Deep Research 方案,你可以做更多客製化:
- 加入自己的資料來源: 除了網頁資料,你還可以加入自己的文件、資料庫等。
- 使用不同的模型: 例如改成本地自架的大語言模型,或是使用更強大的
gpt-4
。 - 客製化研究流程: 修改程式碼,調整研究的深度和廣度,或是加入自己的 NLP 工具。
- 調整並行處理限制(Concurrency):在
deep-research.ts
中提升或降低ConcurrencyLimit
,以因應 Firecrawl 付費或免費方案的使用量限制。
邏輯流程圖
graph TD
A[使用者提問] --> B{程式開始}
B --> C[設定 Firecrawl API 金鑰和 OpenAI API 金鑰或自訂 Endpoint]
C --> D[啟動或進入 Docker 容器(或本機執行)]
D --> E[程式開始 Deep Research]
E --> F{程式開始研究}
F --> G[使用 Firecrawl API 爬取網頁資料]
G --> H[分析網頁資料]
H --> I[生成研究報告]
I --> J[儲存研究報告到 output.md]
J --> K[使用者查看研究報告]
參數設定表
參數名稱 | 參數說明 | 預設值 | 備註 |
---|---|---|---|
research_query | 你想要研究的問題 | 無 | 這個參數是必填的 |
breadth | 研究的廣度 | 4 | 這個參數越大,程式碼會搜尋越多關鍵字/網頁 |
depth | 研究的深度 | 2 | 這個參數越大,程式碼會分析越多層次的網頁內容 |
model | 使用的模型 | o3-mini 或自訂 | 可以改用 gpt-3.5-turbo 、gpt-4 ,或任何相容的本地模型 |
max_tokens | 模型輸出的最大 token 數量 | 2048 | 根據你的需求和模型能力調整 |
ConcurrencyLimit | 同時進行的爬取/分析上限 | 3 | 付費方案可調高,免費方案若太高可能會被 API 限制 |
常見問題
Q:Firecrawl API 有使用量限制嗎?
A:是的,Firecrawl API 提供免費方案但有使用量限制。若需要更高用量,可以考慮付費升級或自行架設 Firecrawl。Q:如何提升研究結果的品質?
A:可以嘗試:- 使用更強大的模型(如
gpt-4
)或自訂本地 LLM。 - 調整研究的深度(depth)和廣度(breadth)。
- 加入自己的資料來源,如特定網站或論文庫。
- 客製化研究流程或 NLP 前處理步驟。
- 使用更強大的模型(如
Q:這個 Open Source 方案可以應用在哪些領域?
A:只要需要「深度研究」的領域都可以,如學術研究、市場調查、競爭分析、內容創作,甚至寫小說、做設定檔都能用。
結論
結合 Firecrawl API 與 Docker 的 Open Source Deep Research,讓你打造一個更強大、更個人化的研究助理。不論你是學生、研究人員、還是內容創作者,都能利用這個方案,提升研究效率並獲得更深入的洞見!🚀
希望這篇文章對你有幫助!如果有任何問題,歡迎在留言區留言,我會盡力回答你的問題!😊