Aller au contenu
  1. Documentation/
  2. RagWeb — Documentation/

Widget — Intégration

726 mots
Sommaire
Documentation RagWeb - Série de pages
Service 4: Ce service
Widget RagWeb avec une réponse en action

Le widget RagWeb est un Custom Element (<ragweb-search>) qui s’intègre sur n’importe quel site avec une seule ligne de code. Il utilise un Shadow DOM fermé pour une isolation CSS complète.

Installation
#

Collez ce snippet avant la balise </body> de votre site :

<script src="https://yannick.services/ragweb/widget/v1.js"
  data-ragweb-widget
  data-api-key="rw_VOTRE_CLE_API"
  data-color="#2563eb"
  data-position="bottom-right"
  data-lang="fr">
</script>

Le widget apparaît sous forme d’un bouton rond. Au clic, un panneau de recherche s’ouvre.

Personnalisation (data-attributes)
#

AttributValeur par défautDescription
data-api-key(requis)Clé API RagWeb (commence par rw_)
data-color#2563ebCouleur principale (bouton, accents)
data-positionbottom-rightPosition du bouton : bottom-right, bottom-left, top-right, middle-right
data-langfrLangue de l’interface : fr ou en
data-title“Recherche IA”Titre affiché en haut du panneau
data-placeholder“Posez votre question…”Placeholder du champ de saisie
data-welcome(vide)Message d’accueil affiché à l’ouverture
data-brandingtrueAffiche “Propulsé par yannick.services” (masqué sur plans payants)
data-stream-url(auto)URL de streaming SSE (activé automatiquement)
data-escalation-url(vide)URL d’escalade vers un humain (Crisp, Calendly, mailto:, etc.)
data-escalation-label“Parler à un humain”Libellé du bouton d’escalade
data-include-paths(vide)Pages où afficher le widget (glob, séparées par virgule)
data-exclude-paths(vide)Pages où masquer le widget (glob, séparées par virgule)

Exemples de personnalisation
#

Widget vert, en bas à gauche, en anglais
#

<script src="https://yannick.services/ragweb/widget/v1.js"
  data-ragweb-widget
  data-api-key="rw_xxx"
  data-color="#16a34a"
  data-position="bottom-left"
  data-lang="en"
  data-title="AI Search"
  data-placeholder="Ask anything...">
</script>

Widget avec escalade vers Calendly
#

<script src="https://yannick.services/ragweb/widget/v1.js"
  data-ragweb-widget
  data-api-key="rw_xxx"
  data-escalation-url="https://calendly.com/votre-lien"
  data-escalation-label="Prendre rendez-vous">
</script>

Widget avec escalade par email
#

<script src="https://yannick.services/ragweb/widget/v1.js"
  data-ragweb-widget
  data-api-key="rw_xxx"
  data-escalation-url="mailto:contact@monsite.fr?subject=Question%20site"
  data-escalation-label="Nous écrire">
</script>

Filtrage par pages
#

Contrôlez les pages où le widget apparaît avec data-include-paths et data-exclude-paths.

Syntaxe glob
#

