पब्लिश किया गया: 11 नवंबर, 2024
कल्पना करें कि आपके पास अपने उपयोगकर्ताओं को लंबे लेखों, मुश्किल दस्तावेज़ों या चैट की दिलचस्प बातचीत को कम शब्दों में और अहम जानकारी के साथ बताने की सुविधा हो.
Summarizer API का इस्तेमाल, अलग-अलग लंबाई और फ़ॉर्मैट में अलग-अलग तरह की खास जानकारी जनरेट करने के लिए किया जा सकता है. जैसे, वाक्य, पैराग्राफ़, बुलेट पॉइंट की सूचियां वगैरह. हमारा मानना है कि यह एपीआई इन स्थितियों में काम का है:
- किसी लेख या चैट बातचीत के मुख्य पॉइंट की खास जानकारी देना.
- लेखों के लिए टाइटल और हेडिंग के सुझाव देना.
- लंबे टेक्स्ट की खास जानकारी को कम शब्दों में बताना.
- किताब की समीक्षा के आधार पर, किताब का टीज़र जनरेट किया जा रहा है.
उपलब्धता
- एपीआई को प्रोडक्शन में असली उपयोगकर्ताओं के साथ टेस्ट करने के लिए, Chrome 131 से लेकर Chrome 136 तक के summaryr API के ऑरिजिन ट्रायल में शामिल हों. ऑरिजिन ट्रायल, Chrome पर आपके ऑरिजिन के सभी उपयोगकर्ताओं के लिए इस सुविधा को चालू कर देता है. ऑरिजिन ट्रायल शुरू करने का तरीका जानें.
- इन सुविधाओं के इस्तेमाल की सीमाएं हो सकती हैं. हालांकि, लाइव जांच करने और उपयोगकर्ताओं के सुझाव, शिकायत या राय इकट्ठा करने के लिए, इन सुविधाओं को इंटिग्रेट किया जा सकता है. हमारा मकसद, इस एपीआई के आने वाले वर्शन के बारे में बताना है, ताकि हम इसे ज़्यादा से ज़्यादा लोगों के लिए उपलब्ध करा सकें.
- Chrome स्टेटस में, इसे लागू करने के बारे में जानकारी देखें.
- Summarizer API का प्रस्ताव, लिखने से जुड़े एपीआई के सुइट का हिस्सा है. इस पर चर्चा की जा सकती है.
- रिलीज़ होने से पहले झलक दिखाने वाले प्रोग्राम में शामिल हों और पहले से मौजूद नए एआई एपीआई की शुरुआती सुविधाओं के बारे में जानें. साथ ही, ईमेल पाने वाले लोगों की हमारी सूची का ऐक्सेस पाएं.
ऑरिजिन ट्रायल के दौरान मिलने वाली सीमाएं
ऑरिजिन ट्रायल के दौरान, Summarizer API सिर्फ़ अंग्रेज़ी टेक्स्ट की खास जानकारी के साथ काम करता है. ऐसा इसलिए, क्योंकि मॉडल की क्वालिटी को सिर्फ़ अंग्रेज़ी कॉन्टेंट पर पूरी तरह से टेस्ट किया गया था. हम इस पाबंदी को हटा देंगे. ऐसा तब होगा, जब हम क्वालिटी और सुरक्षा के लिए अन्य भाषाओं की जांच कर लेंगे और एपीआई ज़्यादा से ज़्यादा लोगों के लिए उपलब्ध हो जाएगा.
Summarizer एपीआई का इस्तेमाल करना
सबसे पहले, फ़ीचर डिटेक्शन चलाएं और देखें कि ब्राउज़र पर Summarizer एपीआई काम करता है या नहीं.
if ('ai' in self && 'summarizer' in self.ai) {
// The Summarizer API is supported.
}
मॉडल डाउनलोड करना
Summarizer API, अच्छी क्वालिटी की खास जानकारी जनरेट करने के लिए, एआई के एक बेहतर मॉडल का इस्तेमाल करता है. एपीआई, Chrome में पहले से मौजूद होता है. हालांकि, जब कोई वेबसाइट पहली बार एपीआई का इस्तेमाल करती है, तो मॉडल को अलग से डाउनलोड किया जाता है.
यह तय करने के लिए कि मॉडल इस्तेमाल के लिए तैयार है या नहीं, एसिंक्रोनस ai.summarizer.capabilities()
फ़ंक्शन को कॉल करें. यह available
फ़ील्ड के साथ AISummarizerCapabilities
ऑब्जेक्ट दिखाता है, जिसमें तीन संभावित वैल्यू हो सकती हैं:
no
: मौजूदा ब्राउज़र Summarizer एपीआई के साथ काम करता है, लेकिन फ़िलहाल इसका इस्तेमाल नहीं किया जा सकता. ऐसा कई वजहों से हो सकता है. जैसे, मॉडल डाउनलोड करने के लिए डिस्क में जगह न होना.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 Web Incubator कम्यूनिटी ग्रुप में शामिल किया गया है. Chrome टीम ने W3C टेक्निकल आर्किटेक्चर ग्रुप से सुझाव भेजने का अनुरोध किया. साथ ही, Mozilla और WebKit से उनकी स्टैंडर्ड पोज़िशन के बारे में भी पूछा.
हिस्सा लेना और सुझाव, शिकायत या राय शेयर करना
ओरिजिन ट्रायल में शामिल होकर, Summarizer API को अभी आज़माना शुरू करें और अपने सुझाव/राय/शिकायत शेयर करें. आपके सुझाव, राय, और शिकायत से, इस एपीआई के आने वाले वर्शन और पहले से मौजूद सभी एआई एपीआई को बनाने और लागू करने के तरीके पर सीधा असर पड़ सकता है.
- Chrome में इस सुविधा को लागू करने के बारे में सुझाव/राय देने या शिकायत करने के लिए, गड़बड़ी की शिकायत या सुविधा का अनुरोध करें.
- GitHub पर Summarizer एपीआई के डिज़ाइन के बारे में चर्चा करें इसके लिए, किसी मौजूदा समस्या पर टिप्पणी करें या कोई नई समस्या खोलें.
- वेब इनक्यूबेटर कम्यूनिटी ग्रुप में शामिल होकर, स्टैंडर्ड बनाने की प्रोसेस में हिस्सा लें.