বিল্ট-ইন এআই সহ ক্রোমে সংক্ষিপ্তকরণ

প্রকাশিত: নভেম্বর 11, 2024

কল্পনা করুন যে আপনি আপনার ব্যবহারকারীদের দীর্ঘ নিবন্ধ, জটিল নথি, বা এমনকি প্রাণবন্ত চ্যাট কথোপকথনগুলিকে সংক্ষিপ্ত এবং অন্তর্দৃষ্টিপূর্ণ সারাংশে ডিস্টিল করার ক্ষমতা দিতে পারেন।

Summarizer API বিভিন্ন দৈর্ঘ্য এবং বিন্যাসে বিভিন্ন ধরনের সারাংশ তৈরি করতে ব্যবহার করা যেতে পারে, যেমন বাক্য, অনুচ্ছেদ, বুলেট পয়েন্ট তালিকা এবং আরও অনেক কিছু। আমরা বিশ্বাস করি যে এই API নিম্নলিখিত পরিস্থিতিতে দরকারী:

  • একটি নিবন্ধ বা একটি চ্যাট কথোপকথন মূল পয়েন্ট সারসংক্ষেপ.
  • নিবন্ধের জন্য শিরোনাম এবং শিরোনাম প্রস্তাব করা।
  • একটি দীর্ঘ পাঠ্যের একটি সংক্ষিপ্ত এবং তথ্যপূর্ণ সারাংশ তৈরি করা।
  • একটি বই পর্যালোচনার উপর ভিত্তি করে একটি বইয়ের জন্য একটি টিজার তৈরি করা হচ্ছে৷

প্রাপ্যতা

মূল বিচারের জন্য সাইন আপ করুন

Summarizer API ব্যবহার শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

মূল বিচারের সময় সীমাবদ্ধতা

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

Summarizer API ব্যবহার করুন

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

if ('ai' in self && 'summarizer' in self.ai) {
  // The Summarizer API is supported.
}

মডেল ডাউনলোড

Summarizer API উচ্চ-মানের সারাংশ তৈরি করতে প্রশিক্ষিত একটি শক্তিশালী AI মডেল ব্যবহার করে। যখন API Chrome-এ বিল্ট করা হয়, তখন প্রথমবার যখন কোনো ওয়েবসাইট API ব্যবহার করে তখন মডেলটি আলাদাভাবে ডাউনলোড করা হয়।

মডেলটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.capabilities() ফাংশনটি কল করুন। এটি একটি available ক্ষেত্র সহ একটি AISummarizerCapabilities অবজেক্ট প্রদান করে যা তিনটি সম্ভাব্য মান নিতে পারে:

  • no : বর্তমান ব্রাউজারটি সামারিজার API সমর্থন করে, কিন্তু এই মুহূর্তে এটি ব্যবহার করা যাবে না। এটি বেশ কয়েকটি কারণে হতে পারে, যেমন মডেলটি ডাউনলোড করার জন্য অপর্যাপ্ত উপলব্ধ ডিস্ক স্থান।
  • readily : বর্তমান ব্রাউজারটি সামারাইজার API সমর্থন করে এবং এটি এখনই ব্যবহার করা যেতে পারে।
  • after-download : বর্তমান ব্রাউজারটি সামারাইজার এপিআই সমর্থন করে, তবে এটিকে প্রথমে মডেলটি ডাউনলোড করতে হবে।

মডেল ডাউনলোড ট্রিগার করতে এবং সারাংশ তৈরি করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.create() ফাংশনটি কল করুন। capabilities() এর প্রতিক্রিয়া যদি after-download হয়, তাহলে ডাউনলোডের অগ্রগতি শোনার জন্য এটি সর্বোত্তম অনুশীলন। এইভাবে, ডাউনলোডে সময় লাগলে আপনি ব্যবহারকারীকে জানাতে পারেন।

const summarizer = await ai.summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
    });
  }
});

API ফাংশন

