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 Crawler

Durchsuchen Sie eine Website, um Wissensdateien zu generieren und daraus ein benutzerdefiniertes GPT mit einer oder mehreren URLs zu erstellen

Gif, das den Crawler-Vorgang zeigt

Beispiel

Hier ist ein benutzerdefiniertes GPT, das ich schnell erstellt habe, um Fragen zur Verwendung und Integration von Builder.io zu beantworten, indem einfach die URL der Builder-Dokumentation angegeben wurde.

Dieses Projekt hat die Dokumentation durchsucht und die Datei generiert, die ich als Grundlage für das benutzerdefinierte GPT hochgeladen habe.

Probieren Sie es selbst aus, indem Sie Fragen zur Integration von Builder.io in eine Website stellen.

Hinweis: Möglicherweise benötigen Sie einen kostenpflichtigen ChatGPT-Plan, um auf diese Funktion zugreifen zu können

Erste Schritte

Lokale Ausführung

Repository klonen

Stellen Sie sicher, dass Node.js >= 16 installiert ist.

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

Abhängigkeiten installieren

npm i

Crawler konfigurieren

Öffnen Sie config.ts und bearbeiten Sie die Eigenschaften url und selector entsprechend Ihren Anforderungen.

Zum Beispiel, um die Builder.io-Dokumentation für unser benutzerdefiniertes GPT zu durchsuchen, können Sie Folgendes verwenden:

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

Weitere verfügbare Optionen finden Sie in config.ts. Hier ist ein Beispiel für gängige Konfigurationsoptionen:

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

Crawler ausführen

npm start

Alternative Methoden

Ausführung in einem Container mit Docker

Um die output.json mit einer containerisierten Ausführung zu erhalten, gehen Sie in das Verzeichnis containerapp und passen Sie die config.ts wie oben gezeigt an. Die Datei output.json sollte im Datenordner generiert werden. Hinweis: Die Eigenschaft outputFileName in der config.ts-Datei im containerapp-Verzeichnis ist für die Containerausführung konfiguriert.

Ausführung als API

Um die App als API-Server auszuführen, müssen Sie die Abhängigkeiten mit npm install installieren. Der Server ist in Express JS geschrieben.

Um den Server zu starten:

npm run start:server startet den Server. Der Server läuft standardmäßig auf Port 3000.

Sie können den Endpunkt /crawl mit dem POST-Request-Body der Config-JSON verwenden, um den Crawler auszuführen. Die API-Dokumentation wird unter dem Endpunkt /api-docs bereitgestellt und mit Swagger angezeigt.

Um die Umgebung anzupassen, können Sie die .env.example in .env kopieren und Werte wie Port usw. setzen, um die Variablen für den Server zu überschreiben.

Daten zu OpenAI hochladen

Der Crawler generiert eine Datei namens output.json im Stammverzeichnis dieses Projekts. Laden Sie diese bei OpenAI hoch, um Ihren benutzerdefinierten Assistenten oder Ihr benutzerdefiniertes GPT zu erstellen.

Ein benutzerdefiniertes GPT erstellen

Verwenden Sie diese Option für den UI-Zugriff auf Ihr generiertes Wissen, das Sie einfach mit anderen teilen können

Hinweis: Möglicherweise benötigen Sie einen kostenpflichtigen ChatGPT-Plan, um benutzerdefinierte GPTs zu erstellen und zu nutzen

  1. Gehen Sie zu https://chat.openai.com/
  2. Klicken Sie unten links auf Ihren Namen
  3. Wählen Sie im Menü "My GPTs"
  4. Wählen Sie "Create a GPT"
  5. Wählen Sie "Configure"
  6. Wählen Sie unter "Knowledge" "Upload a file" und laden Sie die generierte Datei hoch
  7. Wenn Sie eine Fehlermeldung über eine zu große Datei erhalten, können Sie versuchen, sie in mehrere Dateien aufzuteilen und separat hochzuladen, indem Sie die Option maxFileSize in der config.ts-Datei verwenden oder auch Tokenisierung mit der Option maxTokens in der config.ts-Datei nutzen, um die Dateigröße zu reduzieren

Gif, das zeigt, wie ein benutzerdefiniertes GPT hochgeladen wird

Einen benutzerdefinierten Assistenten erstellen

Verwenden Sie diese Option für den API-Zugriff auf Ihr generiertes Wissen, das Sie in Ihr Produkt integrieren können.

  1. Gehen Sie zu https://platform.openai.com/assistants
  2. Klicken Sie auf "+ Create"
  3. Wählen Sie "upload" und laden Sie die generierte Datei hoch

Gif, das zeigt, wie ein Assistent hochgeladen wird

Mitwirken

Wissen Sie, wie Sie dieses Projekt verbessern können? Senden Sie einen PR!



Made with love by Builder.io