Summarizer API 可帮助 redBus 和 Miravia 创建实用的用户评价摘要

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

发布时间:2025 年 5 月 15 日,上次更新时间:2026 年 5 月 27 日

提供用户评价的网站(例如电子商务网站或旅游网站)通常包含大量信息。这可能会导致用户需要花费大量时间来过滤大量评价,才能决定是否购买。提供评价摘要可以帮助用户了解反馈并节省时间。

了解 redBusMiravia 如何使用 Summarizer API 来改进决策制定和购买体验。 Miravia 添加评价摘要后, 产品页面和整个网站的转化率都有所提高。

说明类视频 Web 扩展程序 Chrome 状态 目的
MDN Chrome 138 Chrome 138 查看 准备发布

Summarizer API 可让您生成不同类型 、各种长度和各种格式的摘要,例如句子、段落 、项目符号列表等。与我们的许多 内置 AI API一样,此 API 使用大语言模型来执行 推理。在 Chrome 中,该模型是 Gemini Nano。

redBus 帮助客户确定最佳巴士选项

redBus 是印度最大的巴士提供商,拥有超过 3,000 万客户,在约 10,000 个城市和城镇提供巴士服务,覆盖全国。通过数据和反馈,redBus 意识到用户生成的评价在帮助客户确定哪条路线和哪辆巴士最适合他们的出行需求方面发挥着重要作用。redBus 收到的评价数量很大,每条评价都具体针对确切的到达和出发地点及时间。

为了帮助客户大致了解某些城市或路线的情况,他们使用 Summarizer API 从相关评价中提取关键洞见。

客户搜索从班加罗尔到芒格洛尔的路线。Summarizer 会查看可用的评价,并提取有用的概览,帮助客户找到最适合其行程的巴士。

“Summarizer API 能够从我们的大量评价和用户搜索查询排列组合中创建高质量的摘要。此客户端功能消除了服务器端替代方案中存在的技术复杂性和额外业务成本。这对我们来说非常重要,因为此用例是转化漏斗的一部分。”

— Amit Kumar,redBus 高级工程经理

存储在 redBus 后端的评价的粒度,再加上用户搜索查询中可能存在的排列组合数量巨大(包含出发和到达时间、城市中的具体上车点以及不同的巴士运营商等变量),使得从评价中突出显示特定洞见变得困难。对于如此庞大的数据量,为每个搜索查询提供服务器端摘要的成本将非常高。

为了生成有效的摘要,除了客户评价之外,redBus 还向 Summarizer API 提供以下上下文:

//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.';

摘要可以帮助客户做出更好的决策,而无需额外的业务成本和技术复杂性。此外,redBus 还可以根据登录用户的出行偏好(例如座位舒适度或 Wi-Fi 可用性)对摘要进行个性化设置。推理在客户端进行,这意味着此搜索和摘要对用户来说是私密的。

请查看一个简短的代码示例,该示例会检查 Summarizer 的可用性、提供上下文,并根据用户的搜索查询检索评价。

// 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
  }
}

以从班加罗尔到芒格洛尔的搜索为例,摘要生成器的输出如下所示:

<Bus Provider X> 通常因舒适度、清洁度和员工服务而获得好评。一些用户遇到了小问题,例如延误、司机行为(粗鲁)、缺少便利设施(实时跟踪、毯子)和不适(座位大小、减震器差)。

此评价符合要求,在一个简短的段落中包含正面和负面评价,比 308 条单独的评价更容易阅读。

Miravia 汇总了电子商务评价

Miravia 是西班牙领先的电子商务平台, 每月活跃用户数达数百万。每当用户过滤评价(例如按产品评分)时,系统都会生成新的摘要。这可以简明扼要地概括客户反馈,突出显示用户关注的问题和建议。

用户可以针对不同的评分生成产品评价摘要。

“以前,用户需要阅读详情页面上的大量单独评论,才能了解产品评价中的主要优点和缺点。 为了帮助用户快速了解客户的总体情绪,我们推出了 Summarizer API。 每当用户过滤评价(例如按星级或其他条件)时,此摘要都会动态更新,从而快速全面地概括相关买家反馈。”

— Ziyi Liang,Miravia 高级软件工程师

最初,Miravia 的用户评价摘要功能依赖于服务器端 AI 服务。他们发现,在客户端运行 AI 的 Gemini Nano 可以提供类似的结果,同时降低维护成本。对于评价不断更新的热销商品,此优势尤为明显。

虽然 Miravia 的实现需要实时提取和汇总评价,但无论推理是在服务器上还是在浏览器中进行,随着频率的增加,客户端 AI 的效率都会显著提高。他们对其整体表现感到满意。

首先,Miravia 会检查功能和设备的兼容性。

// 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 会汇总可用的评价。评价会添加一个句点,使输入更加连贯。

/**
 * 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 unavailable, throw an error with the message from deviceCheck
    throw new Error(
      message ||
        'AI summarization tools are not supported on this device or browser.'
    );
  }
};

转化次数增加

自 Summarizer API 在生产环境中推出以来,Miravia 发现摘要带来了以下结果:

  • 产品页面的转化率提高了 12.4%。
  • 整个网站的转化率提高了 3.3%。

最佳做法

如果评价输入超过词元数量上限,请采取以下缓解措施:

  • 向 API 提供较小的样本(例如最近的 4 条评价)。这有助于更快地生成结果。请参阅有关 扩缩客户端摘要的指南。
  • QuotaExceededError 提供了有关输入中请求的词元的更多信息。summarizer 对象具有一个 inputQuota 属性,用于指示 API 的词元数量上限。这样可以提供实时反馈,并在输入超过上限时停用功能。

您可能需要考虑采用混合方法,以确保所有用户都能获得顺畅的体验。首次调用内置 AI API 时,浏览器必须下载模型。

  • Miravia 在下载模型时使用服务器端模型提供初始摘要。内置模型准备就绪后,网站会切换到在客户端执行推理。

您应始终努力创建友好且具有沟通性的界面:

  • 为模型下载实现进度条 并缓解响应延迟。
  • 考虑模型下载的透明度。Bright Sites 会通知用户模型下载情况,以确保资源使用的透明度和征得用户同意。这样,用户就可以在继续操作之前接受或拒绝。

结论和建议

redBus 和 Miravia 的这些真实示例展示了 Summarizer API 如何通过提供简洁、相关的用户评价摘要,帮助用户快速做出明智的决策。该 API 能够在客户端运行,无需额外的业务成本,技术复杂性低,因此对于需要汇总信息的类似用例来说,它是一个可行的选择。 所有内置 AI API都支持实用的 客户端 AI 用例。

想知道 Summarizer API 如何帮助处理其他用例?我们还 分享了 Summarizer API 如何提高文章互动度

您是否正在使用这些 API 构建新内容?欢迎在 X 上通过@ChromiumDev 或在 LinkedIn 上通过Chromium for Developers 与我们分享。

资源

致谢

感谢来自 Miravia (Alibaba Group) 的 Makakhov Andrey 和 Ziyi Liang、 来自 redBus 的 Amit KumarSwetha GopalakrishnanAlexandra KlepperThomas SteinerKenji Baheux 帮助撰写和 审核本文档。