create() ফাংশন আপনাকে আপনার প্রয়োজন অনুযায়ী একটি নতুন সারসংক্ষেপ বস্তু কনফিগার করতে দেয়। এটি নিম্নলিখিত পরামিতিগুলির সাথে একটি ঐচ্ছিক options অবজেক্ট নেয়:

  • sharedContext : অতিরিক্ত শেয়ার করা প্রসঙ্গ যা সারসংক্ষেপকে সাহায্য করতে পারে।
  • type : অনুমোদিত মান key-points (ডিফল্ট), tl;dr , teaser এবং headline সহ সংক্ষিপ্তসারের ধরন।
  • format : সংক্ষিপ্তকরণের বিন্যাস, অনুমোদিত মান markdown (ডিফল্ট) এবং plain-text সহ।
  • length : সংক্ষিপ্তকরণের দৈর্ঘ্য, অনুমোদিত মান short , medium (ডিফল্ট) এবং long । এই দৈর্ঘ্যের অর্থ অনুরোধ করা type উপর নির্ভর করে পরিবর্তিত হয়। উদাহরণস্বরূপ, Chrome এর বাস্তবায়নে, একটি সংক্ষিপ্ত কী-পয়েন্ট সারাংশে তিনটি বুলেট পয়েন্ট থাকে এবং একটি সংক্ষিপ্ত সারাংশ হল একটি বাক্য; একটি দীর্ঘ কী-পয়েন্টের সারাংশ হল সাতটি বুলেট পয়েন্ট এবং একটি দীর্ঘ সারাংশ হল একটি অনুচ্ছেদ।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে সংক্ষিপ্তসার শুরু করতে হয়।

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
  // The Summarizer API isn't usable.
  return;
}
if (available === 'readily') {
  // The Summarizer API can be used immediately .
  summarizer = await self.ai.summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await self.ai.summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
  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.',
});

স্ট্রিমিং সারাংশ

স্ট্রিমিং সারাংশ রিয়েল-টাইমে ফলাফল অফার করে। ইনপুট যোগ এবং সামঞ্জস্য করার সাথে সাথে আউটপুট ক্রমাগত আপডেট হয়।

একটি স্ট্রিমিং সারাংশ পেতে, summarizer এর 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 প্রদান করে, যেখানে প্রতিক্রিয়া বিভাগগুলি একে অপরের উপর ধারাবাহিকভাবে তৈরি করে। এর অর্থ হল প্রতিটি প্রতিক্রিয়াতে সেই বিন্দু পর্যন্ত তৈরি হওয়া সম্পূর্ণ সারাংশ রয়েছে, শুধুমাত্র পরবর্তী অংশ নয়, যা উদ্দেশ্যমূলক আচরণ নয়।

আমরা প্ল্যাটফর্মে অন্যান্য স্ট্রিমিং API-এর সাথে সারিবদ্ধ করতে চাই, যেখানে বিভাগগুলি একটি একক দীর্ঘ স্ট্রিমের ধারাবাহিক টুকরা। আপাতত, উদ্দেশ্যমূলক আচরণ অর্জন করতে, আপনি নিম্নলিখিতগুলি বাস্তবায়ন করতে পারেন:

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 প্লেগ্রাউন্ডে Summarizer API ব্যবহার করে দেখতে পারেন।

প্রমিতকরণ প্রচেষ্টা

আমরা ক্রস-ব্রাউজার সামঞ্জস্য নিশ্চিত করতে, সামারিজার API-কে মানসম্মত করার জন্য কাজ করছি।

আমাদের API প্রস্তাবটি সম্প্রদায়ের সমর্থন পেয়েছে এবং আরও আলোচনার জন্য W3C ওয়েব ইনকিউবেটর কমিউনিটি গ্রুপে চলে গেছে। ক্রোম টিম W3C টেকনিক্যাল আর্কিটেকচার গ্রুপ থেকে প্রতিক্রিয়ার অনুরোধ করেছে এবং Mozilla এবং WebKit-কে তাদের স্ট্যান্ডার্ড অবস্থানের জন্য জিজ্ঞাসা করেছে।

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

অরিজিন ট্রায়ালে যোগ দিয়ে এখনই সামারিজার এপিআই পরীক্ষা করা শুরু করুন এবং আপনার মতামত শেয়ার করুন। আপনার ইনপুট সরাসরি প্রভাবিত করতে পারে কিভাবে আমরা এই API এর ভবিষ্যত সংস্করণগুলি তৈরি এবং প্রয়োগ করি এবং সমস্ত অন্তর্নির্মিত AI API গুলি।

