Rewriter API

पब्लिश होने की तारीख: 20 मई, 2025

ज़्यादा जानकारी देने वाला वीडियो वेब एक्सटेंशन Chrome स्टेटस मकसद
GitHub ऑरिजिन ट्रायल ऑरिजिन ट्रायल ऑरिजिन ट्रायल ऑरिजिन ट्रायल देखें एक्सपेरिमेंट करने का इरादा

टेक्स्ट को फिर से लिखने वाले एपीआई की मदद से, टेक्स्ट में बदलाव किया जा सकता है और उसे फिर से व्यवस्थित किया जा सकता है. यह एपीआई और Writer API, लिखने में मदद करने वाले एपीआई के सुझाव का हिस्सा हैं.

इन एपीआई की मदद से, उपयोगकर्ताओं के बनाए गए कॉन्टेंट को बेहतर बनाया जा सकता है.

उपयोग के उदाहरण

मौजूदा टेक्स्ट को बेहतर बनाने के लिए, उसे छोटा या बड़ा करें या उसकी टोन बदलें. उदाहरण के लिए, ये काम किए जा सकते हैंः

  • किसी छोटे ईमेल को दोबारा लिखो, ताकि वह ज़्यादा विनम्र और औपचारिक लगे.
  • अन्य खरीदारों को सुझाव/राय समझने में मदद करने या आपत्तिजनक कॉन्टेंट हटाने के लिए, खरीदारों की समीक्षाओं में बदलाव करने का सुझाव दें.
  • कुछ दर्शकों की उम्मीदों के मुताबिक कॉन्टेंट को फ़ॉर्मैट करें.

क्या आपको इस्तेमाल का उदाहरण नहीं मिल रहा है? अपने सुझाव या राय देने के लिए, अर्ली प्रीव्यू प्रोग्राम में शामिल हों.

अपनी प्रोफ़ाइल बनाना शुरू करें

Rewriter API के ऑरिजिन ट्रायल में शामिल हों. यह Chrome 137 से 142 तक काम करता है.

हार्डवेयर से जुड़ी ज़रूरी शर्तें देखें

Chrome में इन एपीआई का इस्तेमाल करके सुविधाएं चलाने वाले डेवलपर और उपयोगकर्ताओं के लिए, ये ज़रूरी शर्तें लागू होती हैं. अन्य ब्राउज़र के लिए, ऑपरेटिंग सिस्टम की अलग-अलग ज़रूरी शर्तें हो सकती हैं.

Language Detector और Translator API, डेस्कटॉप पर Chrome में काम करते हैं. ये एपीआई, फ़ोन या टैबलेट पर काम नहीं करते. Prompt API, Summarizer API, Writer API, और Rewriter API, Chrome में तब काम करते हैं, जब ये शर्तें पूरी होती हैं:

  • ऑपरेटिंग सिस्टम: Windows 10 या 11; macOS 13+ (Ventura और उसके बाद के वर्शन); या Linux. Android, iOS, और ChromeOS के लिए Chrome में, Gemini Nano का इस्तेमाल करने वाले एपीआई अभी काम नहीं करते.
  • स्टोरेज: जिस वॉल्यूम में आपकी Chrome प्रोफ़ाइल है उसमें कम से कम 22 जीबी खाली जगह होनी चाहिए.
  • जीपीयू: इसमें कम से कम 4 जीबी वीआरएएम होना चाहिए.
  • नेटवर्क: अनलिमिटेड डेटा या बिना पाबंदी वाला कनेक्शन.

Gemini Nano का सटीक साइज़ अलग-अलग हो सकता है, क्योंकि ब्राउज़र मॉडल को अपडेट करता है. मौजूदा साइज़ जानने के लिए, chrome://on-device-internals पर जाएं और मॉडल की स्थिति पर जाएं. मॉडल का साइज़ पता करने के लिए, सूची में दिया गया फ़ाइल पाथ खोलें.

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

Rewriter API, Writer API के साथ मिलकर ऑरिजिन ट्रायल में उपलब्ध है. इन एपीआई का इस्तेमाल शुरू करने के लिए:

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

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

