Chrome में एआई की मदद से खास जानकारी पाना

पब्लिश किया गया: 11 नवंबर, 2024

कल्पना करें कि आपके पास अपने उपयोगकर्ताओं को लंबे लेखों, मुश्किल दस्तावेज़ों या चैट की दिलचस्प बातचीत को कम शब्दों में और अहम जानकारी के साथ बताने की सुविधा हो.

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

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

उपलब्धता

ऑरिजिन ट्रायल के लिए साइन अप करना

Summarizer API का इस्तेमाल शुरू करने के लिए, यह तरीका अपनाएं:

  1. जनरेटिव एआई के इस्तेमाल से जुड़ी पाबंदी की Google की नीति स्वीकार करें.
  2. Summarizer API के ऑरिजिन ट्रायल पर जाएं.
  3. रजिस्टर करें पर क्लिक करें और फ़ॉर्म भरें.
    • वेब ऑरिजिन फ़ील्ड में, अपना ऑरिजिन या एक्सटेंशन आईडी, chrome-extension://YOUR_EXTENSION_ID डालें.
  4. सबमिट करने के लिए, रजिस्टर करें पर क्लिक करें.
  5. दिए गए टोकन को कॉपी करें और अपने एक्सटेंशन के लिए, ऑरिजिन या फ़ाइल के हर उस वेब पेज पर जोड़ें जिस पर आपको ट्रायल की सुविधा चालू करनी है.
  6. Summarizer API का इस्तेमाल शुरू करें.

ऑरिजिन ट्रायल शुरू करने के तरीके के बारे में ज़्यादा जानें.

ऑरिजिन ट्रायल के दौरान मिलने वाली सीमाएं

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

localhost के लिए सहायता जोड़ना

ऑरिजिन ट्रायल के दौरान, localhost पर Summarizer API को ऐक्सेस करने के लिए, आपके पास Chrome Canary होना चाहिए. इसके बाद, यह तरीका अपनाएं:

  1. इनमें से किसी एक प्लैटफ़ॉर्म पर Chrome Canary खोलें: Windows, Mac या Linux.
  2. chrome://flags/#summarization-api-for-gemini-nano पर जाएं.
  3. चालू है को चुनें.
  4. फिर से लॉन्च करें पर क्लिक करें या Chrome को रीस्टार्ट करें.

Summarizer API का इस्तेमाल करना

सबसे पहले, सुविधा का पता लगाने की सुविधा चलाकर देखें कि ब्राउज़र में Summarizer API काम करता है या नहीं.

if ('ai' in self && 'summarizer' in self.ai) {
  // The Summarizer API is supported.
}

मॉडल डाउनलोड करना

Summarizer API, अच्छी क्वालिटी की खास जानकारी जनरेट करने के लिए, एआई के एक बेहतर मॉडल का इस्तेमाल करता है. एपीआई, Chrome में पहले से मौजूद होता है. हालांकि, जब कोई वेबसाइट पहली बार एपीआई का इस्तेमाल करती है, तो मॉडल को अलग से डाउनलोड किया जाता है.

यह पता लगाने के लिए कि मॉडल इस्तेमाल के लिए तैयार है या नहीं, असाइनोक्रोनस ai.summarizer.capabilities() फ़ंक्शन को कॉल करें. यह available फ़ील्ड के साथ AISummarizerCapabilities ऑब्जेक्ट दिखाता है, जिसमें तीन वैल्यू हो सकती हैं:

  • no: मौजूदा ब्राउज़र पर Summarizer API काम करता है, लेकिन फ़िलहाल इसका इस्तेमाल नहीं किया जा सकता. ऐसा कई वजहों से हो सकता है. जैसे, मॉडल डाउनलोड करने के लिए डिस्क में जगह कम होना.
  • readily: मौजूदा ब्राउज़र, Summarizer API के साथ काम करता है और इसका इस्तेमाल तुरंत किया जा सकता है.
  • after-download: मौजूदा ब्राउज़र, Summarizer API के साथ काम करता है. हालांकि, इसके लिए, पहले मॉडल को डाउनलोड करना ज़रूरी है.

मॉडल डाउनलोड करने और खास जानकारी देने वाला टूल बनाने के लिए, असाइनोक्रोनस ai.summarizer.create() फ़ंक्शन को कॉल करें. अगर capabilities() के लिए जवाब after-download था, तो डाउनलोड की प्रोग्रेस सुनना सबसे सही तरीका है. इस तरह, डाउनलोड में लगने वाले समय के बारे में उपयोगकर्ता को सूचना दी जा सकती है.

const summarizer = await ai.summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
    });
  }
});

एपीआई फ़ंक्शन

