Summarizer API ช่วยให้ redBus และ Miravia สร้างข้อมูลสรุปรีวิวที่เป็นประโยชน์จากผู้ใช้

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

เผยแพร่: 15 พฤษภาคม 2025

เว็บไซต์ที่มีรีวิวจากผู้ใช้ เช่น เว็บไซต์อีคอมเมิร์ซหรือเว็บไซต์ท่องเที่ยว มักมีข้อมูลจํานวนมาก ซึ่งอาจทำให้ผู้ใช้ต้องใช้เวลาในการอ่านรีวิวจำนวนมากเพื่อตัดสินใจซื้อ การระบุข้อมูลสรุปรีวิวจะช่วยให้ผู้ใช้เข้าใจความคิดเห็นและประหยัดเวลา ดูวิธีที่ redBus และ Miravia ใช้ Summarizer API เพื่อปรับปรุงการตัดสินใจและประสบการณ์การซื้อ

วิดีโออธิบาย เว็บ ส่วนขยาย สถานะ Chrome ความตั้งใจ
MDN เบื้องหลังธง Chrome 138 เบต้า เบื้องหลังธง Chrome 138 เบต้า ดู Intent to Ship

Summarizer API ช่วยให้คุณสร้างสรุปประเภทต่างๆ ในความยาวและรูปแบบที่หลากหลาย เช่น ประโยค ย่อหน้า รายการหัวข้อ และอื่นๆ API นี้เช่นเดียวกับAPI AI ในตัวจํานวนมากของเราใช้โมเดลภาษาขนาดใหญ่ในการทําการอนุมาน ใน Chrome โมเดลของเราคือ Gemini Nano

redBus ช่วยให้ลูกค้าตัดสินใจเลือกตัวเลือกรถบัสที่ดีที่สุด

redBus เป็นผู้ให้บริการรถประจำทางรายใหญ่ที่สุดในอินเดีย โดยมีลูกค้ามากกว่า 30 ล้านราย ให้บริการรถประจำทางในกว่า 10,000 เมืองและเมืองเล็กทั่วทั้งประเทศ จากข้อมูลและความคิดเห็น redBus พบว่ารีวิวที่ผู้ใช้สร้างขึ้นมีบทบาทสำคัญในการช่วยให้ลูกค้าตัดสินใจเลือกเส้นทางและรถบัสที่เหมาะกับความต้องการในการเดินทางของตน redBus ได้รับรีวิวเป็นจำนวนมาก และรีวิวแต่ละรายการจะระบุจุดหมายปลายทางและเวลาออกเดินทางที่แน่นอน

เพื่อช่วยให้ลูกค้าเข้าใจภาพรวมของเมืองหรือเส้นทางบางแห่ง ทางบริษัทจึงใช้ Summarizer API เพื่อนำเสนอข้อมูลเชิงลึกที่สำคัญจากรีวิวที่เกี่ยวข้อง

ลูกค้าค้นหาเส้นทางจากบังกาลอร์ไปมาנגลอร์ เครื่องมือสรุปจะดูรีวิวที่มีอยู่และจับภาพรวมที่เป็นประโยชน์เพื่อช่วยให้ลูกค้าค้นหารถบัสที่ดีที่สุดสำหรับการเดินทาง

"Summarizer API สร้างสรุปที่มีคุณภาพจากรีวิวจำนวนมากและการเปลี่ยนรูปแบบคำค้นหาของผู้ใช้ ฟีเจอร์ฝั่งไคลเอ็นต์นี้ช่วยลดความซับซ้อนทางเทคนิคและค่าใช้จ่ายทางธุรกิจเพิ่มเติมที่อาจเกิดขึ้นกับทางเลือกฝั่งเซิร์ฟเวอร์ ข้อมูลนี้สำคัญกับเราเนื่องจาก Use Case นี้เป็นส่วนหนึ่งของ Funnel Conversion"

- 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> ได้รับรีวิวเชิงบวกในด้านความสะดวกสบาย ความสะอาด และบริการของพนักงาน ผู้โดยสารบางรายพบปัญหาเล็กน้อย เช่น ความล่าช้า พฤติกรรมของพนักงานขับรถ (หยาบคาย) ไม่มีสิ่งอำนวยความสะดวก (การติดตามแบบเรียลไทม์ ผ้าห่ม) และไม่สะดวกสบาย (ขนาดที่นั่ง โช้คอัพไม่ดี)

รีวิวนี้เป็นไปตามข้อกำหนดที่ขอ โดยมีทั้งข้อดีและข้อเสียอยู่ในย่อหน้าสั้นๆ 1 ย่อหน้า ซึ่งอ่านง่ายกว่ารีวิวเดี่ยวที่มีอยู่ 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 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.'
    );
  }
};

