Durchsuchen Sie eine Website, um Wissensdateien zu generieren und daraus ein benutzerdefiniertes GPT mit einer oder mehreren URLs zu erstellen
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
Stellen Sie sicher, dass Node.js >= 16 installiert ist.
git clone https://github.com/builderio/gpt-crawler
npm i
Ö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;
};
npm start
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.
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.
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.
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
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 reduzierenVerwenden Sie diese Option für den API-Zugriff auf Ihr generiertes Wissen, das Sie in Ihr Produkt integrieren können.
Wissen Sie, wie Sie dieses Projekt verbessern können? Senden Sie einen PR!