Summarizer API를 사용하면 redBus와 Miravia에서 유용한 사용자 리뷰 요약을 만들 수 있습니다.

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

게시일: 2025년 5월 15일, 최종 업데이트: 2026년 5월 27일

전자상거래 또는 여행 사이트와 같이 사용자 리뷰가 있는 웹사이트에는 많은 양의 정보가 있는 경우가 많습니다. 이로 인해 사용자가 구매를 결정하기 위해 많은 리뷰를 일일이 확인하는 데 시간이 오래 걸릴 수 있습니다. 리뷰 요약을 제공하면 사용자가 피드백을 이해하고 시간을 절약할 수 있습니다.

redBusMiravia가 Summarizer API를 사용하여 의사 결정과 구매 경험을 개선하는 방법을 알아보세요. Miravia는 리뷰 요약을 추가하여 제품 페이지와 사이트 전반에서 전환율을 개선했습니다.

설명하듯이 확장 프로그램 Chrome 상태 의도
MDN Chrome 138 Chrome 138 View 배송 의도

요약 도구 API를 사용하면 문장, 단락, 글머리 기호 목록 등 다양한 길이와 형식으로 여러 유형의 요약을 생성할 수 있습니다. 이 API는 많은 내장 AI API와 마찬가지로 대규모 언어 모델을 사용하여 추론을 실행합니다.

redBus는 고객이 최적의 버스 옵션을 결정할 수 있도록 지원합니다.

redBus는 3천만 명이 넘는 고객을 보유한 인도 최대의 버스 제공업체로, 전국적으로 연결된 약 10,000개의 도시와 마을에 버스 서비스를 제공합니다. redBus는 데이터와 피드백을 통해 사용자가 생성한 리뷰가 고객이 자신의 여행 요구사항에 가장 적합한 경로와 버스를 결정하는 데 중요한 역할을 한다는 것을 알게 되었습니다. redBus는 많은 리뷰를 받고 있으며 각 리뷰는 정확한 도착 및 출발 지점과 시간에 관한 것입니다.

고객이 특정 도시 또는 경로를 대략적으로 이해할 수 있도록 Summarizer API를 사용하여 관련 리뷰의 주요 통계를 표시합니다.

고객이 방갈로에서 망갈루루로 가는 경로를 찾습니다. 요약 도구는 사용 가능한 리뷰를 살펴보고 고객이 여정에 가장 적합한 버스를 찾을 수 있도록 유용한 개요를 제공합니다.

'요약 도구 API를 사용해 많은 리뷰와 사용자 검색어 순열에서 고품질 요약을 만들 수 있었습니다. 이 클라이언트 측 기능은 서버 측 대안에 있을 수 있는 기술적 복잡성과 추가 비즈니스 비용을 제거했습니다. 이 사용 사례는 전환 유입경로의 일부이므로 Google에 중요합니다.'

— 아미트 쿠마르, 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 사용 가능 여부)에 따라 요약을 맞춤설정할 수 있습니다. 추론은 클라이언트 측에서 이루어지므로 이 검색과 요약은 사용자에게 비공개로 유지됩니다.

요약 도구 사용 가능 여부를 확인하고, 컨텍스트를 제공하고, 사용자의 검색어에 따라 리뷰를 가져오는 짧은 코드 샘플을 살펴보세요.

// 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를 실행하면 유지보수 비용이 절감되면서 비슷한 결과를 얻을 수 있다는 것을 알게 되었습니다. 이점은 리뷰가 지속적으로 업데이트되는 인기 있고 빠르게 판매되는 상품의 경우 특히 명확합니다.

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.'
    );
  }
};

전환 개선

요약 도구 API가 프로덕션에서 제공된 이후 Miravia는 요약이 다음과 같은 결과를 가져온다는 것을 확인했습니다.

  • 제품 페이지에서 전환이 12.4% 더 높습니다.
  • 웹사이트 전체에서 전환이 3.3% 증가했습니다.

권장사항

검토 입력이 토큰 한도를 초과하는 경우 다음 완화 조치를 따르세요.

  • 최근 4개의 리뷰와 같은 더 작은 샘플을 API에 사용합니다. 이렇게 하면 더 빠른 결과를 생성할 수 있습니다. 클라이언트 측 요약 확장에 관한 안내를 참고하세요.
  • QuotaExceededError는 입력에서 요청된 토큰에 관한 추가 정보를 제공합니다. summarizer 객체에는 API의 토큰 한도를 나타내는 inputQuota 속성이 있습니다. 이를 통해 입력이 한도를 초과하는 경우 실시간 피드백을 제공하고 기능을 사용 중지할 수 있습니다.

모든 사용자에게 원활한 환경을 제공하려면 하이브리드 방식을 고려하는 것이 좋습니다. 내장 AI API가 처음 호출되면 브라우저가 모델을 다운로드해야 합니다.

  • Miravia는 모델이 다운로드되는 동안 서버 측 모델을 사용하여 초기 요약을 제공했습니다. 내장 모델이 준비되면 사이트에서 클라이언트 측 추론을 실행하도록 전환되었습니다.

항상 친근하고 커뮤니케이션이 가능한 인터페이스를 만들기 위해 노력해야 합니다.

  • 모델 다운로드에 진행률 표시줄을 구현하고 응답 지연을 완화합니다.
  • 모델 다운로드에 관한 투명성을 고려하세요. Bright Sites는 리소스 사용의 투명성과 동의를 위해 모델 다운로드에 관해 사용자에게 알렸습니다. 이렇게 하면 사용자가 계속 진행하기 전에 수락하거나 거부할 수 있습니다.

결론 및 권장사항

redBus와 Miravia의 실제 사례를 통해 요약 도구 API가 사용자 리뷰의 간결하고 관련성 있는 요약을 제공하여 사용자가 신속하게 정보에 입각한 결정을 내릴 수 있도록 지원하는 방법을 확인할 수 있습니다. API는 추가 비즈니스 비용 없이 클라이언트 측에서 작동할 수 있으며 기술적 복잡성이 낮아 정보를 요약해야 하는 유사한 사용 사례에 적합합니다. 모든 내장 AI API는 실용적인 클라이언트 측 AI 사용 사례를 지원합니다.

요약 도구 API가 다른 사용 사례에 어떻게 도움이 되는지 궁금하신가요? Summarizer API가 기사 참여도를 높이는 방법도 공유했습니다.

이 API로 새로운 것을 구축하고 있나요? X의@ChromiumDev 또는 LinkedIn의 Chromium for Developers에서 의견을 공유해 주세요.

리소스

감사의 말씀

이 문서를 작성하고 검토하는 데 도움을 주신 Miravia (Alibaba Group)의 Makakhov Andrey와 Ziyi Liang, redBus의 Amit Kumar, Swetha Gopalakrishnan, Alexandra Klepper, Thomas Steiner, Kenji Baheux에게 감사드립니다.