Summarizer API की मदद से, redBus और Miravia, उपयोगकर्ताओं की समीक्षाओं की खास जानकारी तैयार करते हैं

Cecilia Cong
Cecilia Cong
Hadyan Andika
Hadyan Andika

पब्लिश किया गया: 15 मई, 2025

ई-कॉमर्स या ट्रैवल साइटों जैसी वेबसाइटों पर, उपयोगकर्ताओं की समीक्षाएं होती हैं. इनमें अक्सर काफ़ी ज़्यादा जानकारी होती है. इससे, उपयोगकर्ताओं को खरीदारी का फ़ैसला लेने के लिए, कई समीक्षाओं को पढ़ने में समय लग सकता है. समीक्षाओं की खास जानकारी देने से, उपयोगकर्ताओं को सुझाव/राय/शिकायत को समझने में मदद मिलती है. साथ ही, उनका समय भी बचता है. जानें कि redBus और Miravia, फ़ैसला लेने और खरीदारी के अनुभव को बेहतर बनाने के लिए, Summarizer API का इस्तेमाल कैसे करते हैं.

जानकारी देने वाला चिप वेब एक्सटेंशन Chrome का स्टेटस प्रयोजन
MDN Chrome 138 Chrome 138 देखें शिप करने का इंटेंट

Summarizer API की मदद से, अलग-अलग लंबाई और फ़ॉर्मैट में अलग-अलग तरह की खास जानकारी जनरेट की जा सकती है. जैसे, वाक्य, पैराग्राफ़, बिंदुओं वाली सूचियां वगैरह. यह एपीआई, हमारे कई पहले से मौजूद एआई एपीआई की तरह, अनुमान लगाने के लिए लार्ज लैंग्वेज मॉडल का इस्तेमाल करता है. Chrome में, हमारा मॉडल Gemini Nano है.

redBus, बस यात्रा के लिए सबसे सही विकल्प चुनने में खरीदारों की मदद करता है

redBus, भारत में बस सेवा देने वाली सबसे बड़ी कंपनी है. इसके 3 करोड़ से ज़्यादा ग्राहक हैं. यह देश भर में करीब 10,000 शहरों और कस्बों में बस सेवाएं उपलब्ध कराती है. डेटा और सुझाव/राय/शिकायत से, redBus को पता चला कि उपयोगकर्ताओं की ओर से दी गई समीक्षाओं से, ग्राहकों को यह तय करने में मदद मिलती है कि उनकी यात्रा के लिए कौनसा रास्ता और कौनसी बस सबसे अच्छी है. redBus को बहुत ज़्यादा समीक्षाएं मिलती हैं. हर समीक्षा, बस के पहुंचने और छूटने के समय और जगह के बारे में खास जानकारी देती है.

ग्राहकों को कुछ शहरों या रास्तों के बारे में बेहतर तरीके से जानकारी देने के लिए, Summarizer API का इस्तेमाल किया जाता है. इससे, काम की समीक्षाओं से अहम जानकारी मिलती है.

कोई ग्राहक, बेंगलुरु से मंगलुरु का रास्ता खोजता है. समरी जनरेटर, उपलब्ध समीक्षाओं को देखता है और काम की खास जानकारी कैप्चर करता है. इससे, खरीदारों को अपनी यात्रा के लिए सबसे अच्छी बस ढूंढने में मदद मिलती है.

"Summarizer API, बड़ी संख्या में मौजूद समीक्षाओं और उपयोगकर्ता की खोज क्वेरी के अलग-अलग वर्शन से, अच्छी क्वालिटी की खास जानकारी तैयार कर सका. क्लाइंट-साइड की इस सुविधा की मदद से, तकनीकी समस्याओं और कारोबार की अतिरिक्त लागत को कम किया जा सकता है. यह लागत, सर्वर-साइड के विकल्प के लिए होती है. यह हमारे लिए ज़रूरी है, क्योंकि यह इस्तेमाल का उदाहरण कन्वर्ज़न फ़नल का हिस्सा है."

— अमित कुमार, सीनियर इंजीनियरिंग मैनेजर, 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 लॉग इन किए हुए उपयोगकर्ताओं की यात्रा की प्राथमिकताओं के हिसाब से, खास जानकारी को उनके हिसाब से बना सकता है. जैसे, सीट की सुविधा या वाई-फ़ाई की उपलब्धता. अनुमान क्लाइंट-साइड पर लगाया जाता है. इसका मतलब है कि यह खोज और खास जानकारी, उपयोगकर्ता के लिए निजी रहती है.

यहां एक छोटे कोड का सैंपल दिया गया है. यह कोड, समरीज़र की उपलब्धता की जांच करता है, संदर्भ देता है, और उपयोगकर्ता की खोज क्वेरी के आधार पर समीक्षाएं दिखाता है.

// 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 को लॉन्च किया है, ताकि उपयोगकर्ताओं को ग्राहक की भावनाओं के बारे में तुरंत जानकारी मिल सके. जब भी कोई उपयोगकर्ता समीक्षाओं को फ़िल्टर करता है, तो यह खास जानकारी डाइनैमिक तौर पर अपडेट होती है. जैसे, स्टार रेटिंग या अन्य शर्तों के हिसाब से. इससे, खरीदारों के काम के सुझाव, शिकायत या राय की पूरी जानकारी तुरंत और आसानी से मिल जाती है."

