Dipublikasikan: 12 Maret 2025, Terakhir diperbarui: 28 Mei 2025
Penjelasan | Web | Ekstensi | Status Chrome | Intent |
---|---|---|---|---|
MDN | View | Maksud untuk Mengirim |
Summarizer API membantu Anda membuat ringkasan informasi dalam berbagai panjang dan format. Gunakan fitur ini dengan Gemini Nano di Chrome, atau model bahasa lain yang ada di browser, untuk menjelaskan teks panjang atau rumit secara ringkas.
Jika dilakukan di sisi klien, Anda dapat bekerja dengan data secara lokal, yang memungkinkan Anda menjaga keamanan data sensitif dan dapat menawarkan ketersediaan dalam skala besar. Namun, jendela konteks jauh lebih kecil dibandingkan dengan model sisi server, yang berarti dokumen yang sangat besar akan sulit diringkas. Untuk mengatasi masalah ini, Anda dapat menggunakan teknik ringkasan dari ringkasan.
Apa yang dimaksud dengan ringkasan dari ringkasan?
Untuk menggunakan teknik ringkasan dari ringkasan, pisahkan konten input di titik-titik penting, lalu ringkas setiap bagian secara terpisah. Anda dapat menggabungkan output dari setiap bagian, lalu meringkas teks gabungan ini menjadi satu ringkasan akhir.

Membagi konten dengan cermat
Penting untuk mempertimbangkan cara Anda membagi teks yang panjang, karena strategi yang berbeda dapat menghasilkan output yang berbeda di berbagai LLM. Idealnya, teks harus dibagi saat ada perubahan topik, seperti bagian baru dari artikel atau di paragraf. Penting untuk menghindari pemisahan teks di tengah kata atau kalimat, yang berarti Anda tidak dapat menggunakan jumlah karakter sebagai satu-satunya panduan pemisahan.
Ada banyak cara untuk melakukannya. Dalam contoh berikut, kami menggunakan Recursive Text Splitter dari LangChain.js, yang menyeimbangkan performa dan kualitas output. Hal ini akan berfungsi untuk sebagian besar beban kerja.
Saat membuat instance baru, ada dua parameter utama:
chunkSize
adalah jumlah karakter maksimum yang diizinkan di setiap pemisahan.chunkOverlap
adalah jumlah karakter yang tumpang-tindih antara dua pemisahan berurutan. Hal ini memastikan bahwa setiap bagian memiliki beberapa konteks dari bagian sebelumnya.
Pisahkan teks dengan splitText()
untuk menampilkan array string dengan setiap bagian.
Sebagian besar LLM memiliki jendela konteks yang dinyatakan sebagai jumlah token, bukan
jumlah karakter. Rata-rata, token berisi 4 karakter. Dalam contoh kami, chunkSize
terdiri dari 3.000 karakter dan itu kira-kira 750 token.
Menentukan ketersediaan token
Untuk menentukan jumlah token yang tersedia untuk digunakan sebagai input, gunakan metode
measureInputUsage()
dan properti inputQuota
. Dalam hal ini, implementasinya tidak terbatas, karena Anda tidak dapat mengetahui
berapa kali perangkum akan berjalan untuk memproses semua teks.
Membuat ringkasan untuk setiap pemisahan
Setelah menyiapkan cara konten dibagi, Anda dapat membuat ringkasan untuk setiap bagian dengan Summarizer API.
Buat instance perangkum dengan
fungsi create()
. Untuk mempertahankan sebanyak mungkin konteks, kami telah menetapkan parameter format
ke plain-text
, type
ke tldr
, dan length
ke long
.
Kemudian, buat ringkasan untuk setiap pemisahan yang dibuat oleh
RecursiveCharacterTextSplitter
dan gabungkan hasilnya menjadi string baru.
Kami memisahkan setiap ringkasan dengan baris baru untuk mengidentifikasi ringkasan setiap bagian dengan jelas.
Meskipun baris baru ini tidak penting saat menjalankan loop ini hanya sekali, baris ini berguna untuk menentukan cara setiap ringkasan menambah nilai token untuk ringkasan akhir. Biasanya, solusi ini akan berfungsi untuk konten berdurasi sedang dan panjang.
Ringkasan rekursif dari ringkasan
Jika Anda memiliki teks yang sangat panjang, panjang ringkasan yang digabungkan mungkin lebih besar daripada jendela konteks yang tersedia, sehingga menyebabkan ringkasan gagal. Untuk mengatasinya, Anda dapat meringkas ringkasan secara rekursif.

Kami tetap mengumpulkan bagian awal yang dihasilkan oleh
RecursiveCharacterTextSplitter
. Kemudian, dalam fungsi recursiveSummarizer()
,
kita melakukan loop pada proses ringkasan berdasarkan panjang karakter
gabungan pemisahan. Jika panjang karakter ringkasan melebihi 3000
,
maka kita menggabungkannya menjadi fullSummaries
. Jika batas belum tercapai, ringkasan akan disimpan sebagai partialSummaries
.
Setelah semua ringkasan dibuat, ringkasan parsial akhir ditambahkan
ke ringkasan lengkap. Jika hanya ada 1 ringkasan di fullSummaries
, tidak diperlukan rekursi tambahan. Fungsi ini menampilkan ringkasan akhir. Jika ada lebih dari
satu ringkasan, fungsi akan mengulangi dan melanjutkan meringkas ringkasan
parsial.
Kami menguji solusi ini dengan RFC Internet Relay Chat (IRC), yang memiliki 110.030 karakter yang mencakup 17.560 kata. Summarizer API memberikan ringkasan berikut:
Internet Relay Chat (IRC) adalah cara untuk berkomunikasi secara online secara real-time menggunakan pesan teks. Anda dapat melakukan chat di channel atau mengirim pesan pribadi, dan Anda dapat menggunakan perintah untuk mengontrol chat dan berinteraksi dengan server. Ini seperti ruang chat di internet tempat Anda dapat mengetik dan melihat pesan orang lain secara instan.
Cukup efektif. Selain itu, hanya ada 309 karakter.
Batasan
Teknik ringkasan dari ringkasan membantu Anda beroperasi dalam jendela konteks model berukuran klien. Meskipun ada banyak manfaat AI sisi klien, Anda mungkin mengalami hal berikut:
- Ringkasan yang kurang akurat: Dengan rekursi, pengulangan proses ringkasan mungkin tidak terbatas, dan setiap ringkasan semakin jauh dari teks aslinya. Artinya, model dapat membuat ringkasan akhir yang terlalu dangkal sehingga tidak berguna.
- Performa lebih lambat: Setiap ringkasan memerlukan waktu untuk dibuat. Sekali lagi, dengan kemungkinan jumlah ringkasan yang tak terbatas dalam teks yang lebih panjang, pendekatan ini mungkin memerlukan waktu beberapa menit untuk selesai.
Kami memiliki demo perangkum yang tersedia, dan Anda dapat melihat kode sumber lengkap.
Beri masukan
Coba gunakan teknik ringkasan dari ringkasan dengan berbagai panjang teks input, berbagai ukuran pemisahan, dan berbagai panjang tumpang-tindih, dengan Summarizer API.
- Untuk memberikan masukan tentang penerapan Chrome, ajukan laporan bug atau permintaan fitur.
- Baca dokumentasi di MDN
- Chat dengan tim AI Chrome tentang proses meringkas Anda atau pertanyaan lain terkait AI bawaan.