Membuat ringkasan dengan AI bawaan

Dipublikasikan: 11 November 2024, Terakhir diperbarui: 30 Juli 2025

Browser Support

  • Chrome: 138.
  • Edge: 138.
  • Firefox: not supported.
  • Safari: not supported.

Source

Anda dapat menawarkan kemampuan kepada pengguna untuk menyaring artikel panjang, dokumen kompleks, atau bahkan percakapan chat yang ramai menjadi ringkasan yang ringkas dan berwawasan.

Summarizer API dapat digunakan untuk membuat berbagai jenis ringkasan dalam berbagai panjang dan format, seperti kalimat, paragraf, daftar poin-poin, dan lainnya. Kami yakin API ini berguna dalam skenario berikut:

  • Meringkas poin-poin utama artikel atau percakapan chat.
  • Menyarankan judul dan heading untuk artikel.
  • Membuat ringkasan yang ringkas dan informatif dari teks yang panjang.
  • Membuat teaser untuk buku berdasarkan ulasan buku.

Mulai

Summarizer API tersedia dari Chrome 138 stabil.

Jalankan deteksi fitur untuk melihat apakah browser mendukung Summarizer API.

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

Meninjau persyaratan hardware

Persyaratan berikut berlaku untuk developer dan pengguna yang mengoperasikan fitur menggunakan API ini di Chrome. Browser lain mungkin memiliki persyaratan operasi yang berbeda.

Language Detector dan Translator API berfungsi di Chrome di desktop. API ini tidak berfungsi di perangkat seluler.

The Prompt API, Summarizer API, Writer API, Rewriter API, dan Proofreader API berfungsi di Chrome jika kondisi berikut terpenuhi:

  • Sistem operasi: Windows 10 atau 11; macOS 13+ (Ventura dan yang lebih baru); Linux; atau ChromeOS (dari Platform 16389.0.0 dan yang lebih baru) di Chromebook Plus perangkat. Chrome untuk Android, iOS, dan ChromeOS di perangkat non-Chromebook Plus belum didukung oleh API yang menggunakan Gemini Nano.
  • Penyimpanan: Minimal 22 GB ruang kosong di volume yang berisi profil Chrome Anda.
  • GPU atau CPU: Model bawaan dapat berjalan dengan GPU atau CPU.
    • GPU: Lebih dari 4 GB VRAM.
    • CPU: RAM 16 GB atau lebih dan 4 core CPU atau lebih.
    • Catatan: Prompt API dengan input audio memerlukan GPU.
  • Jaringan: Data tidak terbatas atau koneksi tidak berkuota.

Ukuran pasti Gemini Nano dapat bervariasi saat browser mengupdate model. Untuk menentukan ukuran saat ini, buka chrome://on-device-internals.

Download model

Summarizer API menggunakan model yang dilatih untuk membuat ringkasan berkualitas tinggi. API ini dibuat ke dalam Chrome, dan Gemini Nano adalah model yang didownload saat pertama kali situs menggunakan API ini.

Untuk menentukan apakah model siap digunakan, panggil fungsi asinkron Summarizer.availability(). Jika respons terhadap availability() adalah downloadable, dengarkan progres download untuk memberi tahu pengguna tentang progresnya, karena mungkin memerlukan waktu.

const availability = await Summarizer.availability();

Untuk memicu download model dan membuat summarizer, periksa aktivasi pengguna, lalu panggil fungsi Summarizer.create() asinkron.

// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

Fungsi API

Fungsi create() memungkinkan Anda mengonfigurasi objek summarizer baru sesuai kebutuhan. Fungsi ini menggunakan objek options opsional dengan parameter berikut:

  • sharedContext: Konteks bersama tambahan yang dapat membantu summarizer.
  • type: Jenis ringkasan, dengan nilai yang diizinkan key-points (default), tldr, teaser, dan headline. Lihat tabel berikut untuk mengetahui detailnya.
  • format: Format ringkasan, dengan nilai yang diizinkan markdown (default) dan plain-text.
  • length: Panjang ringkasan, dengan nilai yang diizinkan short (default), medium, dan long. Arti panjang ini bervariasi bergantung pada type yang diminta. Misalnya, dalam penerapan Chrome, ringkasan poin-poin singkat terdiri dari tiga poin-poin, dan ringkasan singkat adalah satu kalimat.
  • preference: Mekanisme bagi developer untuk menunjukkan apakah mereka memprioritaskan eksekusi cepat atau kemampuan komprehensif.
    • auto: Browser menyeimbangkan kecepatan eksekusi dengan kemampuan ringkasan dan dapat menyesuaikan pemrosesan internalnya secara dinamis berdasarkan lingkungan, batasan sistem, atau konteks.
    • speed: Browser harus memprioritaskan latensi rendah dan eksekusi cepat. Pendekatan ini memprioritaskan performa, yang dapat membatasi kemampuan ringkasan, sehingga berpotensi menghasilkan ekstraksi yang kurang mendalam atau sintesis teks sumber yang lebih sederhana.
    • capability: Browser harus memprioritaskan kelengkapan dan koherensi ringkasan, serta model yang menawarkan lebih banyak fleksibilitas dalam hal jenis ringkasan dan opsi lain yang dapat dikonfigurasi. Pendekatan ini berfokus pada pengambilan konteks yang halus secara akurat dan menghasilkan ringkasan yang sangat halus, yang dapat menghasilkan latensi yang lebih tinggi dan kecepatan eksekusi yang lebih lambat.