लोकल होस्ट के लिए सहायता जोड़ें

ऑरिजिन ट्रायल के दौरान, लोकल होस्ट पर Writer और Rewriter API को ऐक्सेस करने के लिए, आपको Chrome को नए वर्शन में अपडेट करना होगा. फिर, इन स्तरो का पालन करें:

  1. chrome://flags/#rewriter-api-for-gemini-nano पर जाएं.
  2. चालू है को चुनें.
  3. फिर से लॉन्च करें पर क्लिक करें या Chrome को रीस्टार्ट करें.

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

सबसे पहले, सुविधा का पता लगाने की प्रोसेस चलाएं. इससे यह पता चलेगा कि ब्राउज़र इन एपीआई के साथ काम करता है या नहीं.

if ('Rewriter' in self) {
  // The Rewriter API is supported.
}

Rewriter API और पहले से मौजूद अन्य सभी एआई एपीआई, ब्राउज़र में इंटिग्रेट किए गए हैं. जब कोई वेबसाइट पहली बार एआई एपीआई का इस्तेमाल करती है, तब Gemini Nano को अलग से डाउनलोड किया जाता है. अगर किसी उपयोगकर्ता ने पहले से ही किसी बिल्ट-इन एपीआई के साथ इंटरैक्ट किया है, तो इसका मतलब है कि उसने मॉडल को अपने ब्राउज़र में डाउनलोड कर लिया है.

यह पता लगाने के लिए कि मॉडल इस्तेमाल करने के लिए तैयार है या नहीं, एसिंक्रोनस Rewriter.availability() फ़ंक्शन को कॉल करें. अगर availability() का जवाब downloadable था, तो डाउनलोड होने की प्रोसेस के बारे में सुनो और उपयोगकर्ता को इसकी जानकारी दो. ऐसा इसलिए, क्योंकि डाउनलोड होने में समय लग सकता है.

const availability = await Rewriter.availability();

मॉडल डाउनलोड करने और रीराइटर को शुरू करने के लिए, उपयोगकर्ता के ऐक्टिवेशन की जांच करें और Rewriter.create() फ़ंक्शन को कॉल करें.

const rewriter = await Rewriter.create({
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

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

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

  • tone: लिखने का टोन से कॉन्टेंट की स्टाइल, किरदार या रवैये का पता चलता है. इसकी वैल्यू more-formal, as-is (डिफ़ॉल्ट) या more-casual पर सेट की जा सकती है.
  • format: आउटपुट फ़ॉर्मैटिंग. इसकी मान्य वैल्यू as-is (डिफ़ॉल्ट), markdown, और plain-text हैं.
  • length: आउटपुट की लंबाई. इसके लिए, shorter, as-is (डिफ़ॉल्ट), और longer वैल्यू का इस्तेमाल किया जा सकता है.
  • sharedContext: एक से ज़्यादा कॉन्टेंट को फिर से लिखने के दौरान, शेयर किए गए कॉन्टेक्स्ट से मॉडल को ऐसा कॉन्टेंट बनाने में मदद मिल सकती है जो आपकी उम्मीदों के मुताबिक हो.

यहां दिए गए उदाहरण में, rewriter ऑब्जेक्ट को शुरू करने का तरीका बताया गया है:

const options = {
  sharedContext: 'This is an email to acquaintances about an upcoming event.',
  tone: 'more-casual',
  format: 'plain-text',
  length: 'shorter',
};

const available = await Rewriter.availability();
let rewriter;
if (available === 'unavailable') {
  // The Rewriter API isn't usable.
  return;
}
if (available === 'available') {
  // The Rewriter API can be used immediately .
  rewriter = await Rewriter.create(options);
} else {
  // The Rewriter can be used after the model is downloaded.
  rewriter = await Rewriter.create(options);
  rewriter.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
}

फिर से लिखना शुरू करें

मॉडल से कॉन्टेंट पाने के दो तरीके हैं: नॉन-स्ट्रीमिंग और स्ट्रीमिंग.

नॉन-स्ट्रीमिंग आउटपुट

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

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

// Non-streaming
const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const result = await rewriter.rewrite(reviewEl.textContent, {
  context: "Avoid any toxic language and be as constructive as possible."
});

स्ट्रीम को फिर से लिखने का आउटपुट

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

स्ट्रीमिंग रीराइटर पाने के लिए, rewriteStreaming() फ़ंक्शन को कॉल करें और स्ट्रीम में मौजूद टेक्स्ट के उपलब्ध सेगमेंट पर दोहराएं. मॉडल को बैकग्राउंड की जानकारी देने के लिए, context जोड़ा जा सकता है. हालांकि, ऐसा करना ज़रूरी नहीं है. इससे मॉडल को आउटपुट के लिए आपकी उम्मीदों को बेहतर तरीके से पूरा करने में मदद मिल सकती है.

const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});

