For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Thèmes et personnalisation de ChatKit

Configurez les couleurs, la typographie, la densité et les variantes des composants.

Après avoir suivi le guide de démarrage rapide de ChatKit, découvrez comment changer de thème et personnaliser l’interface de discussion intégrée à votre application. Pour l’adapter au style de votre application, choisissez un thème clair ou sombre, définissez une couleur d’accentuation et ajustez la densité ainsi que l’arrondi des angles.

Vue d’ensemble

Pour personnaliser le thème, passez un objet d’options. Si vous avez suivi le guide de démarrage rapide de ChatKit pour intégrer ChatKit à votre frontend, utilisez la syntaxe React ci-dessous.

  • React : passez les options à useChatKit({...})
  • Intégrations avancées : définissez les options avec chatkit.setOptions({...})

L’objet d’options a la même structure pour les deux types d’intégration.

Explorez les options de personnalisation

Rendez-vous sur ChatKit Studio pour découvrir des intégrations de ChatKit en action et des outils de création interactifs. Si vous préférez apprendre en expérimentant, ces ressources sont un bon point de départ.

Explorez l’interface de ChatKit

chatkit.world

Essayez la démo interactive de ChatKit.

Créateur de widgets

Parcourez les widgets disponibles.

Playground de ChatKit

Prenez ChatKit en main grâce à une démo interactive.

Découvrez des exemples fonctionnels

Exemples sur GitHub

Inspirez-vous d’exemples qui montrent ChatKit en action.

Dépôt de l’application de démarrage

Clonez le dépôt pour partir d’un modèle d’application entièrement fonctionnel.

Modifiez le thème

Adaptez ChatKit à l’apparence de votre produit en configurant notamment les couleurs et la typographie. Dans l’exemple ci-dessous, nous activons le mode sombre, modifions les couleurs, arrondissons les angles, ajustons la densité d’information et définissons la police.

Pour connaître toutes les options du thème, consultez la référence de l’API.

const options = {
  theme: {
    colorScheme: "dark",
    color: {
      accent: {
        primary: "#2D8CFF",
        level: 2,
      },
    },
    radius: "round",
    density: "compact",
    typography: { fontFamily: "'Inter', sans-serif" },
  },
};

Personnalisez le texte de l’écran d’accueil

Modifiez le texte indicatif de la zone de saisie pour suggérer des questions aux utilisateurs ou les aider à formuler leur premier message.

const options = {
  composer: {
    placeholder: "Ask anything about your data…",
  },
  startScreen: {
    greeting: "Welcome to FeedbackBot!",
  },
};

Affichez des suggestions de prompts pour les nouveaux fils de discussion

Au début d’une conversation, suggérez des prompts pour donner aux utilisateurs des idées de questions à poser ou d’actions à effectuer.

const options = {
  startScreen: {
    greeting: "What can I help you build today?",
    prompts: [
      {
        name: "Check on the status of a ticket",
        prompt: "Can you help me check on the status of a ticket?",
        icon: "search",
      },
      {
        name: "Create Ticket",
        prompt: "Can you help me create a new support ticket?",
        icon: "write",
      },
    ],
  },
};

Ajoutez des boutons personnalisés à l’en-tête

Les boutons personnalisés de l’en-tête permettent d’ajouter des éléments de navigation, des informations contextuelles ou des actions propres à votre intégration.

const options = {
  header: {
    customButtonLeft: {
      icon: "settings-cog",
      onClick: () => openProfileSettings(),
    },
    customButtonRight: {
      icon: "home",
      onClick: () => openHomePage(),
    },
  },
};

Activez les pièces jointes

Les pièces jointes sont désactivées par défaut. Pour les activer, ajoutez les options de configuration correspondantes. Si vous n’utilisez pas de backend personnalisé, vous devez utiliser la stratégie de téléversement hosted. Consultez la documentation du SDK Python pour savoir comment utiliser les autres stratégies de téléversement avec un backend personnalisé.

Vous pouvez également définir le nombre, la taille et les types de fichiers que les utilisateurs peuvent joindre à leurs messages.

const options = {
  composer: {
    attachments: {
      uploadStrategy: { type: "hosted" },
      maxSize: 20 * 1024 * 1024, // 20 MB per file
      maxCount: 3,
      accept: { "application/pdf": [".pdf"], "image/*": [".png", ".jpg"] },
    },
  },
};

Activez les @mentions dans la zone de saisie grâce aux étiquettes d’entité

Permettez aux utilisateurs de mentionner des « entités » personnalisées à l’aide du signe @. Ces mentions enrichissent le contexte de la conversation et la rendent plus interactive.

  • Utilisez onTagSearch pour renvoyer une liste d’entités correspondant à la recherche saisie.
  • Utilisez onClick pour gérer les clics sur une entité.
const options = {
  entities: {
    async onTagSearch(query) {
      void query;
      return [
        {
          id: "user_123",
          title: "Jane Doe",
          group: "People",
          interactive: true,
        },
        {
          id: "document_123",
          title: "Quarterly Plan",
          group: "Documents",
          interactive: true,
        },
      ];
    },
    onClick: (entity) => {
      navigateToEntity(entity.id);
    },
  },
};

Personnalisez l’affichage des étiquettes d’entité

Utilisez des widgets pour personnaliser l’affichage des étiquettes d’entité au survol. Lorsqu’un utilisateur survole une étiquette, affichez un aperçu enrichi, par exemple une carte de visite, le résumé d’un document ou une image.

Créateur de widgets

Parcourez les widgets disponibles.

const options = {
  entities: {
    async onTagSearch() {
      return [];
    },
    onRequestPreview: async (entity) => ({
      preview: {
        type: "Card",
        children: [
          { type: "Text", value: `Profile: ${entity.title}` },
          { type: "Text", value: "Role: Developer" },
        ],
      },
    }),
  },
};

Ajoutez des outils personnalisés à la zone de saisie

Faites gagner du temps aux utilisateurs en leur permettant de déclencher des actions propres à votre application depuis la zone de saisie. L’outil sélectionné est transmis au modèle comme outil à privilégier.

const options = {
  composer: {
    tools: [
      {
        id: "add-note",
        label: "Add Note",
        icon: "write",
        pinned: true,
      },
    ],
  },
};

Activez ou désactivez des zones et des fonctionnalités de l’interface

Si les options de l’en-tête ne suffisent pas et que vous souhaitez proposer vos propres options, désactivez les principales zones et fonctionnalités de l’interface. Il peut être utile de désactiver l’historique si les notions de fil de discussion et d’historique ne sont pas pertinentes pour votre usage, par exemple dans un chatbot d’assistance.

const options = {
  history: { enabled: false },
  header: { enabled: false },
};

Modifiez les paramètres régionaux par défaut

Si votre application dispose d’un réglage de langue global, utilisez-le pour remplacer les paramètres régionaux par défaut. Par défaut, ChatKit utilise ceux du navigateur.

const options = {
  locale: "de-DE",
};