Open Source Deep Research 進階實作:結合 Firecrawl API 與 Docker,打造你的個人化研究助理!

  • Post by
  • Feb 12, 2025
post-thumb

還記得 OpenAI 推出 Deep Research 時,大家驚呼連連,覺得這根本是學術界的救星!但每個月 200 美金的訂閱費,讓不少人只能望之卻步… 💸

別擔心!身為一個熱愛 Open Source 的部落格顧問,我今天要來跟大家分享一個更棒的解決方案:結合 Firecrawl API 與 Docker 的 Open Source Deep Research! 這個方法不只省錢,還能讓你打造一個更強大、更個人化的研究助理!😎

Buy Me a Coffee

回顧:什麼是 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.jsDocker,並結合 Firecrawl API,打造一個更強大、更個人化的深度研究助理!🚀

準備工作

在開始之前,請確保你已經準備好以下東西:

  1. OpenAI API 金鑰: 若你要使用 OpenAI 的服務(例如 o3 mini model),可到 OpenAI Platform 註冊帳號並取得金鑰。
    • 若你有自己的本地 LLM 服務,也可以不使用 OpenAI Key,改用自訂 endpoint。
  2. Firecrawl API 金鑰:Firecrawl 註冊帳號並取得金鑰。
  3. Node.js 環境:Node.js 官網 下載安裝。
  4. Docker:Docker 官網 下載安裝。
  5. Git:Git 官網 下載安裝。
  6. deep-research 程式碼:GitHub 下載程式碼(或使用 git clone)。

安裝與執行教學(Node.js 版本)

如果你只是想在本機上直接跑 Node.js 版本(不使用 Docker),可以參考以下步驟:

  1. Clone 專案:

    git clone https://github.com/dzhng/deep-research.git
    cd deep-research
    
  2. 安裝依賴:

    npm install
    
  3. 建立並設定 .env.local

    deep-research 資料夾裡,建立一個名為 .env.local 的檔案,並且加入以下內容:

    FIRECRAWL_KEY="your_firecrawl_key"
    
    OPENAI_KEY="your_openai_key"
    

    如果你有自己的本地 LLM,想要改用自訂 API,請註解掉 OPENAI_KEY,並改用:

    OPENAI_ENDPOINT="http://localhost:1234/v1"
    OPENAI_MODEL="custom_model_name"
    
  4. 執行研究助理:

    npm start
    

    接著你會看到互動式提示,請依照需求輸入:

    1. 你想研究的主題 (research query)
    2. 研究的廣度 (breadth)(建議 3-10,預設 4)
    3. 研究的深度 (depth)(建議 1-5,預設 2)
    4. 回答一些後續提問,來細化研究方向

    最終報告會自動儲存到 output.md 中。

Docker 版本安裝教學

如果你想確保在任何環境都能順利執行,或是想避免安裝各種依賴,可以使用 Docker 來運行本專案。

  1. Clone 專案:

    git clone https://github.com/dzhng/deep-research.git
    cd deep-research
    
  2. 建立/修改 .env.local

    將專案內的 .env.example 檔改名為 .env.local,然後設定以下內容:

    FIRECRAWL_KEY="your_firecrawl_key"
    OPENAI_KEY="your_openai_key"
    

    或者若你有自訂 LLM 端點:

    OPENAI_ENDPOINT="http://localhost:1234/v1"
    OPENAI_MODEL="my_custom_model"
    

    (記得註解或移除 OPENAI_KEY

  3. 安裝依賴:

    npm install
    
  4. 啟動 Docker 容器:

    docker compose up -d
    

    這會在背景啟動容器,並且命名為 deep-research(可在 docker-compose.yml 內確認服務名稱)。

  5. 在 Docker 容器中執行程式:

    docker exec -it deep-research npm run docker
    

    執行後,一樣會出現互動式提示,讓你輸入研究主題、廣度、深度等資訊,最後會在容器中完成整個研究流程,並將結果輸出到 output.md

範例:研究「AI 在教育領域的應用」

讓我們來試試看研究「AI 在教育領域的應用」這個主題。如果你使用 Docker 版本:

  1. 進入專案資料夾後輸入:
    docker compose up -d
    
  2. 等容器啟動完成後,再輸入:
    docker exec -it deep-research npm run docker
    
  3. 互動式提示出現後,依序填入:
    1. What are the applications of AI in education?
    2. breadth: 5
    3. depth: 5
  4. 報告會輸出在 output.md

如果是本機直接用 Node.js 執行,則只需要:

npm start

並同樣在互動式提示中輸入你的研究主題即可。

進階應用:打造你的個人化研究引擎

有了這個 Open Source Deep Research 方案,你可以做更多客製化:

  • 加入自己的資料來源: 除了網頁資料,你還可以加入自己的文件、資料庫等。
  • 使用不同的模型: 例如改成本地自架的大語言模型,或是使用更強大的 gpt-4
  • 客製化研究流程: 修改程式碼,調整研究的深度和廣度,或是加入自己的 NLP 工具。
  • 調整並行處理限制(Concurrency):在 deep-research.ts 中提升或降低 ConcurrencyLimit,以因應 Firecrawl 付費或免費方案的使用量限制。

邏輯流程圖

使用者提問
程式開始
設定 Firecrawl API 金鑰和 OpenAI API 金鑰或自訂 Endpoint
啟動或進入 Docker 容器(或本機執行)
程式開始 Deep Research
程式開始研究
使用 Firecrawl API 爬取網頁資料
分析網頁資料
生成研究報告
儲存研究報告到 output.md
使用者查看研究報告

參數設定表

參數名稱參數說明預設值備註
research_query你想要研究的問題這個參數是必填的
breadth研究的廣度4這個參數越大,程式碼會搜尋越多關鍵字/網頁
depth研究的深度2這個參數越大,程式碼會分析越多層次的網頁內容
model使用的模型o3-mini 或自訂可以改用 gpt-3.5-turbogpt-4,或任何相容的本地模型
max_tokens模型輸出的最大 token 數量2048根據你的需求和模型能力調整
ConcurrencyLimit同時進行的爬取/分析上限3付費方案可調高,免費方案若太高可能會被 API 限制

常見問題

  • Q:Firecrawl API 有使用量限制嗎?
    A:是的,Firecrawl API 提供免費方案但有使用量限制。若需要更高用量,可以考慮付費升級或自行架設 Firecrawl。

  • Q:如何提升研究結果的品質?
    A:可以嘗試:

    1. 使用更強大的模型(如 gpt-4)或自訂本地 LLM。
    2. 調整研究的深度(depth)和廣度(breadth)。
    3. 加入自己的資料來源,如特定網站或論文庫。
    4. 客製化研究流程或 NLP 前處理步驟。
  • Q:這個 Open Source 方案可以應用在哪些領域?
    A:只要需要「深度研究」的領域都可以,如學術研究、市場調查、競爭分析、內容創作,甚至寫小說、做設定檔都能用。

結論

結合 Firecrawl APIDocker 的 Open Source Deep Research,讓你打造一個更強大、更個人化的研究助理。不論你是學生、研究人員、還是內容創作者,都能利用這個方案,提升研究效率並獲得更深入的洞見!🚀

希望這篇文章對你有幫助!如果有任何問題,歡迎在留言區留言,我會盡力回答你的問題!😊

LATEST POST
TAG