,

প্রকাশিত: নভেম্বর 11, 2024

কল্পনা করুন যে আপনি আপনার ব্যবহারকারীদের দীর্ঘ নিবন্ধ, জটিল নথি, বা এমনকি প্রাণবন্ত চ্যাট কথোপকথনগুলিকে সংক্ষিপ্ত এবং অন্তর্দৃষ্টিপূর্ণ সারাংশে ডিস্টিল করার ক্ষমতা দিতে পারেন।

Summarizer API বিভিন্ন দৈর্ঘ্য এবং বিন্যাসে বিভিন্ন ধরনের সারাংশ তৈরি করতে ব্যবহার করা যেতে পারে, যেমন বাক্য, অনুচ্ছেদ, বুলেট পয়েন্ট তালিকা এবং আরও অনেক কিছু। আমরা বিশ্বাস করি যে এই API নিম্নলিখিত পরিস্থিতিতে দরকারী:

  • একটি নিবন্ধ বা একটি চ্যাট কথোপকথন মূল পয়েন্ট সারসংক্ষেপ.
  • নিবন্ধের জন্য শিরোনাম এবং শিরোনাম প্রস্তাব করা।
  • একটি দীর্ঘ পাঠ্যের একটি সংক্ষিপ্ত এবং তথ্যপূর্ণ সারাংশ তৈরি করা।
  • একটি বই পর্যালোচনার উপর ভিত্তি করে একটি বইয়ের জন্য একটি টিজার তৈরি করা হচ্ছে৷

প্রাপ্যতা

মূল বিচারের জন্য সাইন আপ করুন

Summarizer API ব্যবহার শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

মূল বিচারের সময় সীমাবদ্ধতা

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

Summarizer API ব্যবহার করুন

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

if ('ai' in self && 'summarizer' in self.ai) {
  // The Summarizer API is supported.
}

মডেল ডাউনলোড

Summarizer API উচ্চ-মানের সারাংশ তৈরি করতে প্রশিক্ষিত একটি শক্তিশালী AI মডেল ব্যবহার করে। যখন API Chrome-এ বিল্ট করা হয়, তখন প্রথমবার যখন কোনো ওয়েবসাইট API ব্যবহার করে তখন মডেলটি আলাদাভাবে ডাউনলোড করা হয়।

মডেলটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.capabilities() ফাংশনটি কল করুন। এটি একটি available ক্ষেত্র সহ একটি AISummarizerCapabilities অবজেক্ট প্রদান করে যা তিনটি সম্ভাব্য মান নিতে পারে:

  • no : বর্তমান ব্রাউজারটি সামারিজার API সমর্থন করে, কিন্তু এই মুহূর্তে এটি ব্যবহার করা যাবে না। এটি বেশ কয়েকটি কারণে হতে পারে, যেমন মডেলটি ডাউনলোড করার জন্য অপর্যাপ্ত উপলব্ধ ডিস্ক স্থান।
  • readily : বর্তমান ব্রাউজারটি সামারাইজার API সমর্থন করে এবং এটি এখনই ব্যবহার করা যেতে পারে।
  • after-download : বর্তমান ব্রাউজারটি সামারাইজার এপিআই সমর্থন করে, তবে এটিকে প্রথমে মডেলটি ডাউনলোড করতে হবে।

মডেল ডাউনলোড ট্রিগার করতে এবং সারাংশ তৈরি করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.create() ফাংশনটি কল করুন। capabilities() এর প্রতিক্রিয়া যদি after-download হয়, তাহলে ডাউনলোডের অগ্রগতি শোনার জন্য এটি সর্বোত্তম অনুশীলন। এইভাবে, ডাউনলোডে সময় লাগলে আপনি ব্যবহারকারীকে জানাতে পারেন।

const summarizer = await ai.summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
    });
  }
});

API ফাংশন

