Skip to content

Crawl a site to generate knowledge files to create your own custom GPT from a URL

License

Notifications You must be signed in to change notification settings

yuyuyu2118/gpt-crawler-y

 
 

Repository files navigation

GPT Crawler

※これは以下のリポジトリをフォークしたものです。READMEに関しては、フォーク元のものを日本語訳しております。

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

GPTクローラーは、あるURLまたは複数のURLからデータを収集し、カスタムGPT(OpenAIの自然言語処理モデル)を作成するための知識ファイルを生成するためのツールです。

クロール実行を示すGIF

こちらはカスタムGPTです。Builder.ioのドキュメントにあるURLを提供するだけで、Builder.ioの使い方や統合方法についての質問に答えるのを速やかに手伝ってくれます。

このプロジェクトはドキュメントをクロールし、カスタムGPTに入力可能なファイルを出力します。

自分でも試してみましょう。サイトにBuilder.ioを統合する方法について質問してください。

この機能にアクセスするには有料のChatGPTプランが必要な場合があります。

始め方

ローカルでの実行

リポジトリをクローンする

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

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

依存関係をインストール

npm i

もしくは

npm install

クローラーを設定する

config.ts を開いて、プロパティを変更してください。

例えば、カスタムGPTを作成するために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",
};
export const defaultConfig: Config = {
  url: "https://www.builder.io/c/docs/developers",
  match: "https://www.builder.io/c/docs/**",
  maxPagesToCrawl: 50,
  outputFileName: "output.json",
  waitTime: 1000,
  onVisitPage: async ({ visitPageWaitTime }) => {
    await new Promise(resolve => setTimeout(resolve, visitPageWaitTime ?? 1000));
  },
  userAgent: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
};

利用可能なすべてのオプションについて説明します。

type Config = {
  // クロールを開始するURL
  url: string;
  // このパターンに一致するリンクのみをクロール対象とする
  match: string | string[];
  // このセレクタで指定された要素からインナーテキストを取得する
  selector: string;
  // 最大でこの数のページをクロールする
  maxPagesToCrawl: number;
  // クロール結果を保存するファイル名
  outputFileName: string;
  // 必要に応じて設定されるクッキー
  cookie?: { name: string; value: string };
  // 各ページ訪問時に実行されるオプショナルな関数
  onVisitPage?: (options: {
    page: Page;
    pushData: (data: any) => Promise<void>;
    visitPageWaitTime?: number;
  }) => Promise<void>;
  // セレクタが表示されるまで待機するオプショナルなタイムアウト
  waitForSelectorTimeout?: number;
  // 使用するオプショナルなユーザーエージェント
  userAgent?: string;
  // 各ページの読み込み間のオプショナルな待ち時間
  waitTime?: number;
};

クローラーを実行する

npm start

もしくは

npm run start:cross-env

別の方法

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

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」を選択し、生成したファイルをアップロードします。

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

カスタムアシスタントを作成する

生成した知識にAPIアクセスし、製品に統合できるこのオプションを使用します。

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

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

Contributing

Know how to make this project better? Send a PR!



Made with love by Builder.io

また、このリポジトリのフォーク元である、Builder.ioの開発者の方々に感謝します。

About

Crawl a site to generate knowledge files to create your own custom GPT from a URL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 51.1%
  • Dockerfile 25.1%
  • JavaScript 17.1%
  • Shell 6.7%