Home
Login

透過爬取網站生成知識檔案,快速創建自定義 GPT 助手的開源工具

ISCTypeScript 21.6kBuilderIO Last Updated: 2025-01-23

GPT-Crawler 項目詳細介紹

項目概述

GPT-Crawler 是由 Builder.io 開發的一個開源項目,旨在通過爬取指定網站來生成知識文件,從而快速創建自定義的 GPT 助手。這個工具只需要提供一個或多個 URL,就能自動抓取網站內容並生成可用於訓練自定義 GPT 的數據文件。

核心功能

  • 網站內容爬取:自動抓取指定網站的內容
  • 知識文件生成:將爬取的內容轉換為可用於 GPT 訓練的格式
  • 靈活配置:支持多種配置選項,包括爬取規則、頁面選擇器等
  • 多種部署方式:支持本地運行、容器化部署和 API 伺服器模式

安裝與使用

前置要求

  • Node.js >= 16

快速開始

git clone https://github.com/builderio/gpt-crawler
npm i

配置文件

config.ts 文件中編輯 urlselector 屬性以滿足您的需求。

示例配置:

export const defaultConfig: Config = {
  url: "https://www.builder.io/c/docs/developers",
  match: "https://www.builder.io/c/docs/**",
  selector: `.docs-builder-container`,
  maxPagesToCrawl: 50,
  outputFileName: "output.json",
};

配置選項詳解

type Config = {
  /** 開始爬取的URL,如果提供了sitemap,則會使用sitemap並下載其中的所有頁面 */
  url: string;
  /** 用於匹配頁面上鏈接的模式,以便後續爬取 */
  match: string;
  /** 用於抓取內部文本的選擇器 */
  selector: string;
  /** 不要爬取超過此數量的頁面 */
  maxPagesToCrawl: number;
  /** 完成數據的文件名 */
  outputFileName: string;
  /** 可選的要排除的資源類型 */
  resourceExclusions?: string[];
  /** 可選的最大文件大小(兆字節) */
  maxFileSize?: number;
  /** 可選的最大token數量 */
  maxTokens?: number;
};

運行爬蟲

npm start

這將生成一個 output.json 文件。

部署選項

容器化部署

進入 containerapp 目錄並修改 config.ts,輸出文件將在 data 文件夾中生成。

API 伺服器模式

npm run start:server
  • 伺服器默認運行在端口 3000
  • 使用 /crawl 端點進行 POST 請求
  • API 文檔可在 /api-docs 端點查看(使用 Swagger)
  • 可以複製 .env.example.env 來自定義環境變量

集成 OpenAI

創建自定義 GPT(UI 訪問)

  1. 前往 https://chat.openai.com/
  2. 點擊左下角的用戶名
  3. 在菜單中選擇 "My GPTs"
  4. 選擇 "Create a GPT"
  5. 選擇 "Configure"
  6. 在 "Knowledge" 下選擇 "Upload a file" 並上傳生成的文件

注意:可能需要付費的 ChatGPT 計劃才能創建和使用自定義 GPT

創建助手(API 訪問)

  1. 前往 https://platform.openai.com/assistants
  2. 點擊 "+ Create"
  3. 選擇 "upload" 並上傳生成的文件

技術特性

  • TypeScript 開發:提供類型安全和更好的開發體驗
  • Express.js 伺服器:提供 RESTful API 接口
  • Docker 支持:便於容器化部署
  • 靈活的選擇器:支持 CSS 選擇器來精確定位內容
  • 資源過濾:可排除圖片、視頻等不需要的資源類型
  • 大小控制:支持限制文件大小和 token 數量

實際案例

項目作者使用這個工具創建了一個 Builder.io 助手,通過爬取 Builder.io 的文檔來回答有關如何使用和集成 Builder.io 的問題。

優勢與應用場景

  • 快速部署:幾分鐘內即可創建專業的知識助手
  • 成本效益:基於現有文檔快速生成 AI 助手
  • 定制化強:支持針對特定領域或產品的知識庫
  • 易於維護:可以定期重新爬取以更新知識庫

注意事項

  • 確保有權限爬取目標網站
  • 文件過大時可能需要分割上傳
  • 需要考慮網站的爬取頻率限制
  • 建議先測試小規模爬取以驗證配置

總結

GPT-Crawler 為快速創建專業的 AI 助手提供了一個強大而靈活的解決方案,特別適合需要基於現有文檔或網站內容創建智能問答系統的場景。