Lightfeed Extractor 是一個使用大型語言模型(LLMs)進行穩健網頁資料提取的 Typescript 庫。它允許使用自然語言提示從 HTML、Markdown 或純文字中提取結構化資料,並且在令牌使用效率上表現優異,這對於生產資料管線至關重要。

功能包括:

🧹 LLM專用Markdown - 將 HTML 轉換為適合 LLM 處理的 Markdown,並可選擇只提取主要內容及透過移除追蹤參數來清理 URL。

⚡️ LLM提取 - 使用 LLM 的 JSON 模式,根據輸入的 Zod 架構提取結構化資料,並包含令牌使用限制與追蹤功能。

🛠️ JSON恢復 - 清理並恢復失敗的 JSON 輸出,使得複雜架構的提取更穩健,尤其是深度巢狀的物件與陣列。

🔗 URL 驗證 - 處理相對 URL、移除無效連結,並修復 Markdown 中被轉義的連結。

🤖 支援 Playwright - 可使用 Playwright 載入網頁,再從 HTML 內容中提取結構化資料。

🧭 AI 瀏覽器導航 - 可與 @lightfeed/browser-agent 搭配,使用自然語言指令導航網頁,然後提取結構化資料。

若您需要大規模建立零售競爭情報,可參考 lightfeed.ai 平台,追蹤競爭對手價格、銷售、促銷及 SEO。

此庫可與 @langchain/core 及您選擇的 LLM 供應商搭配使用,並示範如何利用 Playwright 載入電商網站頁面,然後用 Extractor 提取結構化產品資料。

對於需要互動才能提取資料的頁面(如搜尋、分頁點擊、彈窗關閉等),可搭配 @lightfeed/browser-agent 使用,該瀏覽器代理可透過 AI 以自然語言指令導航頁面,然後由 Extractor 提取結構化資料。

也可直接從 HTML、Markdown 或文字字串中提取結構化資料,並可自訂提示詞以引導提取流程。若未提供提示詞,則使用預設的提取提示。

此外,可使用 extractionContext 選項提供上下文資訊,提升提取的準確度與完整性,LLM 將同時考慮內容與上下文進行提取。

支援多種 LangChain 聊天模型,如 OpenAI、Google Gemini、Anthropic、Mistral、Ollama、Azure OpenAI、AWS Bedrock 等。

可使用 maxInputTokens 選項在內容超過模型上下文視窗時截斷輸入。

針對部落格文章或含有大量導航元素、標頭與頁尾的內容,可使用 extractMainHtml 選項聚焦於主要內容區域(如 article 或 main 標籤),但對於單一商品詳細頁等,建議關閉此選項以免移除重要上下文。

預設不包含圖片於 HTML 提取中,若需提取圖片 URL 或參考,可啟用 includeImages 選項。

此庫能清理 URL,移除追蹤參數及不必要的部分,產生更乾淨易讀的連結,特別適用於電商網站。目前支援清理 Amazon 產品 URL 中的 /ref= 參數及其後內容,未來將擴充支援其他平台。

主要函式可從內容中提取結構化資料,回傳 Promise,解析為 ExtractorResult<T> 物件。

建議使用 Playwright 載入網頁後,將 HTML 內容傳入 Extractor。Playwright 需另行安裝。

提供 convertHtmlToMarkdown 工具函式,可將 HTML 轉換為 Markdown,無須進行提取。

safeSanitizedParser 工具函式可協助清理並恢復不完全符合架構的 LLM 輸出,特別適用於複雜資料。

內建強健的 URL 驗證與處理,利用 Zod 的 z.string().url() 驗證器,確保 URL 提取可靠且符合架構。

可使用真實 API 呼叫與範例 HTML 檔案測試此庫,包含單元測試與整合測試。

整合測試需在 .env 檔案或環境變數中提供有效 API 金鑰,否則測試將失敗。

每個整合測試均使用 Google Gemini 與 OpenAI 進行,確保跨供應商相容性。

專案包含針對 HTML 轉 Markdown 轉換器的完整整合測試,使用真實世界 HTML 範例驗證三種轉換類型。

測試使用 Git 子模組管理 HTML 與對應的 Markdown 標準檔案,子模組預設不下載以保持倉庫輕量。可依需求下載並執行測試。

測試套件會自動發現所有可用測試檔案,並為每種有對應標準檔的轉換類型建立測試案例。

可使用 -t 參數搭配描述模式選擇特定測試執行,支援精確或模糊匹配。

若需要實作協助,請參考相關文件與範例程式碼。

總結而言,Lightfeed Extractor 利用大型語言模型提供一套強大且靈活的網頁資料提取解決方案,適合需要高準確度與效率的生產環境使用。