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 助手提供了一个强大而灵活的解决方案,特别适合需要基于现有文档或网站内容创建智能问答系统的场景。