Ein Open-Source-Tool zur schnellen Erstellung benutzerdefinierter GPT-Assistenten durch das Crawlen von Websites und Generieren von Wissensdateien.
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)
- Gehen Sie zu https://chat.openai.com/
- Klicken Sie unten links auf den Benutzernamen
- Wählen Sie im Menü "My GPTs"
- Wählen Sie "Create a GPT"
- Wählen Sie "Configure"
- 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)
- Gehen Sie zu https://platform.openai.com/assistants
- Klicken Sie auf "+ Create"
- 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.