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 :

OptionTypePar défautDescription
apiUrlstring""Requis. URL de base de votre API Jamii AI
langstring"en""en" ou "fr"
positionstring"bottom-right""bottom-right" ou "bottom-left"
planstring"pro""pro" ou "enterprise"
themeobject{}Couleurs personnalisées (Entreprise uniquement)
brandingobject{}Marque personnalisée (Entreprise uniquement)

Options de thème Entreprise

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

PropriétéTypePar défautDescription
primaryColorstring"#7c3aed"Boutons, bulles utilisateur, accents
accentColorstring"#22d3ee"Couleur secondaire du dégradé d'en-tête
fontFamilystring"'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éTypePar défautDescription
titlestringnullTexte du titre dans l'en-tête
subtitlestringnullTexte du sous-titre dans l'en-tête
logostringnullBalisage SVG du logo personnalisé
showPoweredBybooleanfalseAfficher/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éProEntreprise
Widget chatbot intégrable
Support bilingue (EN / FR)
Connexion / Chat / Réinitialisation
Adaptatif mobile
Personnalisation de la position
Badge « Propulsé par Jamii AI »RequisOptionnel
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éthodeCheminDescription
POST/auth/signupCréer un nouveau compte client
POST/auth/subscribeCréer une session Stripe Checkout
POST/auth/stripe-webhookGérer les événements de paiement Stripe
GET/auth/stripe-keyRé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éActionsPoints d'accès
ChatChat, Streaming/chat, /chat/stream
CodeGénérer, Réviser, Expliquer, Refactoriser/code/generate, /code/review, /code/explain, /code/refactor
Texte IATraduire, Résumer, Sentiment, Extraire/text/translate, /text/summarize, /text/sentiment, /text/extract
WebRésumer URL/web/summarize
Base de donnéesRequête/db/chat
Afrique LangChat, Traduire, Détecter la langue/africa/chat, /africa/translate, /africa/detect-language
Afrique VieAgriculture, Éducation, Juridique/africa/agriculture/ask, /africa/education/ask, /africa/legal/ask
Afrique CultureProverbes, Contes/africa/proverbs/get, /africa/storytelling/tell
AgentTâche/agent/task
MémoireStocker, Rappeler, Effacer/memory/store, /memory/recall, /memory/clear
Base de connaissancesIngérer, Ingérer URL, Requête, Lister, Effacer/kb/ingest, /kb/ingest-url, /kb/query, /kb/list, /kb/clear
ImageDécrire, Q&R, Générer/image/image-to-text, /image/image-to-answer, /image/text-to-image
DocumentWord, PowerPoint, PDF/document/text-to-word, /document/text-to-powerpoint, /document/text-to-pdf
VoixParole→Texte, Texte→Parole, Chat audio/voice/speech-to-text, /voice/text-to-speech, /voice/audio-to-audio
VidéoTranscrire, 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

NavigateurVersion minimale
Chrome60+
Firefox55+
Safari12+
Edge79+

Dépannage

ProblèmeCauseSolution
Le bouton de chat n'apparaît pasScript 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 manquantDéfinissez apiUrl dans window.JamiiAIWidget avant le chargement du script
« Impossible de joindre le serveur »Problème CORS ou réseauAssurez-vous que votre API autorise les requêtes depuis le domaine d'intégration
Échec de connexion avec des identifiants validesMauvais point d'accèsConfirmez que votre API possède le point d'accès /auth/customer/login
Conflits de styles du widgetConflit de spécificité CSSToutes les classes du widget utilisent le préfixe jcb- — aucune collision attendue