Dipublikasikan: 11 November 2024
Bayangkan Anda dapat menawarkan kemampuan kepada pengguna untuk menyaring artikel panjang, dokumen kompleks, atau bahkan percakapan chat yang hidup menjadi ringkasan yang ringkas dan mendalam.
Summarizer API dapat digunakan untuk membuat berbagai jenis ringkasan dalam berbagai panjang dan format, seperti kalimat, paragraf, daftar poin, dan lainnya. Kami yakin API ini berguna dalam skenario berikut:
- Meringkas poin-poin penting dari artikel atau percakapan chat.
- Menyarankan judul dan heading untuk artikel.
- Membuat ringkasan singkat dan informatif dari teks yang panjang.
- Membuat teaser untuk buku berdasarkan ulasan buku.
Ketersediaan
- Bergabunglah ke uji coba origin Summarizer API, yang berjalan dari Chrome 131 hingga Chrome 136. Uji coba origin memungkinkan Anda menawarkan fitur kepada pengguna sebenarnya di origin Anda, di Chrome.
- Ikuti penerapan kami di Status Chrome.
- Proposal Summarizer API adalah bagian dari rangkaian API penulisan, dan terbuka untuk diskusi.
- Bergabunglah dengan program pratinjau awal untuk melihat sekilas API AI bawaan baru dan akses ke diskusi di mailing list kami.
Mendaftar untuk uji coba origin
Untuk mulai menggunakan Summarizer API, ikuti langkah-langkah berikut:
- Konfirmasi Kebijakan Penggunaan Terlarang untuk AI Generatif Google.
- Buka uji coba origin Summarizer API.
- Klik Daftar dan isi formulir.
- Di kolom Asal web, berikan asal atau ID ekstensi Anda,
chrome-extension://YOUR_EXTENSION_ID
.
- Di kolom Asal web, berikan asal atau ID ekstensi Anda,
- Untuk mengirim, klik Daftar.
- Salin token yang diberikan, lalu tambahkan ke setiap halaman web di origin atau file untuk Ekstensi Anda, tempat Anda ingin mengaktifkan uji coba.
- Jika Anda mem-build Ekstensi, ikuti petunjuk uji coba origin Ekstensi
- Mulai menggunakan Summarizer API.
Pelajari lebih lanjut cara memulai uji coba origin.
Batasan selama uji coba origin
Selama uji coba origin, Summarizer API hanya mendukung ringkasan teks bahasa Inggris, karena kualitas model hanya diuji secara menyeluruh pada konten bahasa Inggris. Kami bermaksud mencabut batasan ini setelah menguji bahasa tambahan untuk kualitas dan keamanan, dan API tersedia secara luas.
Menambahkan dukungan ke localhost
Untuk mengakses Summarizer API di localhost
selama uji coba origin, Anda harus
memiliki Chrome Canary. Kemudian, ikuti langkah-langkah
berikut:
- Buka Chrome Canary di salah satu platform berikut: Windows, Mac, atau Linux.
- Buka
chrome://flags/#summarization-api-for-gemini-nano
. - Pilih Enabled.
- Klik Luncurkan kembali atau mulai ulang Chrome.
Menggunakan Summarizer API
Pertama, jalankan deteksi fitur untuk melihat apakah browser mendukung Summarizer API.
if ('ai' in self && 'summarizer' in self.ai) {
// The Summarizer API is supported.
}
Download model
Summarizer API menggunakan model AI canggih yang dilatih untuk menghasilkan ringkasan berkualitas tinggi. Meskipun API di-build ke dalam Chrome, model didownload secara terpisah saat pertama kali situs menggunakan API.
Untuk menentukan apakah model siap digunakan, panggil fungsi ai.summarizer.capabilities()
asinkron. API ini menampilkan objek AISummarizerCapabilities
dengan kolom available
yang dapat memiliki tiga kemungkinan nilai:
no
: Browser saat ini mendukung Summarizer API, tetapi tidak dapat digunakan saat ini. Hal ini dapat terjadi karena beberapa alasan, seperti kapasitas disk yang tidak memadai untuk mendownload model.readily
: Browser saat ini mendukung Summarizer API, dan dapat langsung digunakan.after-download
: Browser saat ini mendukung Summarizer API, tetapi browser tersebut harus mendownload model terlebih dahulu.
Untuk memicu download model dan membuat peringkas, panggil fungsi
ai.summarizer.create()
asinkron. Jika respons untuk capabilities()
adalah
after-download
, praktik terbaiknya adalah memproses progres download. Dengan cara ini,
Anda dapat memberi tahu pengguna jika download memerlukan waktu.
const summarizer = await ai.summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
});
}
});
Fungsi API
Fungsi create()
memungkinkan Anda mengonfigurasi objek peringkas baru sesuai kebutuhan. Fungsi ini memerlukan objek options
opsional dengan parameter berikut:
sharedContext
: Konteks bersama tambahan yang dapat membantu pembuat ringkasan.type
: Jenis ringkasan, dengan nilai yang diizinkankey-points
(default),tl;dr
,teaser
, danheadline
.format
: Format ringkasan, dengan nilai yang diizinkanmarkdown
(default), danplain-text
.length
: Panjang ringkasan, dengan nilai yang diizinkanshort
,medium
(default), danlong
. Makna panjang ini bervariasi, bergantung padatype
yang diminta. Misalnya, dalam penerapan Chrome, ringkasan poin penting singkat terdiri dari tiga poin butir, dan ringkasan singkat adalah satu kalimat; ringkasan poin penting panjang adalah tujuh poin butir, dan ringkasan panjang adalah paragraf.
Contoh berikut menunjukkan cara melakukan inisialisasi peringkas.
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;
}
Menjalankan peringkas
Ada dua cara untuk menjalankan pembuat ringkasan: streaming dan non-streaming.
Ringkasan non-streaming
Dengan ringkasan non-streaming, model memproses input secara keseluruhan, lalu menghasilkan output.
Untuk mendapatkan ringkasan non-streaming, panggil fungsi summarize()
asinkron peringkas. Argumen pertama untuk fungsi ini adalah teks yang ingin Anda ringkas. Argumen kedua yang bersifat opsional adalah objek dengan kolom context
.
Kolom ini memungkinkan Anda menambahkan detail latar belakang yang dapat meningkatkan 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 diperbarui secara terus-menerus saat input ditambahkan dan disesuaikan.
Untuk mendapatkan ringkasan streaming, panggil fungsi summarizeStreaming()
ringkasan. Kemudian, lakukan iterasi pada segmen teks yang tersedia di aliran data.
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()
menampilkan ReadableStream
, dengan segmen respons
yang dibuat secara berurutan satu sama lain. Artinya, setiap respons berisi
seluruh ringkasan yang dihasilkan hingga titik tersebut, bukan hanya segmen berikutnya, yang
bukan perilaku yang diinginkan.
Kami ingin menyesuaikan dengan API streaming lainnya di platform, dengan segmen adalah bagian berturut-turut dari satu streaming panjang. Untuk saat ini, untuk mencapai perilaku yang diinginkan, Anda dapat menerapkan hal berikut:
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);
Demo
Anda dapat mencoba Summarizer API di Summarizer API Playground.
Upaya standardisasi
Kami sedang berupaya menstandarkan Summarizer API, untuk memastikan kompatibilitas lintas browser.
Proposal API kami menerima dukungan komunitas dan telah dipindahkan ke Grup Komunitas Inkubator Web W3C untuk diskusi lebih lanjut. Tim Chrome meminta masukan dari Grup Arsitektur Teknis W3C, dan meminta Mozilla dan WebKit untuk mengetahui posisi standar mereka.
Berpartisipasi dan memberikan masukan
Mulai uji Summarizer API sekarang dengan bergabung ke uji coba origin dan berikan masukan Anda. Input Anda dapat langsung memengaruhi cara kami mem-build dan menerapkan versi API ini pada masa mendatang, dan semua API AI bawaan.
- Untuk memberikan masukan tentang penerapan Chrome, ajukan laporan bug atau permintaan fitur.
- Diskusikan desain Summarizer API di GitHub dengan memberikan komentar pada Masalah yang ada atau membuka masalah baru.
- Berpartisipasilah dalam upaya standar dengan bergabung ke Grup Komunitas Inkubator Web.