Dipublikasikan: 11 November 2024, Terakhir diperbarui: 20 Mei 2025
Penjelasan | Web | Ekstensi | Status Chrome | Intent |
---|---|---|---|---|
MDN | View | Maksud untuk Mengirim |
Anda dapat menawarkan kemampuan kepada pengguna untuk meringkas artikel panjang, dokumen rumit, atau bahkan percakapan chat yang dinamis menjadi ringkasan yang singkat 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 bahwa API ini berguna dalam skenario berikut:
- Meringkas poin-poin penting dari sebuah 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 mulai Chrome 138 versi stabil.
Sebelum Anda menggunakan API ini, baca dan setujui Kebijakan Penggunaan Terlarang untuk AI Generatif Google.
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 pengoperasian yang berbeda.
Language Detector API dan Translator API berfungsi di Chrome di desktop. API ini tidak berfungsi di perangkat seluler. Prompt API, Summarizer API, Writer API, dan Rewriter API berfungsi di Chrome jika persyaratan berikut terpenuhi:
- Sistem operasi: Windows 10 atau 11; macOS 13+ (Ventura dan yang lebih baru); atau Linux. Chrome untuk Android, iOS, dan ChromeOS belum didukung oleh API yang menggunakan Gemini Nano.
- Penyimpanan: Ruang kosong minimal 22 GB di volume yang berisi profil Chrome Anda.
- GPU: Lebih dari 4 GB VRAM.
- Jaringan: Data tanpa batas atau koneksi tanpa kuota.
Ukuran pasti Gemini Nano dapat bervariasi saat browser mengupdate model. Untuk menentukan ukuran saat ini, buka chrome://on-device-internals
dan buka
Status model. Buka Jalur file yang tercantum untuk menentukan ukuran model.
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 pertama kali situs menggunakan API ini.
Untuk menentukan apakah model siap digunakan, panggil fungsi asinkron
Summarizer.availability()
. Metode ini menampilkan promise dengan nilai berikut.
"unavailable"
berarti bahwa penerapan tidak mendukung opsi yang diminta."downloadable"
berarti bahwa penerapan mendukung opsi yang diminta, tetapi pertama-tama, browser harus mendownload sesuatu, seperti model (dalam kasus Chrome, Gemini Nano) atau penyempurnaan untuk model."downloading"
berarti bahwa implementasi mendukung opsi yang diminta, tetapi harus menyelesaikan download yang sedang berlangsung sebelum dapat dilanjutkan."available"
berarti bahwa implementasi mendukung opsi yang diminta dan perangkum dapat melanjutkan.
Untuk memicu download model dan membuat perangkum, panggil fungsi asinkron
Summarizer.create()
. Jika respons terhadap availability()
adalah
downloadable
atau downloading
, sebaiknya dengarkan progres
download. Dengan begitu, Anda dapat memberi tahu pengguna dan menunjukkan bahwa download mungkin memerlukan waktu untuk diselesaikan sebelum ringkasan dapat dilakukan.
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 perangkum baru sesuai
kebutuhan Anda. Metode ini menggunakan objek options
opsional dengan parameter berikut:
sharedContext
: Konteks bersama tambahan yang dapat membantu perangkum.type
: Jenis ringkasan, dengan nilai yang diizinkankey-points
(default),tldr
,teaser
, danheadline
. Lihat tabel berikut untuk mengetahui detailnya.format
: Format ringkasan, dengan nilai yang diizinkanmarkdown
(default) danplain-text
.length
: Panjang ringkasan, dengan nilai yang diizinkanshort
,medium
(default), danlong
. Arti panjang ini bervariasi, bergantung padatype
yang diminta. Misalnya, dalam penerapan Chrome, ringkasan singkat poin-poin penting terdiri dari tiga poin-poin penting, dan ringkasan singkat adalah satu kalimat.
Setelah ditetapkan, parameter tidak dapat diubah. Buat objek perangkum baru jika Anda perlu melakukan modifikasi pada parameter.
Tabel berikut menunjukkan berbagai jenis ringkasan dan panjangnya masing-masing. 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 sesuai untuk pembaca yang sibuk. |
|
||||||
"teaser" |
Ringkasan harus berfokus pada bagian input yang paling menarik atau memikat, yang dirancang untuk menarik perhatian pembaca agar membaca lebih lanjut. |
|
||||||
"key-points" |
Summary harus mengekstrak poin-poin terpenting dari input, yang disajikan sebagai daftar berbutir. |
|
||||||
"headline" |
Ringkasan harus secara efektif berisi poin utama input dalam satu kalimat, dalam format judul artikel. |
|
Contoh berikut menunjukkan cara menginisialisasi perangkum.
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;
}
const summarizer = await Summarizer.create(options);
Menjalankan perangkum
Ada dua cara untuk menjalankan perangkum: streaming dan batch (non-streaming).
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 rangkum. Argumen kedua yang bersifat 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 memberikan hasil secara real-time.
Output diperbarui terus-menerus saat input ditambahkan dan disesuaikan. Untuk mendapatkan ringkasan streaming, panggil summarizeStreaming()
, 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.
Upaya standardisasi
Kami sedang berupaya menstandardisasi Summarizer API, untuk memastikan kompatibilitas lintas browser.
Proposal API kami menerima dukungan komunitas dan telah dipindahkan ke W3C Web Incubator Community Group untuk didiskusikan lebih lanjut. Tim Chrome meminta masukan dari W3C Technical Architecture Group, dan meminta Mozilla dan WebKit untuk memberikan posisi standar mereka.
Berpartisipasilah dalam upaya standarisasi dengan bergabung ke Web Incubator Community Group.
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.