প্রকাশিত: 20 মে, 2025
ব্যাখ্যাকারী | ওয়েব | এক্সটেনশন | ক্রোম স্ট্যাটাস | অভিপ্রায় |
---|---|---|---|---|
গিটহাব | দেখুন | পরীক্ষা করার অভিপ্রায় |
রিরাইটার API আপনাকে পাঠ্য সংশোধন এবং পুনর্গঠন করতে সহায়তা করে। এই API এবং Writer API হল রাইটিং অ্যাসিস্ট্যান্স API-এর প্রস্তাবের অংশ।
এই APIগুলি আপনাকে ব্যবহারকারীদের দ্বারা তৈরি সামগ্রী উন্নত করতে সাহায্য করতে পারে৷
কেস ব্যবহার করুন
বিদ্যমান পাঠ্যটিকে দীর্ঘ বা ছোট করে বা স্বর পরিবর্তন করে পরিমার্জন করুন। উদাহরণস্বরূপ, আপনি পারেন:
- একটি ছোট ইমেল পুনরায় লিখুন যাতে এটি আরও ভদ্র এবং আনুষ্ঠানিক শোনায়।
- অন্যান্য গ্রাহকদের প্রতিক্রিয়া বুঝতে বা বিষাক্ততা দূর করতে সহায়তা করার জন্য গ্রাহক পর্যালোচনাগুলিতে সম্পাদনা করার পরামর্শ দিন।
- নির্দিষ্ট দর্শকদের প্রত্যাশা পূরণের জন্য বিষয়বস্তু বিন্যাস করুন।
আপনার ব্যবহারের ক্ষেত্রে অনুপস্থিত? আপনার প্রতিক্রিয়া শেয়ার করার জন্য প্রাথমিক পূর্বরূপ প্রোগ্রামে যোগ দিন।
শুরু করুন
রিরাইটার API অরিজিন ট্রায়ালে যোগ দিন, Chrome 137 থেকে 142 পর্যন্ত চলমান।
হার্ডওয়্যার প্রয়োজনীয়তা পর্যালোচনা করুন
ল্যাঙ্গুয়েজ ডিটেক্টর এবং ট্রান্সলেটর এপিআই শুধুমাত্র ক্রোমে ডেস্কটপে কাজ করে।
প্রম্পট API, Summarizer API, Writer API, এবং Rewriter API Chrome-এ কাজ করে যখন নিম্নলিখিত শর্তগুলি পূরণ হয়:
- অপারেটিং সিস্টেম : উইন্ডোজ 10 বা 11; macOS 13+ (ভেন্টুরা এবং তার পরে); বা লিনাক্স। Android, iOS এবং ChromeOS-এর জন্য Chrome এখনও জেমিনি ন্যানো দ্বারা সমর্থিত আমাদের APIগুলি দ্বারা সমর্থিত নয়৷
- সঞ্চয়স্থান : আপনার Chrome প্রোফাইলে থাকা ভলিউমে কমপক্ষে 22 GB।
- GPU : কঠোরভাবে 4 GB এর বেশি VRAM।
- নেটওয়ার্ক : সীমাহীন ডেটা বা একটি আনমিটার সংযোগ।
এই প্রয়োজনীয়তাগুলি আপনার বিকাশের প্রক্রিয়াতে এবং আপনার ব্যবহারকারীদের জন্য বিদ্যমান যারা আপনার তৈরি করা বৈশিষ্ট্যগুলির সাথে কাজ করে৷
মূল বিচারের জন্য সাইন আপ করুন
রিরাইটার এপিআই রাইটার এপিআই-এর সাথে যৌথ মূল ট্রায়ালে পাওয়া যায়। এই APIs ব্যবহার শুরু করতে:
- Google-এর জেনারেটিভ এআই নিষিদ্ধ ব্যবহারের নীতি স্বীকার করুন।
- রিরাইটার API অরিজিন ট্রায়ালে যান।
- নিবন্ধন ক্লিক করুন এবং ফর্ম পূরণ করুন. ওয়েব অরিজিন ফিল্ডে, আপনার অরিজিন বা এক্সটেনশন ID,
chrome-extension://YOUR_EXTENSION_ID
প্রদান করুন। - জমা দিতে, নিবন্ধন ক্লিক করুন.
- প্রদত্ত টোকেনটি অনুলিপি করুন এবং এটিকে আপনার মূলের প্রতিটি অংশগ্রহণকারী ওয়েব পৃষ্ঠায় যোগ করুন বা এটিকে আপনার এক্সটেনশন ম্যানিফেস্টে অন্তর্ভুক্ত করুন৷
- রিরাইটার API ব্যবহার করা শুরু করুন।
অরিজিন ট্রায়ালগুলি কীভাবে শুরু করবেন সে সম্পর্কে আরও জানুন৷
লোকালহোস্টে সমর্থন যোগ করুন
অরিজিন ট্রায়ালের সময় লোকালহোস্টে রাইটার এবং রিরাইটার এপিআই অ্যাক্সেস করতে, আপনাকে অবশ্যই ক্রোমকে সর্বশেষ সংস্করণে আপডেট করতে হবে। তারপর, এই পদক্ষেপগুলি অনুসরণ করুন:
-
chrome://flags/#rewriter-api-for-gemini-nano
এ যান। - সক্রিয় নির্বাচন করুন।
- পুনরায় চালু করুন বা Chrome পুনরায় চালু করুন ক্লিক করুন।
রিরাইটার API ব্যবহার করুন
প্রথমে, ব্রাউজার এই API গুলি সমর্থন করে কিনা তা দেখতে বৈশিষ্ট্য সনাক্তকরণ চালান৷
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
রিরাইটার এপিআই, এবং অন্য সব বিল্ট-ইন এআই এপিআই ব্রাউজারে একত্রিত করা হয়েছে। জেমিনি ন্যানো প্রথমবার আলাদাভাবে ডাউনলোড করা হয় যখন কোনো ওয়েবসাইট বিল্ট-ইন AI API ব্যবহার করে। অনুশীলনে, যদি একজন ব্যবহারকারী ইতিমধ্যেই একটি অন্তর্নির্মিত API এর সাথে ইন্টারঅ্যাক্ট করে থাকে, তারা তাদের ব্রাউজারে মডেলটি ডাউনলোড করেছে।
মডেলটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে, অ্যাসিঙ্ক্রোনাস Rewriter.availability()
ফাংশনটি কল করুন। এটি একটি স্ট্রিং প্রদান করে যা চারটি সম্ভাব্য মান নিতে পারে:
-
unavailable
: ব্রাউজারটি রিরাইটার API সমর্থন করে, কিন্তু এই মুহূর্তে এটি ব্যবহার করা যাবে না। এটি বেশ কয়েকটি কারণে হতে পারে, যেমন মডেলটি ডাউনলোড করার জন্য অপর্যাপ্ত উপলব্ধ ডিস্ক স্থান। -
available
: ব্রাউজারটি রিরাইটার API সমর্থন করে এবং এটি এখনই ব্যবহার করা যেতে পারে। -
downloadable
: ব্রাউজারটি রিরাইটার এপিআই সমর্থন করে, তবে এটিকে প্রথমে মডেলটি ডাউনলোড করতে হবে। -
downloading
: ব্রাউজারটি রিরাইটার API সমর্থন করে এবং বর্তমানে মডেলটি ডাউনলোড করছে।
মডেল ডাউনলোড ট্রিগার করতে এবং রিরাইটার শুরু করতে, Rewriter.create()
ফাংশনটিতে কল করুন। যদি availability()
এর প্রতিক্রিয়া downloadable
হয়, তাহলে ডাউনলোডের অগ্রগতি শুনুন এবং ব্যবহারকারীকে জানান, কারণ ডাউনলোডে সময় লাগতে পারে।
const rewriter = await Rewriter.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API ফাংশন
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();
ডেমো
জড়িত এবং মতামত শেয়ার করুন
রাইটার এবং রিরাইটার এপিআই সক্রিয় আলোচনার অধীনে রয়েছে এবং ভবিষ্যতে পরিবর্তন হতে পারে। আপনি যদি এই APIটি চেষ্টা করেন এবং প্রতিক্রিয়া জানান, আমরা এটি শুনতে চাই।
- ব্যাখ্যাকারী পড়ুন , প্রশ্ন উত্থাপন করুন এবং আলোচনায় অংশগ্রহণ করুন।
- Chrome স্থিতিতে Chrome এর বাস্তবায়ন পর্যালোচনা করুন।
- নতুন APIs এবং আমাদের মেইলিং তালিকায় অ্যাক্সেসের জন্য প্রাথমিক পূর্বরূপ প্রোগ্রামে যোগ দিন ।
- Chrome এর বাস্তবায়ন সম্পর্কে আপনার মতামত থাকলে, একটি Chromium বাগ ফাইল করুন।
ব্রাউজারে জেমিনি ন্যানো এবং অন্যান্য বিশেষজ্ঞ মডেল সহ মডেলগুলি ব্যবহার করে এমন সমস্ত অন্তর্নির্মিত AI API আবিষ্কার করুন৷