はじめに
GPT-Crawlerは、BuilderIOチームによって開発され、GitHubでホストされているオープンソースツールです。1つ以上のウェブサイトのURLを入力することでページコンテンツをクロールし、構造化ナレッジドキュメント(output.json
)を使って、カスタムGPTまたはAIアシスタントを作成することができる。ユーザは、開始URLやコンテンツセレクタの指定などのクロールルールを設定することができ、ツールは自動的にテキストを抽出し、ファイルに整理する。このツールは使いやすく、ローカルでの実行、Dockerコンテナへのデプロイ、APIコールをサポートしているため、開発者がウェブサイトのコンテンツから独自のAIアシスタントを素早く構築するのに理想的だ。これまでのところ、その効率性とオープンソースの性質が人気を呼び、技術コミュニティで支持を集めている。
機能一覧
- 1つまたは複数のURLからウェブサイトのコンテンツをクロールし、以下を生成する。
output.json
ドキュメンテーション - 開始URL、リンクマッチングパターン、CSSセレクタなどのカスタムクロールルールをサポート。
- 動的なウェブページを処理し、ヘッドレス・ブラウザを使用してクライアント側でレンダリングされたコンテンツをクロールする能力。
- POSTリクエストによってクロールタスクを開始するためのAPIインターフェースを提供する。
- 最大ページ数の設定に対応(
maxPagesToCrawl
)、ドキュメント・サイズ(maxFileSize
)とトークン数(maxTokens
). - 生成されたファイルは、カスタムGPTやAIアシスタントを作成するためにOpenAIに直接アップロードすることができます。
- Dockerコンテナの実行をサポートし、さまざまな環境に簡単にデプロイできます。
- クロール効率を最適化するために、特定のリソースタイプ(画像、ビデオなど)を除外することができる。
ヘルプの使用
設置および操作(ローカルモード)
GPT-CrawlerはNode.js開発に基づいており、実行するにはインストールが必要です。詳しい手順は以下の通りです:
- 環境のチェック
コンピューターにNode.js(バージョン16以上)とnpmがインストールされていることを確認し、以下のコマンドを実行して確認する:
node -v
npm -v
お持ちでない場合は、Node.jsのウェブサイトからダウンロードしてインストールしてください。
- クローンプロジェクト
ターミナルでコマンドを入力し、プロジェクトをローカルにダウンロードする:
git clone https://github.com/BuilderIO/gpt-crawler.git
- カタログへのアクセス
ダウンロードが完了したら、プロジェクトフォルダーに移動する:
cd gpt-crawler
- 依存関係のインストール
以下のコマンドを実行して、必要なパッケージをインストールする:
npm install
- クローラーの設定
見せるconfig.ts
ファイルのクロール・パラメータを変更する。たとえば、Builder.io ドキュメントをクロールするには、次のようにする:
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"
};
url
クロール開始アドレスmatch
ワイルドカードをサポートするリンク・マッチング・パターン。selector
: コンテンツを抽出するための CSS セレクタ。maxPagesToCrawl
クロールする最大ページ数。outputFileName
出力ファイル名
- クローラーの実行
設定が完了したら、以下のコマンドを実行してクロールを開始する:
npm start
完成後output.json
ファイルはプロジェクトのルート・ディレクトリに生成される。
代替オペレーション・モード
Dockerコンテナの使用
- Dockerがインストールされていることを確認する(Dockerのウェブサイトからダウンロード)。
- 入る
containerapp
フォルダ、編集config.ts
. - 以下のコマンドを実行し、コンテナをビルドして起動する:
docker build -t gpt-crawler .
docker run -v $(pwd)/data:/app/data gpt-crawler
- 出力ファイルは
data
フォルダー
APIを使って実行する
- 依存関係をインストールしたら、APIサービスを開始する:
npm run start:server
- サービスはデフォルトで
http://localhost:3000
. - にPOSTリクエストを送信する。
/crawl
例えば
curl -X POST http://localhost:3000/crawl -H "Content-Type: application/json" -d '{"url":"https://example.com","match":"https://example.com/**","selector":"body","maxPagesToCrawl":10,"outputFileName":"output.json"}'
- アクセス可能
/api-docs
APIドキュメントを見る(Swaggerベース)。
OpenAIへのアップロード
- カスタムGPTの作成
- ChatGPTを開く。
- 左下にある自分の名前をクリックし、"My GPTs "を選択します。
- GPTを作成」→「設定」→「知識」をクリックします。
- アップロード
output.json
ドキュメンテーション - ファイルが大きすぎる場合
config.ts
セットアップmaxFileSize
もしかしたらmaxTokens
ファイルを分割する。
- カスタムアシスタントの作成
- OpenAIのプラットフォームを開く。
- 作成」→「アップロード」をクリック。
- アップロード
output.json
ドキュメンテーション
機能
- クロール・コンテンツ
はっきり確実に示すurl
歌で応えるselector
その後、ツールはページテキストを抽出する。例えば.docs-builder-container
リージョンの内容だけをつかむ。 - ファイルの生成
出力ファイル形式は
[{"title": "页面标题", "url": "https://example.com/page", "html": "提取的文本"}, ...]
- 最適化された出力
利用するresourceExclusions
余計なリソースは除外する(例えばpng
そしてjpg
)、ファイルサイズを小さくする。
ほら
- カスタムGPTを作成するには、OpenAIの有料アカウントが必要です。
- ダイナミック・ウェブ・クローリングは、依存関係の完全性を保証するためにヘッドレス・ブラウザに依存している。
- ファイルが大きすぎる場合、アップロードを分割するように設定を調整することができます。
アプリケーションシナリオ
- テクニカル・サポート・アシスタント
製品ドキュメントのウェブサイトをクロールし、ユーザーが技術的な質問に答えるのを助けるAIアシスタントを生成する。 - コンテンツ整理ツール
ブログやニュースサイトから記事を収集し、ナレッジベースやQ&Aアシスタントを作成する。 - 教育訓練アシスタント
オンラインコースのページをクロールし、コースに関連した回答を提供する学習アシスタントを生成します。
品質保証
- 複数のウェブサイトをクロールすることは可能ですか?
缶でのconfig.ts
で複数のURLとマッチルールを設定するだけです。 - ファイルが大きすぎてアップロードできない場合は?
セットアップmaxFileSize
もしかしたらmaxTokens
ファイルを複数の小さなファイルに分割する。 - 中国のウェブサイトをサポートしていますか?
サポート。サイトのコンテンツがヘッドレス・ブラウザで解析できる限り、適切にクロールできる。