L'API Summarizer aide redBus et Miravia à créer des résumés d'avis utiles

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

Publié le 15 mai 2025

Les sites Web proposant des avis d'utilisateurs, comme les sites d'e-commerce ou de voyage, contiennent souvent un volume d'informations énorme. Cela peut prendre du temps pour les utilisateurs de passer au crible de nombreux avis avant de prendre une décision d'achat. Fournir des résumés d'avis peut aider les utilisateurs à comprendre les commentaires et à gagner du temps. Découvrez comment redBus et Miravia utilisent l'API Summarizer pour améliorer la prise de décisions et l'expérience d'achat.

Vidéo explicative Web Extensions État de Chrome Intent
MDN Derrière un indicateur Chrome 138 bêta Derrière un indicateur Chrome 138 bêta Afficher Intent to Ship

L'API Summarizer vous permet de générer différents types de résumés dans différents formats et longueurs, tels que des phrases, des paragraphes, des listes à puces, etc. Comme beaucoup de nos API d'IA intégrées, cette API utilise de grands modèles de langage pour effectuer des inférences. Dans Chrome, notre modèle est Gemini Nano.

redBus aide les clients à choisir le meilleur bus

redBus est le plus grand fournisseur de bus en Inde, avec plus de 30 millions de clients. Il propose des services de bus dans environ 10 000 villes et villages, connectés à l'échelle nationale. Grâce aux données et aux commentaires, redBus a réalisé que les avis générés par les utilisateurs jouent un rôle important pour aider les clients à déterminer quel itinéraire et quel bus sont les plus adaptés à leurs besoins de déplacement. redBus reçoit un volume élevé d'avis, et chacun d'eux est spécifique aux points et heures d'arrivée et de départ exacts.

Pour aider les clients à comprendre de manière générale certaines villes ou itinéraires, ils utilisent l'API Summarizer afin de présenter les principaux insights issus des avis pertinents.

Un client recherche un itinéraire de Bangalore à Mangaluru. Le récapitulatif examine les avis disponibles et crée un résumé utile pour aider les clients à trouver le meilleur bus pour leur trajet.

"L'API Summarizer a pu créer des résumés de qualité à partir de notre grand nombre d'avis et de permutations de requêtes de recherche utilisateur. Cette fonctionnalité côté client a éliminé la complexité technique et les coûts commerciaux supplémentaires qui auraient été associés à une solution côté serveur. Cela est important pour nous, car ce cas d'utilisation fait partie de l'entonnoir de conversion."

— Amit Kumar, responsable principal de l'ingénierie, redBus

La précision des avis stockés dans le backend de redBus, combinée au nombre énorme de permutations possibles dans les requêtes de recherche des utilisateurs (avec des variables telles que les heures de départ et d'arrivée, le point d'embarquement spécifique dans la ville et les différents opérateurs de bus) rend difficile la mise en évidence d'insights spécifiques à partir des avis. Avec un tel volume de données, un résumé côté serveur pour chaque requête de recherche serait prohibitif.

Pour générer des résumés efficaces, redBus fournit le contexte suivant à l'API Summarizer, en plus des avis des clients:

//Context to provide a useful summary
const promptContext =
  'Summarize the following reviews in 30 words or less.' +
  'Focus on key positives and negatives, such as comfort, maintenance,' +
  'pricing, and cleanliness. Reviews are separated by {end}.' +
  'Give the summary in just one paragraph.';

Les résumés améliorent la prise de décision des clients, sans coûts commerciaux ni complexité technique supplémentaires. De plus, redBus peut personnaliser le récapitulatif en fonction des préférences de voyage des utilisateurs connectés, comme le confort des sièges ou la disponibilité du Wi-Fi. Inférence côté client, ce qui signifie que cette recherche et ce résumé restent privés pour l'utilisateur.

Découvrez un exemple de code court qui vérifie la disponibilité du récapitulatif, fournit du contexte et récupère des avis en fonction de la requête de recherche de l'utilisateur.

