Last translated: 13 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

GPTクローラー

1つまたは複数のURLから独自のカスタムGPTを作成するためのナレッジファイルを生成するサイトクローラー

クロール実行の様子を示すGIF

使用例

Builder.ioのドキュメントURLを提供するだけで、Builderの使用方法や統合方法に関する質問に答えるカスタムGPTを簡単に作成しました。

このプロジェクトはドキュメントをクロールし、カスタムGPTの基礎としてアップロードしたファイルを生成しました。

実際に試してみてください - Builder.ioをサイトに統合する方法について質問してみてください。

注意: この機能を利用するには有料のChatGPTプランが必要な場合があります

はじめに

ローカルでの実行

リポジトリのクローン

Node.js >= 16がインストールされていることを確認してください。

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

依存関係のインストール

npm i

クローラーの設定

config.tsを開き、urlselectorプロパティをニーズに合わせて編集してください。

例: Builder.ioドキュメントをクロールしてカスタムGPTを作成する場合:

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",
};

利用可能なすべてのオプションについてはconfig.tsを参照してください。一般的な設定オプションの例:

type Config = {
  /** URL to start the crawl, if sitemap is provided then it will be used instead and download all pages in the sitemap */
  url: string;
  /** Pattern to match against for links on a page to subsequently crawl */
  match: string;
  /** Selector to grab the inner text from */
  selector: string;
  /** Don't crawl more than this many pages */
  maxPagesToCrawl: number;
  /** File name for the finished data */
  outputFileName: string;
  /** Optional resources to exclude
   *
   * @example
   * ['png','jpg','jpeg','gif','svg','css','js','ico','woff','woff2','ttf','eot','otf','mp4','mp3','webm','ogg','wav','flac','aac','zip','tar','gz','rar','7z','exe','dmg','apk','csv','xls','xlsx','doc','docx','pdf','epub','iso','dmg','bin','ppt','pptx','odt','avi','mkv','xml','json','yml','yaml','rss','atom','swf','txt','dart','webp','bmp','tif','psd','ai','indd','eps','ps','zipx','srt','wasm','m4v','m4a','webp','weba','m4b','opus','ogv','ogm','oga','spx','ogx','flv','3gp','3g2','jxr','wdp','jng','hief','avif','apng','avifs','heif','heic','cur','ico','ani','jp2','jpm','jpx','mj2','wmv','wma','aac','tif','tiff','mpg','mpeg','mov','avi','wmv','flv','swf','mkv','m4v','m4p','m4b','m4r','m4a','mp3','wav','wma','ogg','oga','webm','3gp','3g2','flac','spx','amr','mid','midi','mka','dts','ac3','eac3','weba','m3u','m3u8','ts','wpl','pls','vob','ifo','bup','svcd','drc','dsm','dsv','dsa','dss','vivo','ivf','dvd','fli','flc','flic','flic','mng','asf','m2v','asx','ram','ra','rm','rpm','roq','smi','smil','wmf','wmz','wmd','wvx','wmx','movie','wri','ins','isp','acsm','djvu','fb2','xps','oxps','ps','eps','ai','prn','svg','dwg','dxf','ttf','fnt','fon','otf','cab']
   */
  resourceExclusions?: string[];
  /** Optional maximum file size in megabytes to include in the output file */
  maxFileSize?: number;
  /** Optional maximum number tokens to include in the output file */
  maxTokens?: number;
};

クローラーの実行

npm start

その他の実行方法

Dockerコンテナでの実行

コンテナ化された実行でoutput.jsonを取得するには、containerappディレクトリに移動し、上記のようにconfig.tsを変更します。output.jsonファイルはdataフォルダに生成されます。注: containerappディレクトリ内のconfig.tsファイルのoutputFileNameプロパティはコンテナで動作するように設定されています。

APIとしての実行

APIサーバーバーとしてアプリを実行するには、依存関係をインストールするためにnpm installを実行する必要があります。サーバーはExpress JSで書かれています。

サーバーを実行するには:

npm run start:serverでサーバーを起動します。サーバーはデフォルトでポート3000で実行されます。

クローラーを実行するには、/crawlエンドポイントにconfig jsonをPOSTリクエストボディとして送信します。APIドキュメントは/api-docsエンドポイントで提供され、swaggerを使用して提供されます。

環境を変更するには、.env.example.envにコピーし、ポートなどの変数を設定してサーバーの変数を上書きできます。

OpenAIへのデータアップロード

クロールはプロジェクトのルートにoutput.jsonというファイルを生成します。それをOpenAIにアップロードしてカスタムアシスタントまたはカスタムGPTを作成してください。

カスタムGPTの作成

生成されたナレッジにUIでアクセスし、簡単に他の人と共有できるようにするにはこのオプションを使用します

注意: 現在、カスタムGPTを作成して使用するには有料のChatGPTプランが必要な場合があります

  1. https://chat.openai.com/にアクセス
  2. 左下隅の名前をクリック
  3. メニューから「My GPTs」を選択
  4. 「Create a GPT」を選択
  5. 「Configure」を選択
  6. 「Knowledge」で「Upload a file」を選択し、生成したファイルをアップロード
  7. ファイルが大きすぎるというエラーが発生した場合、config.tsファイルのmaxFileSizeオプションを使用して複数のファイルに分割して個別にアップロードするか、config.tsファイルのmaxTokensオプションを使用してトークン化してファイルサイズを減らすこともできます

カスタムGPTのアップロード方法を示すGIF

カスタムアシスタントの作成

生成されたナレッジにAPIでアクセスし、製品に統合できるようにするにはこのオプションを使用します。

  1. https://platform.openai.com/assistantsにアクセス
  2. 「+ Create」をクリック
  3. 「upload」を選択し、生成したファイルをアップロード

アシスタントへのアップロード方法を示すGIF

貢献について

このプロジェクトを改善する方法を知っていますか? PRを送ってください!



Made with love by Builder.io