PatternCorrespond à
/docs/*Toutes les pages directement sous /docs/
/docs/**Toutes les pages sous /docs/ (récursif)
/pricingUniquement /pricing ou /pricing/
*Toutes les pages

Exemples
#

Afficher uniquement sur la documentation :

data-include-paths="/docs/**,/help/**"

Afficher partout sauf sur le blog :

data-exclude-paths="/blog/*,/blog/**"

Afficher uniquement sur la page d’accueil et les prix :

data-include-paths="/,/pricing"

Si data-include-paths est défini, le widget n’apparaît que sur les pages correspondantes. Si seul data-exclude-paths est défini, le widget apparaît partout sauf sur les pages exclues.

Fonctionnalités du widget
#

Streaming temps réel
#

Les réponses s’affichent progressivement (effet typewriter) grâce au streaming SSE. L’utilisateur voit la réponse se construire en direct.

Multi-turn (conversation)
#

Le widget maintient un historique de conversation (max 6 messages). L’utilisateur peut poser des questions de suivi sans répéter le contexte.

Exemple : “Quels sont vos tarifs ?” → “Et pour le plan Pro ?” — l’IA comprend le contexte.

Reformulation intelligente
#

Avant chaque recherche, la question est reformulée en interne pour améliorer la pertinence (ajout de synonymes et vocabulaire professionnel).

Rendu Markdown
#

Les réponses supportent le formatage basique :

  • Gras et italique
  • Listes à puces et numérotées
  • Liens cliquables
  • Code inline
  • Titres (niveaux 1 à 4)

Sources
#

Chaque réponse inclut les pages sources utilisées, avec des liens cliquables vers votre site.

Escalade vers un humain
#

Si configurée (data-escalation-url), un lien “Parler à un humain” apparaît sous les réponses. Compatible avec :

  • Crisp, Intercom, Chatwoot (URL du chat)
  • Calendly (prise de rendez-vous)
  • mailto: (email)
  • Tout lien HTTP

Configurateur visuel (dashboard)
#

Onglet Widget — configurateur visuel

L’onglet Widget du tableau de bord propose un configurateur interactif :

  1. Choisissez la couleur avec un color picker
  2. Sélectionnez la position
  3. Personnalisez les textes (titre, placeholder, message d’accueil)
  4. Configurez l’escalade
  5. Définissez les filtres de pages
  6. Testez en direct (preview live)
  7. Copiez le code d’intégration généré
  8. Cliquez Enregistrer la configuration pour persister les choix

Compatibilité
#

PlateformeCompatibleNotes
HTML statiqueOuiCollez le script avant </body>
WordPressOuiDans le footer via un plugin “Insert Headers & Footers”
WebflowOuiProject Settings → Custom Code → Footer
ShopifyOuiOnline Store → Themes → Edit code → theme.liquid
Next.js / ReactOuiUtilisez useEffect pour charger le script dynamiquement
Hugo / AstroOuiDans le partial footer ou extend-footer
WixPartielVia l’ajout de code HTML personnalisé

Exemple React / Next.js
#

import { useEffect } from 'react';

export default function RagWebWidget() {
  useEffect(() => {
    const script = document.createElement('script');
    script.src = 'https://yannick.services/ragweb/widget/v1.js';
    script.setAttribute('data-ragweb-widget', '');
    script.setAttribute('data-api-key', 'rw_VOTRE_CLE');
    script.setAttribute('data-color', '#2563eb');
    document.body.appendChild(script);
    return () => { document.body.removeChild(script); };
  }, []);
  return null;
}

Poids et performance
#

  • < 5 KB gzipped (pas de dépendance externe)
  • Shadow DOM fermé : aucun conflit CSS avec votre site
  • Chargement asynchrone : pas de blocage du rendu
  • Aucun cookie posé, aucun tracking des visiteurs
Documentation RagWeb - Série de pages
Service 4: Ce service

Pages connexes

API et intégrations

728 mots
RagWeb expose une API REST pour l’intégration programmatique du moteur de recherche IA dans vos applications, bots ou workflows. Clés API # Créer une clé # Connectez-vous au tableau de bord RagWeb Allez dans l’onglet Clés API Entrez un nom descriptif (ex : “Mon site”, “Bot Discord”) Cliquez Créer Copiez immédiatement la clé — elle ne sera plus affichée ensuite Format de la clé # rw_xxxxxxxxxxxxxxxxxxxxxxxxxxxx Les clés commencent par rw_ et sont composées de caractères alphanumériques.

Configuration

659 mots
L’onglet Configuration permet de contrôler précisément ce que RagWeb indexe et comment l’IA répond. Il se déverrouille une fois votre domaine vérifié. Seed URLs # Les seed URLs sont les pages de départ depuis lesquelles le crawler commence sa découverte. Le crawler suit ensuite les liens internes pour indexer le reste du site.

Démarrage rapide

322 mots
De l’inscription à votre premier résultat de recherche IA en 5 minutes. Prérequis # Un site web public accessible (pas de pages derrière un login) Un email professionnel (@votredomaine.fr) — recommandé pour la vérification par email Accès à votre zone DNS — si vous préférez la vérification DNS Étape 1 — Créer un compte # Rendez-vous sur yannick.services/apps/ragweb/ Cliquez sur Commencer gratuitement Entrez votre email et validez le code OTP reçu Vous êtes redirigé vers le tableau de bord RagWeb Le plan Free est activé automatiquement. Pas de carte bancaire requise.