— ज़ीई लिआंग, सीनियर सॉफ़्टवेयर इंजीनियर, Miravia

शुरुआत में, Miravia की उपयोगकर्ता समीक्षा की खास जानकारी देने वाली सुविधा, सर्वर-साइड एआई सेवा पर निर्भर थी. उन्होंने पाया कि क्लाइंट-साइड एआई पर काम करने वाला Gemini Nano, रखरखाव की लागत में कमी के साथ, मिलते-जुलते नतीजे दे सकता है. यह फ़ायदा, खास तौर पर लोकप्रिय और तेज़ी से बिकने वाले आइटम के लिए साफ़ तौर पर दिखता है. इन आइटम की समीक्षाएं लगातार अपडेट की जाती हैं.

Miravia को लागू करने के लिए, रीयल-टाइम में समीक्षा फ़ेच करने और उसका ब्यौरा देने की ज़रूरत होती है. भले ही, अनुमान लगाने की प्रोसेस सर्वर पर हो या ब्राउज़र में, फ़्रीक्वेंसी बढ़ने पर क्लाइंट-साइड एआई ज़्यादा असरदार होता है. वे इसकी परफ़ॉर्मेंस से संतुष्ट हैं.

सबसे पहले, 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.'
    );
  }
};

सबसे सही तरीके

अगर समीक्षा के इनपुट में टोकन की तय सीमा से ज़्यादा टोकन इस्तेमाल किए गए हैं, तो इन तरीकों से समस्या को हल करें:

  • एपीआई के लिए, छोटे सैंपल (जैसे, सबसे हाल की चार समीक्षाएं) का इस्तेमाल करें. इससे, तेज़ी से नतीजे जनरेट करने में मदद मिलती है. क्लाइंट-साइड पर खास जानकारी देने की सुविधा को स्केल करने के बारे में हमारा दिशा-निर्देश देखें.
  • QuotaExceededError, इनपुट में अनुरोध किए गए टोकन के बारे में ज़्यादा जानकारी देता है. summarizer ऑब्जेक्ट में inputQuota प्रॉपर्टी होती है, जो एपीआई के टोकन की सीमा दिखाती है. इससे रीयल-टाइम में फ़ीडबैक मिलता है. साथ ही, अगर इनपुट तय सीमा से ज़्यादा हो जाता है, तो सुविधा बंद हो जाती है.

सभी उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, हाइब्रिड तरीके का इस्तेमाल किया जा सकता है. जब पहली बार किसी पहले से मौजूद एआई एपीआई को कॉल किया जाता है, तो ब्राउज़र को मॉडल डाउनलोड करना होगा.

  • Miravia ने मॉडल डाउनलोड होने के दौरान, शुरुआती खास जानकारी देने के लिए, सर्वर-साइड मॉडल का इस्तेमाल किया. पहले से मौजूद मॉडल तैयार होने के बाद, साइट ने क्लाइंट-साइड पर अनुमान लगाने की सुविधा चालू कर दी.

आपको हमेशा ऐसा इंटरफ़ेस बनाना चाहिए जो उपयोगकर्ता के लिए आसान हो और जिसमें जानकारी आसानी से मिलती हो:

  • मॉडल डाउनलोड करने और जवाब मिलने में लगने वाले समय को कम करने के लिए, प्रोग्रेस बार लागू करें.
  • मॉडल डाउनलोड करने के बारे में साफ़ तौर पर बताएं. Bright Sites ने उपयोगकर्ताओं को मॉडल डाउनलोड करने के बारे में सूचना दी, ताकि संसाधन के इस्तेमाल के लिए पारदर्शिता और सहमति मिल सके. इस तरह, उपयोगकर्ता आगे बढ़ने से पहले, स्वीकार या अस्वीकार कर सकते हैं.

नतीजे और सुझाव

redBus और Miravia के इन असल उदाहरणों से पता चलता है कि Summarizer API ने उपयोगकर्ताओं की समीक्षाओं की खास और काम की खास जानकारी देकर, उन्हें फटाफट सही फ़ैसले लेने में कैसे मदद की. एपीआई, क्लाइंट-साइड पर काम करता है. इससे कारोबार को कोई अतिरिक्त शुल्क नहीं देना पड़ता और तकनीकी समस्याएं भी कम होती हैं. इसलिए, यह उन मामलों में एक बेहतर विकल्प है जहां जानकारी को कम शब्दों में बताना ज़रूरी होता है. पहले से मौजूद सभी एआई एपीआई, क्लाइंट-साइड एआई के इस्तेमाल के उदाहरणों को काम के बनाते हैं.

क्या आपको यह जानना है कि Summarizer API, इस्तेमाल के अन्य उदाहरणों में कैसे मदद कर सकता है? हमने यह भी बताया है कि Summarizer API, लेख में लोगों की दिलचस्पी बढ़ाने में कैसे मदद करता है.

क्या इन एपीआई की मदद से, कुछ नया बनाया जा रहा है? हमें इसकी जानकारी X पर@ChromiumDev या LinkedIn पर Chromium for Developers पर शेयर करें.

संसाधन

Acknowledgements

इस दस्तावेज़ को लिखने और उसकी समीक्षा करने में मदद करने के लिए, Miravia (Alibaba Group) के Makakhov Andrey और Ziyi Liang, redBus के अमित कुमार, स्वेता गोपालकृष्णन, Alexandra Klepper, Thomas Steiner और Kenji Baheux का धन्यवाद.