पब्लिश करने की तारीख: 11 नवंबर, 2024, पिछली बार अपडेट करने की तारीख: 1 मई, 2025
जानकारी देने वाला चिप | वेब | एक्सटेंशन | Chrome का स्टेटस | प्रयोजन |
---|---|---|---|---|
GitHub | देखें | एक्सपेरिमेंट करने का मकसद |
कल्पना करें कि आपके पास अपने उपयोगकर्ताओं को लंबे लेखों, मुश्किल दस्तावेज़ों या चैट की दिलचस्प बातचीत को कम शब्दों में और अहम जानकारी के साथ बताने की सुविधा हो.
Summarizer API का इस्तेमाल, अलग-अलग लंबाई और फ़ॉर्मैट में अलग-अलग तरह की खास जानकारी जनरेट करने के लिए किया जा सकता है. जैसे, वाक्य, पैराग्राफ़, बुलेट पॉइंट की सूचियां वगैरह. हमारा मानना है कि यह एपीआई इन स्थितियों में काम का है:
- किसी लेख या चैट बातचीत के मुख्य पॉइंट की खास जानकारी देना.
- लेखों के लिए टाइटल और हेडिंग के सुझाव देना.
- लंबे टेक्स्ट की खास जानकारी को कम शब्दों में बताना.
- किताब की समीक्षा के आधार पर, किताब का टीज़र जनरेट किया जा रहा है.
अपनी प्रोफ़ाइल बनाना शुरू करें
Summarizer API के ऑरिजिन ट्रायल में शामिल हों. यह ट्रायल, Chrome 131 से Chrome 139 के बीच चल रहा है. ऑरिजिन ट्रायल की मदद से, Chrome पर अपने ऑरिजिन पर असली उपयोगकर्ताओं को यह सुविधा दी जा सकती है.
ऑरिजिन ट्रायल के लिए साइन अप करना
Summarizer API का इस्तेमाल शुरू करने के लिए, यह तरीका अपनाएं:
- जनरेटिव एआई के इस्तेमाल से जुड़ी पाबंदी की Google की नीति स्वीकार करें.
- Summarizer API के ऑरिजिन ट्रायल पर जाएं.
- रजिस्टर करें पर क्लिक करें और फ़ॉर्म भरें.
- वेब ऑरिजिन फ़ील्ड में, अपना ऑरिजिन या एक्सटेंशन आईडी,
chrome-extension://YOUR_EXTENSION_ID
डालें.
- वेब ऑरिजिन फ़ील्ड में, अपना ऑरिजिन या एक्सटेंशन आईडी,
- सबमिट करने के लिए, रजिस्टर करें पर क्लिक करें.
- दिए गए टोकन को कॉपी करें और अपने एक्सटेंशन के लिए, ऑरिजिन या फ़ाइल के हर उस वेब पेज पर जोड़ें जिस पर आपको ट्रायल की सुविधा चालू करनी है.
- अगर कोई एक्सटेंशन बनाया जा रहा है, तो एक्सटेंशन के ऑरिजिन को मुफ़्त में आज़माने के निर्देश पढ़ें
- Summarizer API का इस्तेमाल शुरू करें.
ऑरिजिन ट्रायल शुरू करने के तरीके के बारे में ज़्यादा जानें.
ऑरिजिन ट्रायल के दौरान मिलने वाली सीमाएं
ऑरिजिन ट्रायल के दौरान, Summarizer API सिर्फ़ अंग्रेज़ी टेक्स्ट की खास जानकारी देता है. इसकी वजह यह है कि मॉडल की क्वालिटी का पूरी तरह से सिर्फ़ अंग्रेज़ी कॉन्टेंट पर ही टेस्ट किया गया था. हम इस पाबंदी को हटा देंगे. ऐसा तब होगा, जब हम क्वालिटी और सुरक्षा के लिए अन्य भाषाओं की जांच कर लेंगे और एपीआई ज़्यादा से ज़्यादा लोगों के लिए उपलब्ध हो जाएगा.
localhost के लिए सहायता जोड़ना
ऑरिजिन ट्रायल के दौरान, localhost
पर Summarizer API को ऐक्सेस करने के लिए, आपके पास Chrome Canary होना चाहिए. इसके बाद, यह तरीका अपनाएं:
chrome://flags/#summarization-api-for-gemini-nano
पर जाएं.- चालू है को चुनें.
- फिर से लॉन्च करें पर क्लिक करें या Chrome को रीस्टार्ट करें.
Summarizer API का इस्तेमाल करना
सबसे पहले, सुविधा का पता लगाने की सुविधा चलाकर देखें कि ब्राउज़र में Summarizer API काम करता है या नहीं.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
मॉडल डाउनलोड
Summarizer API, अच्छी क्वालिटी की खास जानकारी जनरेट करने के लिए ट्रेन किए गए मॉडल का इस्तेमाल करता है. एपीआई, Chrome में पहले से मौजूद होता है. हालांकि, जब कोई वेबसाइट पहली बार एपीआई का इस्तेमाल करती है, तो मॉडल को अलग से डाउनलोड किया जाता है.
यह पता लगाने के लिए कि मॉडल इस्तेमाल के लिए तैयार है या नहीं, असाइनोक्रोनस
Summarizer.availability()
फ़ंक्शन को कॉल करें. यह इन वैल्यू के साथ एक प्रॉमिस दिखाता है.
"unavailable"
का मतलब है कि लागू करने की सुविधा, अनुरोध किए गए विकल्पों के साथ काम नहीं करती."downloadable"
का मतलब है कि लागू करने की सुविधा, अनुरोध किए गए विकल्पों के साथ काम करती है. हालांकि, इसके लिए ब्राउज़र को कुछ डाउनलोड करना होगा. जैसे, Chrome के मामले में Gemini Nano मॉडल या मॉडल के लिए फ़ाइन-ट्यूनिंग."downloading"
का मतलब है कि लागू करने की सुविधा, अनुरोध किए गए विकल्पों के साथ काम करती है. हालांकि, आगे बढ़ने से पहले, उसे डाउनलोड की जा रही फ़ाइल को पूरा डाउनलोड करना होगा."available"
का मतलब है कि लागू करने की सुविधा, अनुरोध किए गए विकल्पों के साथ काम करती है और 'खास जानकारी देने वाला टूल' आगे बढ़ सकता है.
मॉडल डाउनलोड करने और खास जानकारी देने वाला टूल बनाने के लिए, एक साथ काम न करने वाले Summarizer.create()
फ़ंक्शन को कॉल करें. अगर availability()
के लिए जवाब downloadable
या downloading
मिला है, तो डाउनलोड की प्रोग्रेस सुनना सबसे सही तरीका है. इस तरह, उपयोगकर्ता को यह जानकारी दी जा सकती है कि डाउनलोड होने में समय लग सकता है.
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
एपीआई फ़ंक्शन
create()
फ़ंक्शन की मदद से, अपनी ज़रूरतों के हिसाब से नया समरीज़र ऑब्जेक्ट कॉन्फ़िगर किया जा सकता है. यह वैकल्पिक options
ऑब्जेक्ट लेता है, जिसमें ये पैरामीटर होते हैं:
sharedContext
: शेयर किया गया अतिरिक्त कॉन्टेक्स्ट, जिससे खास जानकारी देने वाली सुविधा को मदद मिल सकती है.type
: खास जानकारी देने का टाइप. इसकी वैल्यू के तौर परkey-points
(डिफ़ॉल्ट),tl;dr
,teaser
, औरheadline
का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, नीचे दी गई टेबल देखें.format
: खास जानकारी देने का फ़ॉर्मैट. इसमेंmarkdown
(डिफ़ॉल्ट) औरplain-text
वैल्यू इस्तेमाल की जा सकती हैं.length
: खास जानकारी की लंबाई. इसके लिए,short
,medium
(डिफ़ॉल्ट), औरlong
वैल्यू इस्तेमाल की जा सकती हैं. मांगे गएtype
के आधार पर, इन लंबाई का मतलब अलग-अलग होता है. उदाहरण के लिए, Chrome में लागू करने पर, मुख्य बातों की खास जानकारी में तीन बुलेट पॉइंट होते हैं और खास जानकारी में एक वाक्य होता है.
यहां दी गई टेबल में, खास जानकारी के अलग-अलग टाइप और उनकी लंबाई के बारे में बताया गया है. लंबाई, ज़्यादा से ज़्यादा वैल्यू दिखाती है, क्योंकि कभी-कभी नतीजे छोटे हो सकते हैं.
टाइप | मतलब | लंबाई | ||||||
---|---|---|---|---|---|---|---|---|
"tl;dr" |
खास जानकारी कम शब्दों में और सीधे तौर पर दी जानी चाहिए. इससे, व्यस्त पाठक को इनपुट की खास जानकारी तुरंत मिल जाती है. |
|
||||||
"teaser" |
खास जानकारी में, इनपुट के सबसे दिलचस्प या ध्यान खींचने वाले हिस्सों पर फ़ोकस किया जाना चाहिए. ऐसा इसलिए किया जाता है, ताकि पाठक को ज़्यादा पढ़ने के लिए बढ़ावा दिया जा सके. |
|
||||||
"key-points" |
जवाब में, इनपुट से सबसे ज़रूरी बातों को बुलेट वाली सूची के तौर पर शामिल किया जाना चाहिए. |
|
||||||
"headline" |
जवाब में, एक ही वाक्य में इनपुट का मुख्य हिस्सा शामिल होना चाहिए. यह वाक्य, लेख की हेडलाइन के फ़ॉर्मैट में होना चाहिए. |
|
इस उदाहरण में, खास जानकारी देने वाले टूल को शुरू करने का तरीका बताया गया है.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
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 की जांच अभी शुरू करें और अपने सुझाव/राय/शिकायत शेयर करें. आपके सुझाव, राय या शिकायत से, इस एपीआई के आने वाले वर्शन और पहले से मौजूद सभी एआई एपीआई को बनाने और लागू करने के तरीके पर सीधा असर पड़ सकता है.
- Chrome पर इस सुविधा को लागू करने के बारे में सुझाव/राय देने या शिकायत करने के लिए, गड़बड़ी की शिकायत या सुविधा का अनुरोध करें.
- GitHub पर किसी मौजूदा समस्या पर टिप्पणी करके या कोई नई समस्या खोलकर, Summarizer API के डिज़ाइन के बारे में चर्चा करें.
- वेब इनक्यूबेटर कम्यूनिटी ग्रुप में शामिल होकर, स्टैंडर्ड बनाने की प्रोसेस में हिस्सा लें.