Buy Me a Coffee

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.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"
    # 如果想使用自架的 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"
    
  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"
    # 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

  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 付費或免費方案的使用量限制。

邏輯流程圖

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-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,讓你打造一個更強大、更個人化的研究助理。不論你是學生、研究人員、還是內容創作者,都能利用這個方案,提升研究效率並獲得更深入的洞見!🚀

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