রিরাইটার API

প্রকাশিত: ২০ মে, ২০২৫

ব্যাখ্যাকারী ওয়েব এক্সটেনশন Chrome স্ট্যাটাস অভিপ্রায়
গিটহাব অরিজিন ট্রায়াল অরিজিন ট্রায়াল অরিজিন ট্রায়াল অরিজিন ট্রায়াল দৃশ্য পরীক্ষা-নিরীক্ষার অভিপ্রায়

রিরাইটার এপিআই আপনাকে টেক্সট সংশোধন এবং পুনর্গঠন করতে সাহায্য করে। এই এপিআই এবং রাইটার এপিআই রাইটিং অ্যাসিস্ট্যান্স এপিআই প্রস্তাবনার অংশ।

এই API গুলি আপনাকে ব্যবহারকারীদের দ্বারা তৈরি কন্টেন্ট উন্নত করতে সাহায্য করতে পারে।

ব্যবহারের ক্ষেত্রে

বিদ্যমান লেখাটিকে আরও লম্বা বা ছোট করে, অথবা সুর পরিবর্তন করে পরিমার্জন করুন। উদাহরণস্বরূপ, আপনি এটি করতে পারেন:

  • একটি ছোট ইমেল পুনরায় লিখুন যাতে এটি আরও ভদ্র এবং আনুষ্ঠানিক শোনায়।
  • অন্যান্য গ্রাহকদের প্রতিক্রিয়া বুঝতে বা বিষাক্ততা দূর করতে সহায়তা করার জন্য গ্রাহক পর্যালোচনাগুলিতে সম্পাদনা করার পরামর্শ দিন।
  • নির্দিষ্ট দর্শকদের প্রত্যাশা পূরণের জন্য বিষয়বস্তু বিন্যাস করুন।

আপনার ব্যবহারের কেস কি অনুপস্থিত? আপনার প্রতিক্রিয়া জানাতে প্রারম্ভিক প্রিভিউ প্রোগ্রামে যোগ দিন।

শুরু করুন

Chrome 137 থেকে 142 পর্যন্ত চলমান Rewriter API origin ট্রায়ালে যোগ দিন

হার্ডওয়্যারের প্রয়োজনীয়তাগুলি পর্যালোচনা করুন

Chrome-এ এই API গুলি ব্যবহার করে বৈশিষ্ট্যগুলি পরিচালনাকারী ডেভেলপার এবং ব্যবহারকারীদের জন্য নিম্নলিখিত প্রয়োজনীয়তাগুলি বিদ্যমান। অন্যান্য ব্রাউজারগুলির বিভিন্ন অপারেটিং প্রয়োজনীয়তা থাকতে পারে।

ল্যাঙ্গুয়েজ ডিটেক্টর এবং ট্রান্সলেটর এপিআই ডেস্কটপে ক্রোমে কাজ করে। এই এপিআইগুলি মোবাইল ডিভাইসে কাজ করে না। প্রম্পট এপিআই, সামারাইজার এপিআই, রাইটার এপিআই, রিরাইটার এপিআই এবং প্রুফরিডার এপিআই ক্রোমে কাজ করে যখন নিম্নলিখিত শর্তগুলি পূরণ হয়:

  • অপারেটিং সিস্টেম : Windows 10 অথবা 11; macOS 13+ (Ventura এবং পরবর্তী); Linux; অথবা ChromeOS (প্ল্যাটফর্ম 16389.0.0 এবং পরবর্তী) Chromebook Plus ডিভাইসে। Android, iOS এবং Chromebook Plus নয় এমন ডিভাইসে ChromeOS এখনও Gemini Nano ব্যবহার করে এমন API দ্বারা সমর্থিত নয়।
  • স্টোরেজ : আপনার Chrome প্রোফাইল ধারণকারী ভলিউমে কমপক্ষে ২২ গিগাবাইট খালি জায়গা।
  • GPU অথবা CPU : অন্তর্নির্মিত মডেলগুলি GPU অথবা CPU দিয়ে চলতে পারে।
    • জিপিইউ : ৪ জিবি-র বেশি ভিআরএএম।
    • সিপিইউ : ১৬ জিবি বা তার বেশি র‍্যাম এবং ৪টি সিপিইউ কোর বা তার বেশি।
  • নেটওয়ার্ক : সীমাহীন ডেটা অথবা একটি মিটারবিহীন সংযোগ।

ব্রাউজার মডেল আপডেট করার সাথে সাথে জেমিনি ন্যানোর সঠিক আকার পরিবর্তিত হতে পারে। বর্তমান আকার নির্ধারণ করতে, chrome://on-device-internals দেখুন।

অরিজিন ট্রায়ালের জন্য সাইন আপ করুন

রিরাইটার এপিআই রাইটার এপিআই-এর সাথে যৌথ অরিজিন ট্রায়ালে উপলব্ধ। এই এপিআইগুলি ব্যবহার শুরু করতে:

  1. গুগলের জেনারেটিভ এআই নিষিদ্ধ ব্যবহারের নীতি স্বীকার করুন।
  2. রিরাইটার এপিআই অরিজিন ট্রায়ালে যান।
  3. "রেজিস্টার" এ ক্লিক করুন এবং ফর্মটি পূরণ করুন। ওয়েব অরিজিন ফিল্ডে, আপনার অরিজিন বা এক্সটেনশন আইডি, chrome-extension://YOUR_EXTENSION_ID প্রদান করুন।
  4. জমা দিতে, নিবন্ধন করুন এ ক্লিক করুন।
  5. প্রদত্ত টোকেনটি কপি করুন, এবং এটি আপনার অরিজিনের প্রতিটি অংশগ্রহণকারী ওয়েব পৃষ্ঠায় যোগ করুন অথবা আপনার এক্সটেনশন ম্যানিফেস্টে অন্তর্ভুক্ত করুন।
  6. রিরাইটার এপিআই ব্যবহার শুরু করুন।