create() फ़ंक्शन की मदद से, अपनी ज़रूरतों के हिसाब से, समरी बनाने वाला नया ऑब्जेक्ट कॉन्फ़िगर किया जा सकता है. यह वैकल्पिक options ऑब्जेक्ट लेता है, जिसमें ये पैरामीटर होते हैं:

  • sharedContext: शेयर किया गया अतिरिक्त कॉन्टेक्स्ट, जिससे खास जानकारी देने वाली सुविधा को मदद मिल सकती है.
  • type: खास जानकारी देने का टाइप. इसके लिए, key-points (डिफ़ॉल्ट), tl;dr, teaser, और headline वैल्यू का इस्तेमाल किया जा सकता है.
  • format: खास जानकारी देने का फ़ॉर्मैट. इसमें markdown (डिफ़ॉल्ट) और plain-text वैल्यू इस्तेमाल की जा सकती हैं.
  • length: खास जानकारी की लंबाई. इसके लिए, short, medium (डिफ़ॉल्ट), और long वैल्यू इस्तेमाल की जा सकती हैं. मांगे गए type के आधार पर, इन लंबाई का मतलब अलग-अलग होता है. उदाहरण के लिए, Chrome में लागू करने पर, मुख्य बातों की कम शब्दों वाली खास जानकारी में तीन बुलेट पॉइंट होते हैं और कम शब्दों वाली खास जानकारी एक वाक्य होती है. मुख्य बातों की ज़्यादा शब्दों वाली खास जानकारी में सात बुलेट पॉइंट होते हैं और ज़्यादा शब्दों वाली खास जानकारी एक पैराग्राफ़ होती है.

इस उदाहरण में, खास जानकारी देने वाले टूल को शुरू करने का तरीका बताया गया है.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
  // The Summarizer API isn't usable.
  return;
}
if (available === 'readily') {
  // The Summarizer API can be used immediately .
  summarizer = await self.ai.summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await self.ai.summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
  await summarizer.ready;
}

खास जानकारी देने वाली सुविधा को चलाना

खास जानकारी देने वाले टूल को चलाने के दो तरीके हैं: स्ट्रीमिंग और नॉन-स्ट्रीमिंग.

स्ट्रीमिंग के बिना खास जानकारी

नॉन-स्ट्रीमिंग समरीज़ेशन में, मॉडल पूरे इनपुट को प्रोसेस करता है और फिर आउटपुट जनरेट करता है.

नॉन-स्ट्रीमिंग समरी पाने के लिए, समरी बनाने वाले के असाइनोक्रोनस summarize() फ़ंक्शन को कॉल करें. फ़ंक्शन का पहला आर्ग्युमेंट वह टेक्स्ट होता है जिसे आपको कम शब्दों में बताना है. दूसरा आर्ग्युमेंट ज़रूरी नहीं है. यह एक ऑब्जेक्ट होता है, जिसमें context फ़ील्ड होता है. इस फ़ील्ड की मदद से, बैकग्राउंड की जानकारी जोड़ी जा सकती है. इससे खास जानकारी को बेहतर तरीके से पेश किया जा सकता है.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

स्ट्रीमिंग की खास जानकारी

स्ट्रीमिंग की खास जानकारी देने की सुविधा, रीयल-टाइम में नतीजे दिखाती है. इनपुट जोड़ने और उसमें बदलाव करने पर, आउटपुट लगातार अपडेट होता रहता है.

स्ट्रीमिंग की खास जानकारी पाने के लिए, खास जानकारी देने वाले टूल के summarizeStreaming() फ़ंक्शन को कॉल करें. इसके बाद, स्ट्रीम में टेक्स्ट के उपलब्ध सेगमेंट पर बार-बार जाएं.

let result = '';
let previousChunk = '';
for await (const chunk of stream) {
  const newChunk = chunk.startsWith(previousChunk)
      ? chunk.slice(previousChunk.length) : chunk;
  console.log(newChunk);
  result += newChunk;
  previousChunk = chunk;
}
console.log(result);

summarizeStreaming() एक ReadableStream दिखाता है, जिसमें जवाब के सेगमेंट एक-दूसरे के बाद बनते हैं. इसका मतलब है कि हर जवाब में, उस बिंदु तक जनरेट की गई पूरी खास जानकारी शामिल होती है, न कि सिर्फ़ अगला सेगमेंट. यह सही नहीं है.

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

let result = '';
let previousLength = 0;
for await (const segment of stream) {
  const newContent = segment.slice(previousLength);
  console.log(newContent);
  previousLength = segment.length;  
  result += newContent;
}
console.log(result);

डेमो

Summarizer API Playground में जाकर, Summarizer API को आज़माया जा सकता है.

स्टैंडर्ड बनाने की कोशिश

हम Summarizer API को स्टैंडर्ड बनाने पर काम कर रहे हैं, ताकि यह सभी ब्राउज़र के साथ काम कर सके.

हमारे एपीआई के प्रस्ताव को कम्यूनिटी का समर्थन मिला है. साथ ही, इस पर आगे चर्चा करने के लिए, इसे W3C वेब इनक्यूबेटर कम्यूनिटी ग्रुप पर भेज दिया गया है. Chrome टीम ने W3C के तकनीकी आर्किटेक्चर ग्रुप से सुझाव, राय या टिप्पणी मांगी है. साथ ही, Mozilla और WebKit से स्टैंडर्ड के बारे में जानकारी मांगी है.

हिस्सा लेना और सुझाव, शिकायत या राय शेयर करना

ओरिजिन ट्रायल में शामिल होकर, Summarizer API को अभी आज़माना शुरू करें और अपने सुझाव/राय/शिकायत शेयर करें. आपके सुझाव, राय, और शिकायत से, इस एपीआई के आने वाले वर्शन और पहले से मौजूद सभी एआई एपीआई को बनाने और लागू करने के तरीके पर सीधा असर पड़ सकता है.