Summarizer API עוזר ל-redBus ול-Miravia ליצור סיכומים מועילים של ביקורות של משתמשים

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

תאריך פרסום: 15 במאי 2025, עדכון אחרון: 27 במאי 2026

באתרים עם ביקורות משתמשים, כמו אתרי מסחר אלקטרוני או אתרי נסיעות, יש בדרך כלל נפח גדול של מידע. כך המשתמשים צריכים לבזבז הרבה זמן כדי לעבור על הביקורות ולהחליט אם לבצע רכישה. סיכומי ביקורות יכולים לעזור למשתמשים להבין את המשוב ולחסוך זמן.

redBus וכאן אפשר לקרוא איך חברות כמו redBus ו-Miravia משתמשות ב-Summarizer API כדי לשפר את תהליך קבלת ההחלטות ואת חוויית הרכישה. הוספת סיכומי הביקורות ל-Miravia הובילה לשיפור בשיעורי ההמרה בדפי המוצרים ובאתר כולו.

סרטון הסבר פיתוח אתרים תוספים הסטטוס של Chrome הרציונל
MDN Chrome 138 Chrome 138 תצוגה כוונה לשלוח

Summarizer API מאפשר ליצור סיכומים מסוגים שונים, באורכים ובפורמטים שונים, כמו משפטים, פסקאות, רשימות עם תבליטים ועוד. ב-API הזה, כמו בהרבה ממשקי AI API מובנים שלנו, נעשה שימוש במודלים גדולים של שפה (LLM) כדי לבצע הסקה. ב-Chrome, המודל הוא Gemini Nano.

‫redBus עוזרת ללקוחות להחליט איזו אפשרות אוטובוס היא הטובה ביותר

‫redBus היא ספקית האוטובוסים הגדולה ביותר בהודו, עם יותר מ-30 מיליון לקוחות. היא מספקת שירותי אוטובוסים בכ-10,000 ערים ועיירות, שמחוברות ברחבי המדינה. בעזרת נתונים ומשוב, חברת redBus הבינה שביקורות שנוצרו על ידי משתמשים ממלאות תפקיד חשוב בעזרה ללקוחות לקבוע איזה מסלול ואוטובוס הכי מתאימים לצרכים שלהם. חברת redBus מקבלת נפח גדול של ביקורות, וכל ביקורת ספציפית לנקודות ולזמני ההגעה והיציאה המדויקים.

כדי לעזור ללקוחות להבין ברמה גבוהה לגבי ערים או מסלולים מסוימים, הם משתמשים ב-Summarizer API כדי להציג תובנות מרכזיות מביקורות רלוונטיות.

לקוח מחפש מסלול מבנגלור למנגלורו. התכונה 'סיכום' בודקת את הביקורות הזמינות ומציגה סקירה כללית מועילה כדי לעזור ללקוחות למצוא את האוטובוס הכי טוב לנסיעה שלהם.

"ה-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. ההסקה מתבצעת בצד הלקוח, כלומר החיפוש והסיכום נשארים פרטיים למשתמש.

כדאי לעיין בדוגמה קצרה של קוד שבודק את הזמינות של הכלי לסיכום, מספק הקשר ומאחזר ביקורות על סמך שאילתת החיפוש של המשתמש.

// 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 בצד השרת. הם גילו ש-Gemini Nano שמבוסס על 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.'
    );
  }
};

שיפור ההמרות

מאז שה-Summarizer API הפך לזמין בסביבת הייצור, ב-Miravia גילו שהסיכומים מובילים ל:

  • עלייה של 12.4% בהמרות בדפי מוצרים.
  • העלייה בהמרות באתר הייתה גבוהה ב-3.3%.

שיטות מומלצות

אם קלט הביקורת חורג ממגבלת הטוקנים, אפשר לנסות את הפתרונות הבאים:

  • להשתמש במדגם קטן יותר (למשל 4 הביקורות האחרונות) ב-API. כך אפשר לקבל תוצאות מהר יותר. כדאי לעיין בהנחיות שלנו בנושא הרחבת סיכום בצד הלקוח.
  • התו QuotaExceededError מספק מידע נוסף על הטוקנים המבוקשים בקלט. לאובייקט summarizer יש מאפיין inputQuota שמציין את מגבלת האסימונים של ה-API. כך אפשר לקבל משוב בזמן אמת ולהשבית את הפונקציונליות אם הקלט חורג מהמגבלה.

כדאי לשקול גישה היברידית כדי להבטיח חוויה חלקה לכל המשתמשים. בפעם הראשונה שמתבצעת קריאה ל-API מובנה של AI, הדפדפן צריך להוריד את המודל.

  • ב-Miravia השתמשו במודל בצד השרת כדי לספק סיכום ראשוני בזמן שהמודל ירד. אחרי שהמודל המובנה היה מוכן, האתר עבר לביצוע הסקה מצד הלקוח.

חשוב תמיד ליצור ממשק ידידותי וברור:

  • הטמעת סרגל התקדמות להורדות של מודלים כדי לצמצם את העיכובים בתגובה.
  • כדאי לשקול שקיפות לגבי הורדת המודל. חברת Bright Sites הודיעה למשתמשים על הורדת המודל כדי לאפשר שקיפות והסכמה לשימוש במשאבים. כך המשתמשים יכולים לאשר או לדחות את הבקשה לפני שממשיכים.

מסקנות והמלצות

הדוגמאות האלה מהעולם האמיתי של redBus ו-Miravia ממחישות איך ה-Summarizer API עזר למשתמשים לקבל החלטות מושכלות במהירות, באמצעות סיכומים תמציתיים ורלוונטיים של ביקורות משתמשים. היכולת של ה-API לפעול בצד הלקוח, ללא עלויות עסקיות נוספות ומורכבות טכנית נמוכה, הופכת אותו לאפשרות מעשית לתרחישי שימוש דומים שבהם צריך לסכם מידע. כל ממשקי ה-AI API המובנים מאפשרים תרחישי שימוש מעשיים ב-AI בצד הלקוח.

רוצים לדעת איך Summarizer API יכול לעזור בתרחישי שימוש אחרים? בנוסף, הסברנו איך Summarizer API מגדיל את רמת המעורבות עם המאמרים.

האם אתם מפתחים משהו חדש באמצעות ממשקי ה-API האלה? אפשר לשתף אותו איתנו ב-‎@ChromiumDev ב-X או ב-Chromium for Developers ב-LinkedIn.

משאבים

תודות

תודה ל-Makakhov Andrey ול-Ziyi Liang מ-Miravia (Alibaba Group), ל-Amit Kumar מ-redBus, ל-Swetha Gopalakrishnan, ל-Alexandra Klepper, ל-Thomas Steiner ול-Kenji Baheux על העזרה בכתיבה ובבדיקה של המסמך הזה.