// The Summarizer API is available
if ('Summarizer' in self) {
  try {
    const available = await Summarizer.availability();
    let summarizer;
    if (available === 'unavailable') {
      return null;
    }
    if (available === 'available') {
      //model is already available, use immediately
      summarizer = await Summarizer.create();
    } else {
      //trigger model download and wait
      summarizer = await Summarizer.create();
    }

    // Context to provide a useful summary
    const promptContext =
      'Summarize the following reviews in 30 words or less.' +
      'Focus on key positives and negatives, such as comfort, maintenance,' +
      'pricing, and cleanliness. Reviews are separated by {end}.' +
      'Give the summary in just one paragraph.';

    // Retrieve the reviews to be summarized based on user's search query
    let reviews = getIndividualBusReviews();
    if (reviews) {
      const reviewSummary = await summarizer.summarize(reviews, {
        context: promptContext
      });
    }
  } catch (e) {
    console.error("SUMMARIZER_API_ERROR: ", e);
    return null
  }
}

Pour l'exemple de recherche de Bangalore à Mangaluru, le résumé est le suivant:

<Bus Provider X> a généralement reçu des avis positifs pour le confort, la propreté et le service du personnel. Certains ont rencontré des problèmes mineurs, comme des retards, un comportement du conducteur (impoli), un manque d'équipements (suivi en direct, couvertures) et un inconfort (taille des sièges, amortisseurs médiocres).

Cet avis répond aux exigences demandées, avec les points positifs et négatifs dans un court paragraphe, ce qui est beaucoup plus facile à lire que les 308 avis individuels disponibles.

Miravia a résumé les avis sur l'e-commerce

Miravia est une plate-forme d'e-commerce de premier plan en Espagne, qui compte des millions d'utilisateurs actifs par mois. Chaque fois que les utilisateurs filtrent les avis (par exemple, par note du produit), un nouveau résumé est généré. Il fournit un aperçu succinct des commentaires des clients, en mettant en évidence les préoccupations et les recommandations.

Les utilisateurs peuvent générer des résumés d'avis sur les produits pour différentes notes.

"Auparavant, pour comprendre les principaux avantages et inconvénients des avis sur les produits, les utilisateurs devaient lire de nombreux commentaires individuels sur la page d'informations. Pour aider les utilisateurs à comprendre rapidement l'opinion globale des clients, nous avons lancé l'API Summarizer. Ce résumé est mis à jour de manière dynamique chaque fois qu'un utilisateur filtre les avis (par exemple, par note ou par d'autres critères), ce qui lui permet d'obtenir un aperçu rapide et complet des commentaires pertinents des acheteurs."

— Ziyi Liang, ingénieur logiciel senior, Miravia

Au départ, la fonctionnalité de résumé des avis des utilisateurs de Miravia reposait sur un service d'IA côté serveur. Ils ont constaté que Gemini Nano exécutant l'IA côté client peut fournir des résultats comparables, tout en réduisant les coûts de maintenance. Cet avantage est particulièrement clair pour les articles populaires et vendus rapidement, dont les avis sont constamment mis à jour.

Bien que l'implémentation de Miravia nécessite la récupération et la synthèse des avis en temps réel, que l'inférence se produise sur le serveur ou dans le navigateur, l'IA côté client est particulièrement plus efficace à mesure que la fréquence augmente. Il est satisfait de ses performances globales.

Tout d'abord, Miravia vérifie la compatibilité des fonctionnalités et des appareils.

// Compatibility check for device with built-in AI
export const deviceCheck = async () => {
  // Query the browser's AI capabilities
  const availability = await Summarizer.availability();

  // Case 1: Device doesn't support AI summarization
  if (availability === 'unavailable') {
    return {
      summarizationAvailable: false,
      message:
        'AI summarization tools are not supported on this device, or the appropriate permissions have not be set.',
    };
  }

  // Case 2: Device supports AI but requires model download
  if (availability === 'downloadable') {
    // Try to trigger an installation
    Summarizer.create();

    return {
      summarizationAvailable: false,
      message: 'Installing in the background. This may take a few minutes...',
    };
  }

  // Case 3: Device supports AI summarization
  return {
    summarizationAvailable: true,
    message: 'Ready for use.',
  };
};