create() ফাংশন আপনাকে আপনার প্রয়োজন অনুযায়ী একটি নতুন সারসংক্ষেপ বস্তু কনফিগার করতে দেয়। এটি নিম্নলিখিত পরামিতিগুলির সাথে একটি ঐচ্ছিক options অবজেক্ট নেয়:

  • sharedContext : অতিরিক্ত শেয়ার করা প্রসঙ্গ যা সারসংক্ষেপকে সাহায্য করতে পারে।
  • type : অনুমোদিত মান key-points (ডিফল্ট), tl;dr , teaser এবং headline সহ সংক্ষিপ্তসারের ধরন।
  • format : সংক্ষিপ্তকরণের বিন্যাস, অনুমোদিত মান markdown (ডিফল্ট) এবং plain-text সহ।
  • length : সংক্ষিপ্তকরণের দৈর্ঘ্য, অনুমোদিত মান short , medium (ডিফল্ট) এবং long । এই দৈর্ঘ্যের অর্থ অনুরোধ করা type উপর নির্ভর করে পরিবর্তিত হয়। উদাহরণস্বরূপ, Chrome এর বাস্তবায়নে, একটি সংক্ষিপ্ত কী-পয়েন্ট সারাংশে তিনটি বুলেট পয়েন্ট থাকে এবং একটি সংক্ষিপ্ত সারাংশ হল একটি বাক্য; একটি দীর্ঘ কী-পয়েন্টের সারাংশ হল সাতটি বুলেট পয়েন্ট এবং একটি দীর্ঘ সারাংশ হল একটি অনুচ্ছেদ।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে সংক্ষিপ্তসার শুরু করতে হয়।

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
  // The Summarizer API isn't usable.
  return;
}
if (available === 'readily') {
  // The Summarizer API can be used immediately .
  summarizer = await self.ai.summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await self.ai.summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
  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.',
});

স্ট্রিমিং সারাংশ

স্ট্রিমিং সারাংশ রিয়েল-টাইমে ফলাফল অফার করে। ইনপুট যোগ এবং সামঞ্জস্য করার সাথে সাথে আউটপুট ক্রমাগত আপডেট হয়।

একটি স্ট্রিমিং সারাংশ পেতে, summarizer এর 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 প্রদান করে, যেখানে প্রতিক্রিয়া বিভাগগুলি একে অপরের উপর ধারাবাহিকভাবে তৈরি করে। এর অর্থ হল প্রতিটি প্রতিক্রিয়াতে সেই বিন্দু পর্যন্ত তৈরি হওয়া সম্পূর্ণ সারাংশ রয়েছে, শুধুমাত্র পরবর্তী অংশ নয়, যা উদ্দেশ্যমূলক আচরণ নয়।

আমরা প্ল্যাটফর্মে অন্যান্য স্ট্রিমিং API-এর সাথে সারিবদ্ধ করতে চাই, যেখানে বিভাগগুলি একটি একক দীর্ঘ স্ট্রিমের ধারাবাহিক টুকরা। আপাতত, উদ্দেশ্যমূলক আচরণ অর্জন করতে, আপনি নিম্নলিখিতগুলি বাস্তবায়ন করতে পারেন:

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 প্লেগ্রাউন্ডে Summarizer API ব্যবহার করে দেখতে পারেন।

প্রমিতকরণ প্রচেষ্টা

আমরা ক্রস-ব্রাউজার সামঞ্জস্য নিশ্চিত করতে, সামারিজার API-কে মানসম্মত করার জন্য কাজ করছি।

আমাদের API প্রস্তাবটি সম্প্রদায়ের সমর্থন পেয়েছে এবং আরও আলোচনার জন্য W3C ওয়েব ইনকিউবেটর কমিউনিটি গ্রুপে চলে গেছে। ক্রোম টিম W3C টেকনিক্যাল আর্কিটেকচার গ্রুপ থেকে প্রতিক্রিয়ার অনুরোধ করেছে এবং Mozilla এবং WebKit-কে তাদের স্ট্যান্ডার্ড অবস্থানের জন্য জিজ্ঞাসা করেছে।

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

অরিজিন ট্রায়ালে যোগ দিয়ে এখনই সামারিজার এপিআই পরীক্ষা করা শুরু করুন এবং আপনার মতামত শেয়ার করুন। আপনার ইনপুট সরাসরি প্রভাবিত করতে পারে কিভাবে আমরা এই API এর ভবিষ্যত সংস্করণগুলি তৈরি এবং প্রয়োগ করি এবং সমস্ত অন্তর্নির্মিত AI API গুলি।

,

প্রকাশিত: নভেম্বর 11, 2024