Setelah ditetapkan, parameter tidak dapat diubah. Buat objek summarizer baru jika Anda perlu melakukan perubahan pada parameter.

Tabel berikut menunjukkan berbagai jenis ringkasan dan panjangnya yang sesuai. Panjangnya mewakili nilai maksimum yang mungkin, karena terkadang, hasilnya bisa lebih pendek.

Jenis Arti Panjang
"tldr" Ringkasan harus singkat dan langsung ke intinya, memberikan ringkasan singkat tentang input, yang cocok untuk pembaca yang sibuk.
short 1 kalimat
medium 3 kalimat
long 5 kalimat
"teaser" Ringkasan harus berfokus pada bagian input yang paling menarik atau memikat, yang dirancang untuk menarik pembaca agar membaca lebih lanjut.
short 1 kalimat
medium 3 kalimat
long 5 kalimat
"key-points" Ringkasan harus mengekstrak poin-poin terpenting dari input, disajikan sebagai daftar berbutir.
short 3 poin-poin
medium 5 poin-poin
long 7 poin-poin
"headline" Ringkasan harus secara efektif berisi poin utama input dalam satu kalimat, dalam format judul artikel.
short 12 kata
medium 17 kata
long 22 kata

Misalnya, Anda dapat menginisialisasi summarizer untuk menghasilkan poin-poin dengan panjang sedang dalam Markdown.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
};

const availability = await Summarizer.availability();
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}

// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
  const summarizer = await Summarizer.create(options);
}

Menetapkan bahasa yang diharapkan

Summarizer API mendukung beberapa bahasa. Tetapkan bahasa input, output, dan konteks yang diharapkan, saat membuat sesi. Hal ini memungkinkan browser menolak permintaan, jika browser tidak dapat mendukung kombinasi bahasa tertentu.

const summarizer = await Summarizer.create({
  type: 'key-points',
  expectedInputLanguages: ['en', 'ja', 'es'],
  outputLanguage: 'es',
  expectedContextLanguages: ['en'],
  sharedContext: 'These are requests to summarize articles from a multilanguage newspaper. The users expect a response in Spanish.',
});

Ada dua cara untuk menjalankan summarizer: streaming dan batch (output berbasis permintaan).

Ringkasan batch

Dengan ringkasan batch, model memproses input secara keseluruhan, lalu menghasilkan output.

Untuk mendapatkan ringkasan batch, panggil fungsi summarize(). Argumen pertama adalah teks yang ingin Anda ringkas. Argumen kedua, opsional, adalah objek dengan kolom context. Kolom ini memungkinkan Anda menambahkan detail latar belakang yang dapat meningkatkan kualitas ringkasan.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

Ringkasan streaming

Ringkasan streaming menawarkan hasil secara real time. Output terus diperbarui saat input ditambahkan dan disesuaikan. Untuk mendapatkan ringkasan streaming, panggil summarizeStreaming() dan bukan summarize().

const longText = document.querySelector('article').innerHTML;
const stream = summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
  console.log(chunk);
}

Demo

Anda dapat mencoba Summarizer API di Summarizer API Playground.

Kebijakan Izin, iframe, dan Web Worker

Secara default, Summarizer API hanya tersedia untuk jendela tingkat atas dan iframe asal yang sama. Akses ke API dapat didelegasikan ke iframe lintas origin menggunakan atribut Kebijakan Izin allow="":

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

Summarizer API belum tersedia di Web Worker. Hal ini disebabkan oleh kompleksitas dalam menetapkan dokumen yang bertanggung jawab untuk setiap pekerja, guna memeriksa status Kebijakan Izin.

Berikan masukan

Kami ingin melihat apa yang Anda buat dengan Summarizer API. Bagikan situs dan aplikasi web Anda kepada kami di X, YouTube, dan LinkedIn.

Untuk memberikan masukan tentang penerapan Chrome, ajukan laporan bug atau permintaan fitur.