Intégration du Chatbot

Intégrez le chatbot Jamii AI sur n'importe quel site web en quelques minutes. Disponible avec les plans Pro et Entreprise.

Démarrage rapide

Ajoutez deux blocs avant la balise fermante </body> — c'est tout :

HTML
<script>
  window.JamiiAIWidget = {
    apiUrl: "https://api.jamiiai.com"
  };
</script>
<script src="https://cdn.jamiiai.com/widget/jamiiai-widget.js"></script>

Un bouton de chat flottant apparaît en bas à droite de votre page. Le widget injecte automatiquement ses propres styles CSS — aucune feuille de style supplémentaire n'est nécessaire.

Fonctionnement

Le widget chatbot suit un flux simple :

  1. Cliquez sur le bouton flottant pour ouvrir le panneau
  2. Connectez-vous avec votre courriel (nom d'utilisateur) et votre réponse secrète
  3. Discutez avec l'assistant IA en temps réel
  4. Réinitialisez la conversation à tout moment avec le bouton ↻
  5. Déconnectez-vous pour effacer la session (jeton stocké dans sessionStorage)

Le widget est entièrement autonome — un seul fichier JavaScript avec styles intégrés, internationalisation, authentification et fonctionnalités de chat. Avec le plan Pro, il offre une interface de chat simple utilisant trois points d'accès principaux. Avec le plan Entreprise, il déverrouille une expérience multi-modalité complète avec 82 points d'accès répartis sur 15 modalités — incluant la génération de code, l'analyse d'images et vidéos, la voix, la génération de documents, la base de connaissances, et bien plus.

Options de configuration

Toutes les options sont définies sur window.JamiiAIWidget avant le chargement du script :

Option Type Par défaut Description
apiUrl string "" Requis. URL de base de votre API Jamii AI
lang string "en" "en" ou "fr"
position string "bottom-right" "bottom-right" ou "bottom-left"
plan string "pro" "pro" ou "enterprise"
theme object {} Couleurs personnalisées (Entreprise uniquement)
branding object {} Marque personnalisée (Entreprise uniquement)

Options de thème Entreprise

Les clients Entreprise peuvent entièrement personnaliser l'apparence visuelle du widget :

Propriété Type Par défaut Description
primaryColor string "#7c3aed" Boutons, bulles utilisateur, accents
accentColor string "#22d3ee" Couleur secondaire du dégradé d'en-tête
fontFamily string "'Inter', system-ui, sans-serif" Police du widget
JavaScript
window.JamiiAIWidget = {
  apiUrl: "https://api.jamiiai.com",
  plan: "enterprise",
  theme: {
    primaryColor: "#0066ff",
    accentColor: "#00ccaa",
    fontFamily: "'Poppins', sans-serif"
  }
};

Options de marque Entreprise

Les utilisateurs Entreprise peuvent personnaliser le widget avec leur propre marque :

Propriété Type Par défaut Description
title string null Texte du titre dans l'en-tête
subtitle string null Texte du sous-titre dans l'en-tête
logo string null Balisage SVG du logo personnalisé
showPoweredBy boolean false Afficher/masquer « Propulsé par Jamii AI »
JavaScript
branding: {
  title: "Support Acme",
  subtitle: "Nous sommes là pour vous aider",
  logo: '<svg viewBox="0 0 32 32">...</svg>',
  showPoweredBy: false
}

Comparaison des plans

Fonctionnalité Pro Entreprise
Widget chatbot intégrable
Support bilingue (EN / FR)
Connexion / Chat / Réinitialisation
Adaptatif mobile
Personnalisation de la position
Badge « Propulsé par Jamii AI » Requis Optionnel
Marque personnalisée (titre, logo)
Couleurs de thème personnalisées
Mode marque blanche
Multi-modalité (Entreprise uniquement)
Génération, révision et refactorisation de code
Texte IA (traduction, résumé, sentiment, extraction)
Génération et description d'images
Voix (parole-texte, texte-parole, chat audio)
Transcription et description de vidéos
Génération de documents (Word, PowerPoint, PDF)
Requêtes en langage naturel sur base de données
Résumé de pages web
IA en langues africaines (chat, traduction, détection)
Afrique Vie (agriculture, éducation, juridique)
Afrique Culture (proverbes, contes)
Agent IA (exécution autonome de tâches)
Embeddings et mémoire (stocker / rappeler / effacer)
Base de connaissances (ingérer, requête, gérer)
Téléversement et téléchargement de fichiers
Streaming par événements serveur (SSE)

Exemple — Plan Pro (Minimal)

HTML
<script>
  window.JamiiAIWidget = {
    apiUrl: "https://api.jamiiai.com",
    lang: "en"
  };
</script>
<script src="https://cdn.jamiiai.com/widget/jamiiai-widget.js"></script>

Exemple — Plan Pro (Français, à gauche)

HTML
<script>
  window.JamiiAIWidget = {
    apiUrl: "https://api.jamiiai.com",
    lang: "fr",
    position: "bottom-left"
  };
</script>
<script src="https://cdn.jamiiai.com/widget/jamiiai-widget.js"></script>

Exemple — Entreprise (Marque blanche)

HTML
<script>
  window.JamiiAIWidget = {
    apiUrl: "https://api.votreentreprise.com",
    plan: "enterprise",
    lang: "fr",
    position: "bottom-left",
    theme: {
      primaryColor: "#0066ff",
      accentColor: "#00ccaa",
      fontFamily: "'Poppins', sans-serif"
    },
    branding: {
      title: "Support Acme",
      subtitle: "Nous sommes là pour vous aider",
      logo: '<svg viewBox="0 0 32 32"><circle cx="16" cy="16" r="14" fill="#0066ff"/><text x="16" y="21" text-anchor="middle" fill="#fff" font-size="14" font-weight="bold">A</text></svg>',
      showPoweredBy: false
    }
  };
</script>
<script src="https://cdn.jamiiai.com/widget/jamiiai-widget.js"></script>

Auto-hébergement

Téléchargez jamiiai-widget.js et hébergez-le depuis votre propre domaine :

HTML
<script>
  window.JamiiAIWidget = {
    apiUrl: "https://api.jamiiai.com"
  };
</script>
<script src="/assets/jamiiai-widget.js"></script>

Un fichier CSS autonome optionnel (jamiiai-widget.css) est également fourni pour les clients qui préfèrent héberger les styles séparément. Le fichier JS injecte les styles automatiquement par défaut, le fichier CSS n'est pas requis.

Création de compte et abonnement

Avant d'utiliser le widget chatbot, les utilisateurs doivent créer un compte et souscrire à un plan. Le site web propose un formulaire d'inscription qui collecte :

  • Nom complet
  • Courriel (également utilisé comme nom d'utilisateur — la partie avant @)
  • Téléphone
  • Question secrète et réponse (utilisée pour la connexion au widget)

Après l'inscription, l'utilisateur est redirigé vers Stripe Checkout pour choisir un plan (Starter 19 $/mois, Pro 49 $/mois, Entreprise 199 $/mois). Après un paiement réussi, l'abonnement est enregistré automatiquement via webhook.

Points d'accès associés

Méthode Chemin Description
POST /auth/signup Créer un nouveau compte client
POST /auth/subscribe Créer une session Stripe Checkout
POST /auth/stripe-webhook Gérer les événements de paiement Stripe
GET /auth/stripe-key Récupérer la clé publique Stripe

Points d'accès API utilisés

Avec le plan Pro, le widget utilise trois points d'accès principaux. Avec le plan Entreprise, le widget a accès à 82 points d'accès répartis sur 15 modalités — les points d'accès principaux ci-dessous plus ceux listés dans le tableau des modalités.

POST /auth/customer/login

Authentifier un utilisateur avec son courriel (nom d'utilisateur) et sa réponse secrète.

Requête

JSON
{
  "username": "jean",
  "secret_answer": "mon-secret"
}

Réponse

JSON
{
  "access_token": "eyJhbGciOi...",
  "token_type": "bearer"
}
POST /chat Bearer

Envoyer un message et recevoir une réponse de l'IA.

Requête

JSON
{
  "message": "Que pouvez-vous faire ?"
}

Réponse

JSON
{
  "response": "Je peux vous aider avec..."
}
POST /chat/reset Bearer

Réinitialiser l'historique de conversation et recommencer.

Réponse

JSON
{
  "message": "Chat reset successfully"
}

Points d'accès des modalités Entreprise

Les utilisateurs Entreprise disposent d'une barre de sélection de modalité dans le widget donnant accès à :

Modalité Actions Points d'accès
Chat Chat, Streaming /chat, /chat/stream
Code Générer, Réviser, Expliquer, Refactoriser /code/generate, /code/review, /code/explain, /code/refactor
Texte IA Traduire, Résumer, Sentiment, Extraire /text/translate, /text/summarize, /text/sentiment, /text/extract
Web Résumer URL /web/summarize
Base de données Requête /db/chat
Afrique Lang Chat, Traduire, Détecter la langue /africa/chat, /africa/translate, /africa/detect-language
Afrique Vie Agriculture, Éducation, Juridique /africa/agriculture/ask, /africa/education/ask, /africa/legal/ask
Afrique Culture Proverbes, Contes /africa/proverbs/get, /africa/storytelling/tell
Agent Tâche /agent/task
Mémoire Stocker, Rappeler, Effacer /memory/store, /memory/recall, /memory/clear
Base de connaissances Ingérer, Ingérer URL, Requête, Lister, Effacer /kb/ingest, /kb/ingest-url, /kb/query, /kb/list, /kb/clear
Image Décrire, Q&R, Générer /image/image-to-text, /image/image-to-answer, /image/text-to-image
Document Word, PowerPoint, PDF /document/text-to-word, /document/text-to-powerpoint, /document/text-to-pdf
Voix Parole→Texte, Texte→Parole, Chat audio /voice/speech-to-text, /voice/text-to-speech, /voice/audio-to-audio
Vidéo Transcrire, Décrire /video/video-to-text, /video/video-to-description

Flux d'authentification

  1. L'utilisateur clique sur le bouton de chat flottant
  2. Un formulaire de connexion demande le courriel (nom d'utilisateur) et la réponse secrète
  3. Les identifiants sont envoyés à /auth/customer/login, qui retourne un JWT
  4. Le JWT est stocké dans sessionStorage (effacé à la déconnexion ou à la fermeture de l'onglet)
  5. Tous les appels API suivants incluent le jeton comme Authorization: Bearer
  6. En cas de réponse 401 (jeton expiré), l'utilisateur est redirigé vers le formulaire de connexion

Navigateurs supportés

Navigateur Version minimale
Chrome 60+
Firefox 55+
Safari 12+
Edge 79+

Dépannage

Problème Cause Solution
Le bouton de chat n'apparaît pas Script non chargé Vérifiez que le chemin de la balise <script> se charge sans erreur 404
Erreur « URL de l'API non configurée » apiUrl manquant Définissez apiUrl dans window.JamiiAIWidget avant le chargement du script
« Impossible de joindre le serveur » Problème CORS ou réseau Assurez-vous que votre API autorise les requêtes depuis le domaine d'intégration
Échec de connexion avec des identifiants valides Mauvais point d'accès Confirmez que votre API possède le point d'accès /auth/customer/login
Conflits de styles du widget Conflit de spécificité CSS Toutes les classes du widget utilisent le préfixe jcb- — aucune collision attendue