Home
Login

Outil open source pour créer rapidement des assistants GPT personnalisés en générant des fichiers de connaissances par le biais du web scraping.

ISCTypeScript 21.6kBuilderIO Last Updated: 2025-01-23

Présentation détaillée du projet GPT-Crawler

Aperçu du projet

GPT-Crawler est un projet open source développé par Builder.io, conçu pour générer des fichiers de connaissances en explorant des sites web spécifiques, permettant ainsi de créer rapidement des assistants GPT personnalisés. Cet outil nécessite uniquement un ou plusieurs URL pour extraire automatiquement le contenu du site et générer des fichiers de données utilisables pour l'entraînement de GPT personnalisés.

Fonctionnalités principales

  • Exploration de contenu web : Extraction automatique du contenu de sites web spécifiés.
  • Génération de fichiers de connaissances : Conversion du contenu extrait en un format utilisable pour l'entraînement de GPT.
  • Configuration flexible : Prise en charge de diverses options de configuration, notamment les règles d'exploration, les sélecteurs de pages, etc.
  • Plusieurs modes de déploiement : Prise en charge de l'exécution locale, du déploiement conteneurisé et du mode serveur API.

Installation et utilisation

Prérequis

  • Node.js >= 16

Démarrage rapide

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

Fichier de configuration

Modifiez les propriétés url et selector dans le fichier config.ts pour répondre à vos besoins.

Exemple de configuration :

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

Explication détaillée des options de configuration

type Config = {
  /** URL de départ de l'exploration. Si un sitemap est fourni, il sera utilisé et toutes les pages qu'il contient seront téléchargées. */
  url: string;
  /** Modèle utilisé pour faire correspondre les liens sur la page, pour une exploration ultérieure. */
  match: string;
  /** Sélecteur utilisé pour extraire le texte interne. */
  selector: string;
  /** Ne pas explorer plus de ce nombre de pages. */
  maxPagesToCrawl: number;
  /** Nom du fichier de données complété. */
  outputFileName: string;
  /** Types de ressources optionnels à exclure. */
  resourceExclusions?: string[];
  /** Taille maximale optionnelle du fichier (en mégaoctets). */
  maxFileSize?: number;
  /** Nombre maximal optionnel de tokens. */
  maxTokens?: number;
};

Exécution du crawler

npm start

Cela générera un fichier output.json.

Options de déploiement

Déploiement conteneurisé

Accédez au répertoire containerapp et modifiez config.ts. Le fichier de sortie sera généré dans le dossier data.

Mode serveur API

npm run start:server
  • Le serveur s'exécute par défaut sur le port 3000.
  • Utilisez le point de terminaison /crawl pour les requêtes POST.
  • La documentation de l'API est disponible au point de terminaison /api-docs (en utilisant Swagger).
  • Vous pouvez copier .env.example en .env pour personnaliser les variables d'environnement.

Intégration OpenAI

Création d'un GPT personnalisé (accès via l'interface utilisateur)

  1. Rendez-vous sur https://chat.openai.com/
  2. Cliquez sur votre nom d'utilisateur en bas à gauche.
  3. Sélectionnez "My GPTs" dans le menu.
  4. Sélectionnez "Create a GPT".
  5. Sélectionnez "Configure".
  6. Sous "Knowledge", sélectionnez "Upload a file" et téléchargez le fichier généré.

Remarque : Un abonnement ChatGPT payant peut être nécessaire pour créer et utiliser des GPT personnalisés.

Création d'un assistant (accès via l'API)

  1. Rendez-vous sur https://platform.openai.com/assistants
  2. Cliquez sur "+ Create".
  3. Sélectionnez "upload" et téléchargez le fichier généré.

Caractéristiques techniques

  • Développement en TypeScript : Offre une sécurité de type et une meilleure expérience de développement.
  • Serveur Express.js : Fournit une interface API RESTful.
  • Prise en charge de Docker : Facilite le déploiement conteneurisé.
  • Sélecteurs flexibles : Prise en charge des sélecteurs CSS pour un ciblage précis du contenu.
  • Filtrage des ressources : Possibilité d'exclure les types de ressources inutiles tels que les images et les vidéos.
  • Contrôle de la taille : Prise en charge de la limitation de la taille des fichiers et du nombre de tokens.

Cas d'utilisation réel

L'auteur du projet a utilisé cet outil pour créer un Assistant Builder.io, qui répond aux questions sur l'utilisation et l'intégration de Builder.io en explorant la documentation de Builder.io.

Avantages et scénarios d'application

  • Déploiement rapide : Création d'assistants de connaissances professionnels en quelques minutes.
  • Rentabilité : Génération rapide d'assistants IA basés sur la documentation existante.
  • Forte personnalisation : Prise en charge des bases de connaissances spécifiques à un domaine ou à un produit.
  • Facilité de maintenance : Possibilité de ré-explorer régulièrement pour mettre à jour la base de connaissances.

Précautions

  • Assurez-vous d'avoir l'autorisation d'explorer le site web cible.
  • Les fichiers volumineux peuvent nécessiter un téléchargement fractionné.
  • Tenez compte des limites de fréquence d'exploration du site web.
  • Il est recommandé de tester d'abord une exploration à petite échelle pour valider la configuration.

Conclusion

GPT-Crawler offre une solution puissante et flexible pour créer rapidement des assistants IA professionnels, particulièrement adaptée aux scénarios nécessitant la création de systèmes de questions-réponses intelligents basés sur des documents ou du contenu de sites web existants.