কল্পনা করুন যে আপনি আপনার ব্যবহারকারীদের দীর্ঘ নিবন্ধ, জটিল নথি, বা এমনকি প্রাণবন্ত চ্যাট কথোপকথনগুলিকে সংক্ষিপ্ত এবং অন্তর্দৃষ্টিপূর্ণ সারাংশে ডিস্টিল করার ক্ষমতা দিতে পারেন।

Summarizer API বিভিন্ন দৈর্ঘ্য এবং বিন্যাসে বিভিন্ন ধরনের সারাংশ তৈরি করতে ব্যবহার করা যেতে পারে, যেমন বাক্য, অনুচ্ছেদ, বুলেট পয়েন্ট তালিকা এবং আরও অনেক কিছু। আমরা বিশ্বাস করি যে এই API নিম্নলিখিত পরিস্থিতিতে দরকারী:

  • একটি নিবন্ধ বা একটি চ্যাট কথোপকথন মূল পয়েন্ট সারসংক্ষেপ.
  • নিবন্ধের জন্য শিরোনাম এবং শিরোনাম প্রস্তাব করা।
  • একটি দীর্ঘ পাঠ্যের একটি সংক্ষিপ্ত এবং তথ্যপূর্ণ সারাংশ তৈরি করা।
  • একটি বই পর্যালোচনার উপর ভিত্তি করে একটি বইয়ের জন্য একটি টিজার তৈরি করা হচ্ছে৷

প্রাপ্যতা

মূল বিচারের জন্য সাইন আপ করুন

Summarizer API ব্যবহার শুরু করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

মূল বিচারের সময় সীমাবদ্ধতা

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

Summarizer API ব্যবহার করুন

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

if ('ai' in self && 'summarizer' in self.ai) {
  // The Summarizer API is supported.
}

মডেল ডাউনলোড

Summarizer API উচ্চ-মানের সারাংশ তৈরি করতে প্রশিক্ষিত একটি শক্তিশালী AI মডেল ব্যবহার করে। যখন API Chrome-এ বিল্ট করা হয়, তখন প্রথমবার যখন কোনো ওয়েবসাইট API ব্যবহার করে তখন মডেলটি আলাদাভাবে ডাউনলোড করা হয়।

মডেলটি ব্যবহারের জন্য প্রস্তুত কিনা তা নির্ধারণ করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.capabilities() ফাংশনটি কল করুন। এটি একটি available ক্ষেত্র সহ একটি AISummarizerCapabilities অবজেক্ট প্রদান করে যা তিনটি সম্ভাব্য মান নিতে পারে:

  • no : বর্তমান ব্রাউজারটি সামারিজার API সমর্থন করে, কিন্তু এই মুহূর্তে এটি ব্যবহার করা যাবে না। এটি বেশ কয়েকটি কারণে হতে পারে, যেমন মডেলটি ডাউনলোড করার জন্য অপর্যাপ্ত উপলব্ধ ডিস্ক স্থান।
  • readily : বর্তমান ব্রাউজারটি সামারাইজার API সমর্থন করে এবং এটি এখনই ব্যবহার করা যেতে পারে।
  • after-download : বর্তমান ব্রাউজারটি সামারাইজার এপিআই সমর্থন করে, তবে এটিকে প্রথমে মডেলটি ডাউনলোড করতে হবে।

মডেল ডাউনলোড ট্রিগার করতে এবং সারাংশ তৈরি করতে, অ্যাসিঙ্ক্রোনাস ai.summarizer.create() ফাংশনটি কল করুন। capabilities() এর প্রতিক্রিয়া যদি after-download হয়, তাহলে ডাউনলোডের অগ্রগতি শোনার জন্য এটি সর্বোত্তম অনুশীলন। এইভাবে, ডাউনলোডে সময় লাগলে আপনি ব্যবহারকারীকে জানাতে পারেন।

const summarizer = await ai.summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
    });
  }
});

API ফাংশন

