প্রকাশিত: ২২ অক্টোবর, ২০২৫
| ব্যাখ্যাকারী | ওয়েব | এক্সটেনশন | ক্রোম স্ট্যাটাস | উদ্দেশ্য |
|---|---|---|---|---|
| গিটহাব | দেখুন | পরীক্ষা করার অভিপ্রায় |
রিরাইটার এপিআই আপনাকে টেক্সট সংশোধন ও পুনর্গঠন করতে সাহায্য করে। এই এপিআই এবং রাইটার এপিআই, ‘রাইটিং অ্যাসিস্ট্যান্স এপিআই’ প্রস্তাবনার অংশ।
এই এপিআইগুলো ব্যবহারকারীদের তৈরি করা কন্টেন্টের মানোন্নয়নে আপনাকে সাহায্য করতে পারে।
ব্যবহারের ক্ষেত্র
বিদ্যমান লেখাটিকে দীর্ঘ বা সংক্ষিপ্ত করে, অথবা এর সুর পরিবর্তন করে পরিমার্জন করুন। উদাহরণস্বরূপ, আপনি করতে পারেন:
- একটি সংক্ষিপ্ত ইমেলকে এমনভাবে পুনর্লিখন করুন যাতে এটি আরও ভদ্র ও আনুষ্ঠানিক শোনায়।
- অন্য গ্রাহকদের মতামত বুঝতে সাহায্য করতে বা ক্ষতিকর মন্তব্য দূর করতে গ্রাহক পর্যালোচনায় সম্পাদনার পরামর্শ দিন।
- নির্দিষ্ট দর্শকগোষ্ঠীর প্রত্যাশা পূরণের জন্য বিষয়বস্তু বিন্যাস করুন।
আপনার ব্যবহারের ক্ষেত্রটি কি অনুপস্থিত? আপনার মতামত জানাতে আর্লি প্রিভিউ প্রোগ্রামে যোগ দিন।
শুরু করুন
Rewriter API অরিজিন ট্রায়ালে যোগ দিন , যা Chrome 137 থেকে 148-এ চলছে।
হার্ডওয়্যারের প্রয়োজনীয়তা পর্যালোচনা করুন
ক্রোমে এই এপিআইগুলো ব্যবহার করে ফিচার পরিচালনা করেন এমন ডেভেলপার এবং ব্যবহারকারীদের জন্য নিম্নলিখিত শর্তাবলী প্রযোজ্য। অন্যান্য ব্রাউজারের ক্ষেত্রে পরিচালনার শর্তাবলী ভিন্ন হতে পারে।
ল্যাঙ্গুয়েজ ডিটেক্টর এবং ট্রান্সলেটর এপিআইগুলো ডেস্কটপের ক্রোমে কাজ করে। এই এপিআইগুলো মোবাইল ডিভাইসে কাজ করে না।
নিম্নলিখিত শর্তগুলো পূরণ হলে Prompt API , Summarizer API , Writer API , Rewriter API , এবং Proofreader API ক্রোমে কাজ করে:
- অপারেটিং সিস্টেম : উইন্ডোজ ১০ বা ১১; ম্যাকওএস ১৩+ (ভেনচুরা এবং তার পরবর্তী সংস্করণ); লিনাক্স; অথবা ক্রোমবুক প্লাস ডিভাইসে ক্রোমওএস (প্ল্যাটফর্ম ১৬৩৮৯.০.০ এবং তার পরবর্তী সংস্করণ)। জেমিনি ন্যানো ব্যবহারকারী এপিআইগুলো দ্বারা নন-ক্রোমবুক প্লাস ডিভাইসের অ্যান্ড্রয়েড, আইওএস এবং ক্রোমওএস-এর জন্য ক্রোম এখনও সমর্থিত নয়।
- স্টোরেজ : আপনার ক্রোম প্রোফাইল ধারণকারী ভলিউমে কমপক্ষে ২২ জিবি খালি জায়গা থাকতে হবে।
- জিপিইউ বা সিপিইউ : বিল্ট-ইন মডেলগুলো জিপিইউ বা সিপিইউ দিয়ে চলতে পারে।
- জিপিইউ : অবশ্যই ৪ জিবির বেশি ভিআরএএম থাকতে হবে।
- সিপিইউ : ১৬ জিবি বা তার বেশি র্যাম এবং ৪টি বা তার বেশি সিপিইউ কোর।
- দ্রষ্টব্য : অডিও ইনপুট সহ প্রম্পট এপিআই ব্যবহার করার জন্য একটি জিপিইউ প্রয়োজন।
- নেটওয়ার্ক : আনলিমিটেড ডেটা অথবা আনমিটারড কানেকশন।
ব্রাউজার মডেল আপডেট করার কারণে জেমিনি ন্যানো-র সঠিক আকার পরিবর্তিত হতে পারে। বর্তমান আকার জানতে, chrome://on-device-internals ওয়েবসাইটে যান।
অরিজিন ট্রায়ালের জন্য সাইন আপ করুন
রিরাইটার এপিআই, রাইটার এপিআই-এর সাথে একটি যৌথ অরিজিন ট্রায়ালে উপলব্ধ। এই এপিআইগুলো ব্যবহার শুরু করতে:
- গুগলের জেনারেটিভ এআই-এর নিষিদ্ধ ব্যবহার নীতিমালা স্বীকার করুন।
- Rewriter API অরিজিন ট্রায়ালে যান।
- রেজিস্টার-এ ক্লিক করুন এবং ফর্মটি পূরণ করুন। ওয়েব অরিজিন ফিল্ডে আপনার অরিজিন বা এক্সটেনশন আইডি দিন,
chrome-extension://YOUR_EXTENSION_ID। - জমা দিতে, রেজিস্টার-এ ক্লিক করুন।
- প্রদত্ত টোকেনটি কপি করুন এবং আপনার অরিজিনের প্রতিটি অংশগ্রহণকারী ওয়েব পেজে এটি যোগ করুন অথবা আপনার এক্সটেনশন ম্যানিফেস্টে অন্তর্ভুক্ত করুন।
- রিরাইটার এপিআই ব্যবহার করা শুরু করুন।
অরিজিন ট্রায়াল কীভাবে শুরু করবেন সে সম্পর্কে আরও জানুন।
লোকালহোস্টে সমর্থন যোগ করুন
লোকালহোস্টে রিরাইটার এপিআই অ্যাক্সেস করতে, ক্রোম ফ্ল্যাগ ব্যবহার করুন:
-
chrome://flags/#optimization-guide-on-device-modelEnabled- এ সেট করুন। - নিম্নলিখিত ফ্ল্যাগগুলিকে Enabled অথবা Enabled Multilingual- এ সেট করুন:
-
chrome://flags/#prompt-api-for-gemini-nano-multimodal-input -
chrome://flags/#writer-api-for-gemini-nano
-
- রিলঞ্চ-এ ক্লিক করুন অথবা ক্রোম রিস্টার্ট করুন।
রিরাইটার এপিআই ব্যবহার করুন
প্রথমে, ব্রাউজারটি এই এপিআইগুলো সমর্থন করে কিনা তা দেখতে ফিচার ডিটেকশন চালান।
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}%`);
});
}
});
এপিআই ফাংশন
` create() ` ফাংশনটি আপনাকে একটি নতুন `rewriter` অবজেক্ট কনফিগার করতে দেয়। এটি একটি ঐচ্ছিক options অবজেক্ট গ্রহণ করে, যার প্যারামিটারগুলো নিম্নরূপ:
-
tone: লেখার সুর বলতে বিষয়বস্তুর শৈলী, বৈশিষ্ট্য বা মনোভাবকে বোঝানো হয়। এর মানmore-formal,as-is’ (ডিফল্ট), বাmore-casualহিসেবে সেট করা যেতে পারে। -
format: আউটপুট ফরম্যাটিং, যেখানে অনুমোদিত মানগুলোas-is(ডিফল্ট),markdown, এবংplain-text। -
length: আউটপুটের দৈর্ঘ্য, যার অনুমোদিত মানগুলোshorter,as-is(ডিফল্ট), এবংlonger। -
sharedContext: একাধিক কন্টেন্ট পুনর্লিখন করার সময়, একটি shared context মডেলটিকে আপনার প্রত্যাশার সাথে আরও ভালোভাবে সামঞ্জস্যপূর্ণ কন্টেন্ট তৈরি করতে সাহায্য করতে পারে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি 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 যোগ করতে পারেন, যা আউটপুট সম্পর্কে আপনার প্রত্যাশা পূরণে মডেলকে আরও ভালোভাবে সাহায্য করতে পারে।
// Request-based
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();
ডেমো
অনুমতি নীতি, আইফ্রেম এবং ওয়েব ওয়ার্কার
ডিফল্টরূপে, রিরাইটার এপিআই শুধুমাত্র টপ-লেভেল উইন্ডো এবং তাদের সেম-অরিজিন আইফ্রেমগুলোর জন্য উপলব্ধ থাকে। পারমিশন পলিসি ` allow="" অ্যাট্রিবিউট ব্যবহার করে ক্রস-অরিজিন আইফ্রেমগুলোতে এই এপিআই-এর অ্যাক্সেস অর্পণ করা যেতে পারে।
<!--
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>
ওয়েব ওয়ার্কারগুলিতে রিরাইটার এপিআই (Rewriter API) উপলব্ধ নয়। এর কারণ হলো, পারমিশন পলিসি (Permissions Policy)-র অবস্থা পরীক্ষা করার জন্য প্রতিটি ওয়ার্কারের জন্য একটি দায়িত্বশীল ডকুমেন্ট তৈরি করার জটিলতা।
অংশগ্রহণ করুন এবং মতামত জানান
Writer এবং Rewriter API-গুলো নিয়ে সক্রিয় আলোচনা চলছে এবং ভবিষ্যতে এগুলোতে পরিবর্তন আসতে পারে। আপনি যদি এই API ব্যবহার করে কোনো মতামত দেন, তবে আমরা তা জানতে আগ্রহী।
- ব্যাখ্যাটি পড়ুন , প্রশ্ন করুন এবং আলোচনায় অংশগ্রহণ করুন।
- ক্রোমে রিরাইটার এপিআই-এর বাস্তবায়ন দেখতে ক্রোম স্ট্যাটাস পর্যালোচনা করুন ।
- ক্রোমের বাস্তবায়ন সম্পর্কে আপনার কোনো মতামত থাকলে, একটি ক্রোমিয়াম বাগ রিপোর্ট করুন।
- নতুন এপিআইগুলো আগে দেখার সুযোগ পেতে এবং আমাদের মেইলিং লিস্টে অ্যাক্সেস পেতে আর্লি প্রিভিউ প্রোগ্রামে যোগ দিন ।
ব্রাউজারে জেমিনি ন্যানো এবং অন্যান্য বিশেষজ্ঞ মডেলসহ বিভিন্ন মডেল ব্যবহারকারী সমস্ত বিল্ট-ইন এআই এপিআই সম্পর্কে জানুন।