const stream = rewriter.rewriteStreaming(reviewEl.textContent, {
  context: "Avoid any toxic language and be as constructive as possible.",
  tone: "more-casual",
});

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

एक से ज़्यादा टास्क के लिए कॉन्टेक्स्ट शेयर करना

एक से ज़्यादा तरह का कॉन्टेंट जनरेट करने के लिए, rewriter का इस्तेमाल किया जा सकता है. ऐसे में, sharedContext को जोड़ना फ़ायदेमंद होता है. उदाहरण के लिए, आपको समीक्षा करने वालों को टिप्पणियों में बेहतर सुझाव देने में मदद करनी हो सकती है.

// Shared context and per writing task context
const rewriter = await Rewriter.create({
  sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});

const stream = rewriter.rewriteStreaming(
  "Love all this work on generative AI at Google! So much to learn and so many new things I can do!",
  {
    context: "The request comes from someone working at a startup providing an e-commerce CMS solution.",
    tone: "more-casual",
  }
);

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

टेक्स्ट को फिर से लिखने वाले टूल का फिर से इस्तेमाल करना

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

// Reusing a rewriter
const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});

const rewrittenReviews = await Promise.all(
  Array.from(
    document.querySelectorAll("#reviews > .review"),
    (reviewEl) => rewriter.rewrite(reviewEl.textContent, {
      context: "Avoid any toxic language and be as constructive as possible.",
      tone: "more-casual",
    })
  ),
);

टेक्स्ट फिर से लिखने की सुविधा बंद करना

फिर से लिखने की प्रोसेस को खत्म करने के लिए, कंट्रोलर को बंद करें और rewriter को मिटाएं.

// Stop a rewriter
const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const rewriter = await Rewriter.create({ signal: controller.signal });
await rewriter.rewrite(reviewEl.textContent, { signal: controller.signal });

// Destroy a rewriter
rewriter.destroy();

डेमो

जुड़ें और सुझाव/राय दें या शिकायत करें

Writer और Rewriter API पर फ़िलहाल चर्चा चल रही है. इसलिए, आने वाले समय में इनमें बदलाव हो सकता है. अगर आपने इस एपीआई को आज़माया है और आपको कोई सुझाव, शिकायत या राय देनी है, तो हमें ज़रूर बताएं.

  • एक्सप्लेनर पढ़ें, सवाल पूछें, और चर्चा में हिस्सा लें.
  • Chrome Status पर जाकर, Chrome के लिए लागू करने की प्रोसेस देखें.
  • अर्ली प्रीव्यू प्रोग्राम में शामिल हों, ताकि आपको नए एपीआई के बारे में पहले से पता चल सके. साथ ही, हमारी ईमेल पाने वाली सूची का ऐक्सेस मिल सके.
  • अगर आपको Chrome में इस सुविधा को लागू करने के बारे में कोई सुझाव, शिकायत या राय देनी है, तो Chromium बग फ़ाइल करें.

ब्राउज़र में, पहले से मौजूद सभी एआई एपीआई के बारे में जानें. ये एपीआई, Gemini Nano और अन्य विशेषज्ञ मॉडल जैसे मॉडल का इस्तेमाल करते हैं.