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

Explorez un site pour générer des fichiers de connaissances afin de créer votre propre GPT personnalisé à partir d'une ou plusieurs URL.

Gif montrant l'exécution du crawl

Exemple

Voici un GPT personnalisé que j'ai rapidement créé pour aider à répondre aux questions sur l'utilisation et l'intégration de Builder.io en fournissant simplement l'URL de la documentation de Builder.

Ce projet a exploré la documentation et généré le fichier que j'ai téléversé comme base pour le GPT personnalisé.

Essayez-le vous-même en posant des questions sur l'intégration de Builder.io dans un site.

Notez que vous pourriez avoir besoin d'un abonnement payant à ChatGPT pour accéder à cette fonctionnalité.

Bien démarrer

Exécution locale

Cloner le dépôt

Assurez-vous d'avoir Node.js >= 16 installé.

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

Installer les dépendances

npm i

Configurer le crawler

Ouvrez config.ts et modifiez les propriétés url et selector selon vos besoins.

Par exemple, pour explorer la documentation de Builder.io afin de créer notre GPT personnalisé, vous pouvez utiliser :

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

Consultez config.ts pour toutes les options disponibles. Voici un échantillon des options de configuration courantes :

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

Exécuter votre crawler

npm start

Méthodes alternatives

Exécution dans un conteneur avec Docker

Pour obtenir le fichier output.json avec une exécution conteneurisée, allez dans le répertoire containerapp et modifiez le fichier config.ts comme indiqué ci-dessus. Le fichier output.json devrait être généré dans le dossier data. Remarque : la propriété outputFileName dans le fichier config.ts du répertoire containerapp est configurée pour fonctionner avec le conteneur.

Exécution en tant qu'API

Pour exécuter l'application en tant que serveur API, vous devrez effectuer un npm install pour installer les dépendances. Le serveur est écrit en Express JS.

Pour démarrer le serveur :

npm run start:server pour démarrer le serveur. Le serveur s'exécute par défaut sur le port 3000.

Vous pouvez utiliser le point de terminaison /crawl avec le corps de la requête POST contenant la configuration JSON pour exécuter le crawler. La documentation API est servie sur le point de terminaison /api-docs et est générée avec Swagger.

Pour modifier l'environnement, vous pouvez copier le fichier .env.example vers .env et définir vos valeurs comme le port, etc. pour remplacer les variables du serveur.

Téléverser vos données vers OpenAI

Le crawl générera un fichier appelé output.json à la racine de ce projet. Téléversez-le sur OpenAI pour créer votre assistant personnalisé ou votre GPT personnalisé.

Créer un GPT personnalisé

Utilisez cette option pour un accès via interface utilisateur aux connaissances générées que vous pouvez facilement partager avec d'autres.

Note : vous pourriez avoir besoin d'un abonnement payant à ChatGPT pour créer et utiliser des GPT personnalisés actuellement.

  1. Allez sur https://chat.openai.com/
  2. Cliquez sur votre nom dans le coin inférieur gauche
  3. Choisissez "My GPTs" dans le menu
  4. Choisissez "Create a GPT"
  5. Choisissez "Configure"
  6. Sous "Knowledge", choisissez "Upload a file" et téléversez le fichier que vous avez généré
  7. Si vous obtenez une erreur concernant la taille excessive du fichier, vous pouvez essayer de le diviser en plusieurs fichiers et les téléverser séparément en utilisant l'option maxFileSize dans le fichier config.ts ou également utiliser la tokenisation pour réduire la taille du fichier avec l'option maxTokens dans le fichier config.ts.

Gif montrant comment téléverser un GPT personnalisé

Créer un assistant personnalisé

Utilisez cette option pour un accès via API aux connaissances générées que vous pouvez intégrer dans votre produit.

  1. Allez sur https://platform.openai.com/assistants
  2. Cliquez sur "+ Create"
  3. Choisissez "upload" et téléversez le fichier que vous avez généré

Gif montrant comment téléverser vers un assistant

Contribuer

Vous savez comment améliorer ce projet ? Envoyez une PR !



Made with love by Builder.io