แนวทางปฏิบัติแนะนำ

หากอินพุตการตรวจสอบมีจำนวนเกินขีดจำกัดของโทเค็น ให้ทำตามมาตรการบรรเทาผลกระทบต่อไปนี้

  • ใช้ตัวอย่างที่เล็กลง (เช่น รีวิว 4 รายการล่าสุด) กับ API ซึ่งจะช่วยให้ได้ผลลัพธ์เร็วขึ้น ดูคําแนะนําเกี่ยวกับการปรับขนาดการสรุปฝั่งไคลเอ็นต์
  • QuotaExceededError ให้ข้อมูลเพิ่มเติมเกี่ยวกับโทเค็นที่ขอในอินพุต ออบเจ็กต์ summarizer มีพร็อพเพอร์ตี้ inputQuota ที่บ่งบอกขีดจํากัดโทเค็นของ API วิธีนี้ช่วยให้สามารถแสดงความคิดเห็นแบบเรียลไทม์และปิดใช้ฟังก์ชันการทำงานได้หากอินพุตเกินขีดจํากัด

คุณอาจต้องพิจารณาใช้แนวทางแบบผสมเพื่อให้ผู้ใช้ทุกคนได้รับประสบการณ์การใช้งานที่ราบรื่น เมื่อเรียกใช้ AI API ในตัวเป็นครั้งแรก เบราว์เซอร์จะต้องดาวน์โหลดโมเดล

  • Miravia ใช้โมเดลฝั่งเซิร์ฟเวอร์เพื่อแสดงข้อมูลสรุปเบื้องต้นขณะที่โมเดลกำลังดาวน์โหลด เมื่อโมเดลในตัวพร้อมแล้ว เว็บไซต์จะเปลี่ยนไปใช้การอนุมานฝั่งไคลเอ็นต์

คุณควรพยายามสร้างอินเทอร์เฟซที่ใช้งานง่ายและสื่อสารได้ดีอยู่เสมอ โดยทำดังนี้

  • ใช้แถบความคืบหน้าในการดาวน์โหลดโมเดลและลดการตอบสนองที่ล่าช้า
  • พิจารณาความโปร่งใสเกี่ยวกับการดาวน์โหลดโมเดล Bright Sites แจ้งให้ผู้ใช้ทราบเกี่ยวกับการดาวน์โหลดโมเดลเพื่อให้เกิดความโปร่งใสและความยินยอมในการใช้ทรัพยากร วิธีนี้จะช่วยให้ผู้ใช้ยอมรับหรือปฏิเสธก่อนดำเนินการต่อได้

บทสรุปและคําแนะนํา

ตัวอย่างการใช้งานจริงจาก redBus และ Miravia เหล่านี้แสดงให้เห็นว่า Summarizer API ช่วยให้ผู้ใช้มีข้อมูลประกอบการตัดสินใจได้อย่างรวดเร็วอย่างไร โดยการสรุปรีวิวของผู้ใช้อย่างกระชับและเป็นปัจจุบัน ความสามารถในการทํางานฝั่งไคลเอ็นต์ของ API นี้ โดยไม่จําเป็นต้องเสียค่าใช้จ่ายทางธุรกิจเพิ่มเติมและมีความซับซ้อนทางเทคนิคต่ำ ทําให้ API นี้เป็นตัวเลือกที่ใช้งานได้จริงสําหรับกรณีการใช้งานที่คล้ายกันซึ่งจําเป็นต้องสรุปข้อมูล AI API ในตัวทั้งหมดเปิดใช้กรณีการใช้งาน AI ฝั่งไคลเอ็นต์ที่ใช้งานได้จริง

สงสัยไหมว่า Summarizer API จะช่วยในเรื่อง Use Case อื่นๆ ได้อย่างไร นอกจากนี้ เรายังได้แชร์วิธีที่ Summarizer API ช่วยเพิ่มการมีส่วนร่วมกับบทความ

คุณกำลังสร้างสิ่งใหม่ๆ ด้วย API เหล่านี้อยู่ใช่ไหม โปรดแชร์กับเราที่ @ChromiumDev on X หรือ Chromium for Developers on LinkedIn

แหล่งข้อมูล

ขอขอบคุณ

ขอขอบคุณ Makakhov Andrey และ Ziyi Liang จาก Miravia (กลุ่ม Alibaba), Amit Kumar จาก redBus, Swetha Gopalakrishnan, Alexandra Klepper, Thomas Steiner และ Kenji Baheux ที่ช่วยเขียนและตรวจสอบเอกสารนี้