Miravia résume ensuite les avis disponibles. Les avis sont joints par une période supplémentaire pour rendre les entrées plus cohérentes.

/**
 * Summarizes a list of reviews using Chrome's Built-in AI
 * @param {Array<string>} reviewContentList - Array of review texts to summarize
 * @returns {Promise<string>} The generated summary text
 * @throws {Error} If summarization is not available or fails
 */
export const reviewSummarize = async (reviewContentList) => {
  // Validate input
  if (!Array.isArray(reviewContentList) || !reviewContentList.length) {
    throw new Error('Please provide a non-empty array of reviews to summarize');
  }

  // Check device compatibility
  const { summarizationAvailable, message } = await deviceCheck();

  if (summarizationAvailable) {
    try {
      // Configure and create the summarizer with appropriate parameters
      const summarizer = await Summarizer.create({
        type: 'tl;dr',
        length: 'short',
        sharedContext:
          'Summarize the given user reviews. Maintain a polite and formal tone.',
      });

      // Generate the summary from the joined review texts
      const summary = await summarizer.summarize(reviewContentList.join('. '));

      // Return the generated summary
      return summary;
    } catch (error) {
      // Handle any errors during summarization
      throw new Error(`Summarization failed: ${error.message}`);
    }
  } else {
    // If summarization is not available, throw an error with the message from deviceCheck
    throw new Error(
      message ||
        'AI summarization tools are not supported on this device or browser.'
    );
  }
};

Bonnes pratiques

Si l'entrée de l'avis dépasse la limite de jetons, suivez ces mesures d'atténuation:

  • Utilisez un échantillon plus petit (par exemple, les quatre avis les plus récents) dans l'API. Cela permet de générer des résultats plus rapidement. Consultez nos conseils sur la mise à l'échelle de la récapitulation côté client.
  • QuotaExceededError fournit plus d'informations sur les jetons demandés dans l'entrée. L'objet summarizer possède une propriété inputQuota qui indique la limite de jetons de l'API. Cela permet d'obtenir des commentaires en temps réel et de désactiver la fonctionnalité si l'entrée dépasse la limite.

Vous pouvez envisager une approche hybride pour garantir une expérience fluide pour tous les utilisateurs. La première fois qu'une API d'IA intégrée est appelée, le navigateur doit télécharger le modèle.

  • Miravia a utilisé un modèle côté serveur pour fournir un résumé initial pendant le téléchargement du modèle. Une fois le modèle intégré prêt, le site a commencé à effectuer des inférences côté client.

Vous devez toujours vous efforcer de créer une interface conviviale et communicative:

  • Implémentez une barre de progression pour les téléchargements de modèles et réduisez les délais de réponse.
  • Envisagez d'être transparent sur le téléchargement du modèle. Bright Sites a informé les utilisateurs du téléchargement du modèle pour permettre la transparence et le consentement à l'utilisation des ressources. Les utilisateurs peuvent ainsi accepter ou refuser avant de continuer.

Conclusions et recommandations

Ces exemples concrets de redBus et de Miravia montrent comment l'API Summarizer a aidé les utilisateurs à prendre des décisions éclairées rapidement en fournissant des résumés concis et pertinents des avis des utilisateurs. La capacité de l'API à fonctionner côté client, sans coût commercial supplémentaire et avec une faible complexité technique, en fait une option viable pour des cas d'utilisation similaires où les informations doivent être résumées. Toutes les API d'IA intégrées permettent de créer des cas d'utilisation pratiques de l'IA côté client.

Vous vous demandez comment l'API Summarizer peut vous aider dans d'autres cas d'utilisation ? Nous avons également expliqué comment l'API Summarizer permet d'augmenter l'engagement des articles.

Vous créez quelque chose de nouveau avec ces API ? Partagez-les avec nous sur @ChromiumDev sur X ou Chromium pour les développeurs sur LinkedIn.

Ressources

Remerciements

Merci à Makakhov Andrey et Ziyi Liang de Miravia (groupe Alibaba), à Amit Kumar de redBus, à Swetha Gopalakrishnan, à Alexandra Klepper, à Thomas Steiner et à Kenji Baheux pour leur aide à la rédaction et à la révision de ce document.