অরিজিন ট্রায়াল কীভাবে শুরু করবেন সে সম্পর্কে আরও জানুন।

লোকালহোস্টে সাপোর্ট যোগ করুন

অরিজিন ট্রায়ালের সময় লোকালহোস্টে রাইটার এবং রিরাইটার এপিআই অ্যাক্সেস করতে, আপনাকে Chrome কে সর্বশেষ সংস্করণে আপডেট করতে হবে। তারপর, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. chrome://flags/#rewriter-api-for-gemini-nano এ যান।
  2. সক্রিয় নির্বাচন করুন।
  3. Chrome পুনরায় চালু করুন বা পুনরায় চালু করুন ক্লিক করুন।

রিরাইটার এপিআই ব্যবহার করুন

প্রথমে, ব্রাউজারটি এই API গুলিকে সমর্থন করে কিনা তা দেখতে বৈশিষ্ট্য সনাক্তকরণ চালান।

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

রিরাইটার এপিআই এবং অন্যান্য সমস্ত বিল্ট-ইন এআই এপিআই ব্রাউজারে ইন্টিগ্রেটেড। কোনও ওয়েবসাইট প্রথমবার বিল্ট-ইন এআই এপিআই ব্যবহার করলে জেমিনি ন্যানো আলাদাভাবে ডাউনলোড করা হয়। বাস্তবে, যদি কোনও ব্যবহারকারী ইতিমধ্যেই বিল্ট-ইন এপিআইয়ের সাথে ইন্টারঅ্যাক্ট করে থাকেন, তাহলে তারা তাদের ব্রাউজারে মডেলটি ডাউনলোড করেছেন।

মডেলটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে, অ্যাসিঙ্ক্রোনাস 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}%`);
    });
  }
});

API ফাংশন

create() ফাংশন আপনাকে একটি নতুন rewriter অবজেক্ট কনফিগার করতে দেয়। এটি নিম্নলিখিত প্যারামিটার সহ একটি ঐচ্ছিক 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);
  });
}

প্রত্যাশিত ভাষা বরাদ্দ করুন

রিরাইটার এপিআই একাধিক ভাষা সমর্থন করে। আপনার সেশন তৈরি করার সময় প্রত্যাশিত ইনপুট, আউটপুট এবং প্রসঙ্গ ভাষা সেট করুন। যদি ব্রাউজার কোনও নির্দিষ্ট ভাষার সংমিশ্রণ সমর্থন করতে না পারে তবে এটি ব্রাউজারকে অনুরোধ প্রত্যাখ্যান করতে দেয়।

const rewriter = await Rewriter.create({
  tone: "more-formal",
  expectedInputLanguages: ["en", "ja", "es"],
  expectedContextLanguages: ["en", "ja", "es"],
  outputLanguage: "es",
  sharedContext: "These are requests to rewrite messages to teachers in a
    Spanish language program, by students who may speak Spanish, Japanese, or
    English. Staff expect questions to be written in Spanish."
});

পুনর্লিখন শুরু করুন

মডেল থেকে কন্টেন্ট আউটপুট করার দুটি উপায় আছে: নন-স্ট্রিমিং এবং স্ট্রিমিং।

নন-স্ট্রিমিং আউটপুট

নন-স্ট্রিমিং পুনর্লিখনের মাধ্যমে, মডেলটি সম্পূর্ণ ইনপুট প্রক্রিয়া করে এবং তারপর আউটপুট তৈরি করে।

নন-স্ট্রিমিং আউটপুট পেতে, অ্যাসিঙ্ক্রোনাস 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();

ডেমো

অনুমতি নীতি, আইফ্রেম এবং ওয়েব ওয়ার্কার

ডিফল্টরূপে, রিরাইটার API শুধুমাত্র শীর্ষ-স্তরের উইন্ডো এবং তাদের একই-অরিজিন আইফ্রেমগুলিতে উপলব্ধ। অনুমতি নীতি allow="" বৈশিষ্ট্য ব্যবহার করে ক্রস-অরিজিন আইফ্রেমগুলিতে API-এর অ্যাক্সেস অর্পণ করা যেতে পারে:

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Rewriter API by
  setting the `allow="rewriter"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="rewriter"></iframe>

ওয়েব ওয়ার্কার্সে রিরাইটার এপিআই উপলব্ধ নেই। অনুমতি নীতির স্থিতি পরীক্ষা করার জন্য প্রতিটি কর্মীর জন্য একটি দায়িত্বশীল নথি স্থাপনের জটিলতার কারণে এটি ঘটে।

অংশগ্রহণ করুন এবং মতামত শেয়ার করুন

রাইটার এবং রিরাইটার এপিআইগুলি সক্রিয় আলোচনার অধীনে রয়েছে এবং ভবিষ্যতে পরিবর্তন হতে পারে। আপনি যদি এই এপিআইটি ব্যবহার করে দেখেন এবং আপনার প্রতিক্রিয়া থাকে, তাহলে আমরা এটি শুনতে আগ্রহী।

ব্রাউজারে জেমিনি ন্যানো এবং অন্যান্য বিশেষজ্ঞ মডেল সহ মডেল ব্যবহার করে এমন সমস্ত অন্তর্নির্মিত AI API আবিষ্কার করুন।