create() ফাংশন আপনাকে আপনার প্রয়োজন অনুযায়ী একটি নতুন সারসংক্ষেপ বস্তু কনফিগার করতে দেয়। এটি নিম্নলিখিত পরামিতিগুলির সাথে একটি ঐচ্ছিক options অবজেক্ট নেয়:

  • sharedContext : অতিরিক্ত শেয়ার করা প্রসঙ্গ যা সারসংক্ষেপকে সাহায্য করতে পারে।
  • type : অনুমোদিত মান key-points (ডিফল্ট), tl;dr , teaser এবং headline সহ সংক্ষিপ্তসারের ধরন।
  • format : সংক্ষিপ্তকরণের বিন্যাস, অনুমোদিত মান markdown (ডিফল্ট) এবং plain-text সহ।
  • length : সংক্ষিপ্তকরণের দৈর্ঘ্য, অনুমোদিত মান short , medium (ডিফল্ট) এবং long । এই দৈর্ঘ্যের অর্থ অনুরোধ করা type উপর নির্ভর করে পরিবর্তিত হয়। উদাহরণস্বরূপ, Chrome এর বাস্তবায়নে, একটি সংক্ষিপ্ত কী-পয়েন্ট সারাংশে তিনটি বুলেট পয়েন্ট থাকে এবং একটি সংক্ষিপ্ত সারাংশ হল একটি বাক্য; একটি দীর্ঘ কী-পয়েন্টের সারাংশ হল সাতটি বুলেট পয়েন্ট এবং একটি দীর্ঘ সারাংশ হল একটি অনুচ্ছেদ।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে সংক্ষিপ্তসার শুরু করতে হয়।

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
  // The Summarizer API isn't usable.
  return;
}
if (available === 'readily') {
  // The Summarizer API can be used immediately .
  summarizer = await self.ai.summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await self.ai.summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
  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.',
});

স্ট্রিমিং সারাংশ

স্ট্রিমিং সারাংশ রিয়েল-টাইমে ফলাফল অফার করে। ইনপুট যোগ এবং সামঞ্জস্য করার সাথে সাথে আউটপুট ক্রমাগত আপডেট হয়।

একটি স্ট্রিমিং সারাংশ পেতে, summarizer এর 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 প্রদান করে, যেখানে প্রতিক্রিয়া বিভাগগুলি একে অপরের উপর ধারাবাহিকভাবে তৈরি করে। এর অর্থ হল প্রতিটি প্রতিক্রিয়াতে সেই বিন্দু পর্যন্ত তৈরি হওয়া সম্পূর্ণ সারাংশ রয়েছে, শুধুমাত্র পরবর্তী অংশ নয়, যা উদ্দেশ্যমূলক আচরণ নয়।

আমরা প্ল্যাটফর্মে অন্যান্য স্ট্রিমিং API-এর সাথে সারিবদ্ধ করতে চাই, যেখানে বিভাগগুলি একটি একক দীর্ঘ স্ট্রিমের ধারাবাহিক টুকরা। আপাতত, উদ্দেশ্যমূলক আচরণ অর্জন করতে, আপনি নিম্নলিখিতগুলি বাস্তবায়ন করতে পারেন:

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 প্লেগ্রাউন্ডে Summarizer API ব্যবহার করে দেখতে পারেন।

প্রমিতকরণ প্রচেষ্টা

আমরা ক্রস-ব্রাউজার সামঞ্জস্য নিশ্চিত করতে, সামারিজার API-কে মানসম্মত করার জন্য কাজ করছি।

আমাদের API প্রস্তাবটি সম্প্রদায়ের সমর্থন পেয়েছে এবং আরও আলোচনার জন্য W3C ওয়েব ইনকিউবেটর কমিউনিটি গ্রুপে চলে গেছে। ক্রোম টিম W3C টেকনিক্যাল আর্কিটেকচার গ্রুপ থেকে প্রতিক্রিয়ার অনুরোধ করেছে এবং Mozilla এবং WebKit-কে তাদের স্ট্যান্ডার্ড অবস্থানের জন্য জিজ্ঞাসা করেছে।

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

অরিজিন ট্রায়ালে যোগ দিয়ে এখনই সামারিজার এপিআই পরীক্ষা করা শুরু করুন এবং আপনার মতামত শেয়ার করুন। আপনার ইনপুট সরাসরি প্রভাবিত করতে পারে কিভাবে আমরা এই API এর ভবিষ্যত সংস্করণগুলি তৈরি এবং প্রয়োগ করি এবং সমস্ত অন্তর্নির্মিত AI API গুলি।