Home
Login

Ein Open-Source-Tool zur schnellen Erstellung benutzerdefinierter GPT-Assistenten durch das Crawlen von Websites und Generieren von Wissensdateien.

ISCTypeScript 21.6kBuilderIO Last Updated: 2025-01-23

GPT-Crawler Projektbeschreibung

Projektübersicht

GPT-Crawler ist ein Open-Source-Projekt von Builder.io, das darauf abzielt, durch das Crawlen bestimmter Websites Wissensdateien zu generieren, um schnell benutzerdefinierte GPT-Assistenten zu erstellen. Dieses Tool benötigt lediglich eine oder mehrere URLs, um automatisch Website-Inhalte zu erfassen und Datendateien zu generieren, die zum Trainieren benutzerdefinierter GPTs verwendet werden können.

Kernfunktionen

  • Website-Content-Crawling: Automatisches Erfassen von Inhalten bestimmter Websites
  • Generierung von Wissensdateien: Konvertierung der gecrawlten Inhalte in ein Format, das für das GPT-Training verwendet werden kann
  • Flexible Konfiguration: Unterstützung verschiedener Konfigurationsoptionen, einschließlich Crawling-Regeln, Seitenselektoren usw.
  • Verschiedene Bereitstellungsmethoden: Unterstützung für lokale Ausführung, containerisierte Bereitstellung und API-Servermodus

Installation und Verwendung

Voraussetzungen

  • Node.js >= 16

Schnellstart

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

Konfigurationsdatei

Bearbeiten Sie die Attribute url und selector in der Datei config.ts, um Ihre Anforderungen zu erfüllen.

Beispielkonfiguration:

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

Erläuterung der Konfigurationsoptionen

type Config = {
  /** URL, von der aus das Crawlen gestartet werden soll. Wenn eine Sitemap bereitgestellt wird, wird diese verwendet und alle Seiten darin werden heruntergeladen */
  url: string;
  /** Muster zum Abgleichen von Links auf der Seite für das nachfolgende Crawlen */
  match: string;
  /** Selektor zum Erfassen von internem Text */
  selector: string;
  /** Crawlen Sie nicht mehr als diese Anzahl von Seiten */
  maxPagesToCrawl: number;
  /** Dateiname für die fertigen Daten */
  outputFileName: string;
  /** Optionale auszuschließende Ressourcentypen */
  resourceExclusions?: string[];
  /** Optionale maximale Dateigröße (Megabyte) */
  maxFileSize?: number;
  /** Optionale maximale Anzahl von Token */
  maxTokens?: number;
};

Ausführen des Crawlers

npm start

Dadurch wird eine output.json-Datei generiert.

Bereitstellungsoptionen

Containerisierte Bereitstellung

Wechseln Sie in das Verzeichnis containerapp und ändern Sie config.ts. Die Ausgabedatei wird im Ordner data generiert.

API-Servermodus

npm run start:server
  • Der Server läuft standardmäßig auf Port 3000
  • Verwenden Sie den /crawl-Endpunkt für POST-Anfragen
  • Die API-Dokumentation ist am /api-docs-Endpunkt verfügbar (mit Swagger)
  • Sie können .env.example als .env kopieren, um Umgebungsvariablen anzupassen

Integration von OpenAI

Erstellen eines benutzerdefinierten GPT (UI-Zugriff)

  1. Gehen Sie zu https://chat.openai.com/
  2. Klicken Sie unten links auf den Benutzernamen
  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" die Option "Upload a file" und laden Sie die generierte Datei hoch

Hinweis: Möglicherweise ist ein kostenpflichtiger ChatGPT-Plan erforderlich, um benutzerdefinierte GPTs zu erstellen und zu verwenden

Erstellen eines Assistenten (API-Zugriff)

  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

Technische Merkmale

  • TypeScript-Entwicklung: Bietet Typsicherheit und eine bessere Entwicklungserfahrung
  • Express.js-Server: Bietet RESTful-API-Schnittstellen
  • Docker-Unterstützung: Erleichtert die containerisierte Bereitstellung
  • Flexible Selektoren: Unterstützt CSS-Selektoren zur präzisen Lokalisierung von Inhalten
  • Ressourcenfilterung: Ermöglicht das Ausschließen unerwünschter Ressourcentypen wie Bilder und Videos
  • Größenkontrolle: Unterstützt die Begrenzung der Dateigröße und der Tokenanzahl

Praktisches Beispiel

Der Projektautor hat dieses Tool verwendet, um einen Builder.io-Assistenten zu erstellen, der durch das Crawlen der Builder.io-Dokumentation Fragen zur Verwendung und Integration von Builder.io beantwortet.

Vorteile und Anwendungsbereiche

  • Schnelle Bereitstellung: Erstellen Sie in wenigen Minuten professionelle Wissensassistenten
  • Kosteneffizienz: Schnelle Generierung von KI-Assistenten auf Basis vorhandener Dokumentation
  • Hohe Anpassbarkeit: Unterstützung von Wissensdatenbanken für bestimmte Bereiche oder Produkte
  • Einfache Wartung: Regelmäßiges erneutes Crawlen zur Aktualisierung der Wissensdatenbank

Hinweise

  • Stellen Sie sicher, dass Sie die Berechtigung haben, die Zielwebsite zu crawlen
  • Bei zu großen Dateien müssen diese möglicherweise aufgeteilt und hochgeladen werden
  • Berücksichtigen Sie die Crawling-Frequenzbeschränkungen der Website
  • Es wird empfohlen, zuerst ein kleines Crawling zu testen, um die Konfiguration zu überprüfen

Zusammenfassung

GPT-Crawler bietet eine leistungsstarke und flexible Lösung für die schnelle Erstellung professioneller KI-Assistenten, insbesondere geeignet für Szenarien, in denen intelligente Frage-Antwort-Systeme auf Basis vorhandener Dokumente oder Website-Inhalte erstellt werden müssen.