Xuất bản: 11 tháng 11 năm 2024, Cập nhật gần nhất: 30 tháng 7 năm 2025
Browser Support
Bạn có thể cho phép người dùng tóm tắt các bài viết dài, tài liệu phức tạp hoặc thậm chí là các cuộc trò chuyện sôi nổi thành bản tóm tắt ngắn gọn và sâu sắc.
Bạn có thể sử dụng Summarizer API để tạo nhiều loại bản tóm tắt với độ dài và định dạng khác nhau, chẳng hạn như câu, đoạn văn, danh sách có dấu đầu dòng và nhiều định dạng khác. Chúng tôi tin rằng API này hữu ích trong các trường hợp sau:
- Tóm tắt các điểm chính của một bài viết hoặc cuộc trò chuyện.
- Đề xuất tiêu đề và tiêu đề cho bài viết.
- Tạo bản tóm tắt ngắn gọn và mang tính thông tin về một văn bản dài.
- Tạo đoạn giới thiệu cho một cuốn sách dựa trên bài đánh giá sách.
Bắt đầu
Summarizer API có trong Chrome 138 bản ổn định.
Trước khi sử dụng API này, hãy xác nhận Chính sách về các hành vi bị cấm khi sử dụng AI tạo sinh của Google.
Chạy tính năng phát hiện để xem trình duyệt có hỗ trợ Summarizer API hay không.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Xem các yêu cầu về phần cứng
Các nhà phát triển và người dùng vận hành các tính năng bằng các API này trong Chrome phải đáp ứng các yêu cầu sau. Các trình duyệt khác có thể có các yêu cầu khác về hoạt động.
Language Detector và Translator API hoạt động trong Chrome trên máy tính. Các API này không hoạt động trên thiết bị di động.
Prompt API, Summarizer API, Writer API, Rewriter API và Proofreader API hoạt động trong Chrome khi đáp ứng các điều kiện sau:
- Hệ điều hành: Windows 10 hoặc 11; macOS 13 trở lên (Ventura trở lên); Linux; hoặc ChromeOS (từ Nền tảng 16389.0.0 trở lên) trên các thiết bị Chromebook Plus. Chrome dành cho Android, iOS và ChromeOS trên các thiết bị không phải Chromebook Plus hiện chưa được các API sử dụng Gemini Nano hỗ trợ.
- Bộ nhớ: Ít nhất 22 GB dung lượng trống trên ổ đĩa chứa hồ sơ Chrome của bạn.
- GPU hoặc CPU: Các mô hình tích hợp có thể chạy bằng GPU hoặc CPU.
- GPU: VRAM phải lớn hơn 4 GB.
- CPU: RAM 16 GB trở lên và 4 lõi CPU trở lên.
- Lưu ý: Prompt API có đầu vào âm thanh yêu cầu GPU.
- Mạng: Dữ liệu không giới hạn hoặc kết nối không tính phí. Theo mặc định, kết nối Wi-Fi và kết nối Ethernet thường không đo lượng dữ liệu, trong khi kết nối di động thường có đo lượng dữ liệu.
Kích thước chính xác của Gemini Nano có thể thay đổi khi trình duyệt cập nhật mô hình. Để xác định kích thước hiện tại, hãy truy cập vào chrome://on-device-internals.
Tải mô hình xuống
Summarizer API sử dụng một mô hình được huấn luyện để tạo bản tóm tắt chất lượng cao. API này được tích hợp vào Chrome và Gemini Nano là mô hình được tải xuống lần đầu tiên khi một trang web sử dụng API này.
Để xác định xem mô hình đã sẵn sàng sử dụng hay chưa, hãy gọi hàm không đồng bộ
Summarizer.availability().
Nếu phản hồi cho availability() là downloadable, hãy theo dõi tiến trình tải xuống để thông báo cho người dùng về tiến trình này, vì có thể mất thời gian.
const availability = await Summarizer.availability();
Để kích hoạt quá trình tải mô hình xuống và tạo trình tóm tắt, hãy kiểm tra xem
người dùng có kích hoạt hay không, sau đó gọi
hàm Summarizer.create() không đồng bộ.
// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Hàm API
Hàm create() cho phép bạn định cấu hình một đối tượng trình tóm tắt mới theo nhu cầu. Hàm này nhận một đối tượng options không bắt buộc có các tham số sau:
sharedContext: Ngữ cảnh dùng chung bổ sung có thể giúp trình tóm tắt.type: Loại tóm tắt, với các giá trị được phép làkey-points(mặc định),tldr,teaservàheadline. Hãy xem bảng sau để biết thông tin chi tiết.format: Định dạng của bản tóm tắt, với các giá trị được phép làmarkdown(mặc định) vàplain-text.length: Độ dài của bản tóm tắt, với các giá trị được phép làshort(mặc định),mediumvàlong. Ý nghĩa của các độ dài này thay đổi tuỳ thuộc vàotypeđược yêu cầu. Ví dụ: trong quá trình triển khai của Chrome, bản tóm tắt ngắn gọn về các điểm chính bao gồm 3 dấu đầu dòng và bản tóm tắt ngắn gọn là một câu.preference: Cơ chế để nhà phát triển cho biết liệu họ có ưu tiên thực thi nhanh hay các tính năng toàn diện hay không.auto: Trình duyệt cân bằng tốc độ thực thi với khả năng tóm tắt và có thể điều chỉnh linh hoạt quá trình xử lý nội bộ dựa trên môi trường, các ràng buộc của hệ thống hoặc ngữ cảnh.speed: Trình duyệt nên ưu tiên độ trễ thấp và thực thi nhanh. Phương pháp này ưu tiên hiệu suất, có thể giới hạn khả năng tóm tắt, dẫn đến việc trích xuất ít sắc thái hơn hoặc tổng hợp đơn giản hơn văn bản nguồn.capability: Trình duyệt nên ưu tiên tính toàn diện và tính nhất quán của bản tóm tắt, cũng như một mô hình mang lại tính linh hoạt hơn về các loại bản tóm tắt và các lựa chọn có thể định cấu hình khác. Phương pháp này tập trung vào việc nắm bắt chính xác ngữ cảnh tinh tế và tạo ra các bản tóm tắt được tinh chỉnh cao, có thể dẫn đến độ trễ cao hơn và tốc độ thực thi chậm hơn.
Sau khi đặt, bạn không thể thay đổi các tham số. Tạo một đối tượng trình tóm tắt mới nếu bạn cần sửa đổi các tham số.
Bảng sau đây minh hoạ các loại bản tóm tắt và độ dài tương ứng. Độ dài thể hiện giá trị tối đa có thể, vì đôi khi kết quả có thể ngắn hơn.
| Loại | Ý nghĩa | Độ dài | ||||||
|---|---|---|---|---|---|---|---|---|
"tldr" |
Bản tóm tắt phải ngắn gọn và đi thẳng vào vấn đề, cung cấp thông tin tổng quan nhanh về nội dung đầu vào, phù hợp với người đọc bận rộn. |
|
||||||
"teaser" |
Bản tóm tắt nên tập trung vào những phần thú vị hoặc hấp dẫn nhất của thông tin đầu vào, được thiết kế để thu hút người đọc đọc thêm. |
|
||||||
"key-points" |
Bản tóm tắt nên trích xuất các điểm quan trọng nhất từ nội dung đầu vào, được trình bày dưới dạng danh sách có dấu đầu dòng. |
|
||||||
"headline" |
Bản tóm tắt nên chứa hiệu quả điểm chính của nội dung đầu vào trong một câu, ở định dạng tiêu đề bài viết. |
|
||||||
Ví dụ: bạn có thể khởi chạy một trình tóm tắt để xuất các điểm chính có độ dài trung bình ở định dạng 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);
}
Chỉ định ngôn ngữ dự kiến
Summarizer API hỗ trợ nhiều ngôn ngữ. Đặt ngôn ngữ đầu vào, đầu ra và ngữ cảnh dự kiến khi tạo phiên. Điều này cho phép trình duyệt từ chối yêu cầu nếu trình duyệt không hỗ trợ một tổ hợp ngôn ngữ cụ thể.
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.',
});
Có 2 cách để chạy trình tóm tắt: phát trực tuyến và theo lô (đầu ra dựa trên yêu cầu).
Tóm tắt theo lô
Với tính năng tóm tắt theo lô, mô hình sẽ xử lý toàn bộ nội dung đầu vào rồi tạo ra đầu ra.
Để nhận bản tóm tắt theo lô, hãy gọi hàm summarize(). Đối số đầu tiên là văn bản mà bạn muốn tóm tắt. Đối số thứ hai (không bắt buộc) là một đối tượng có trường context. Trường này cho phép bạn thêm thông tin chi tiết về bối cảnh có thể cải thiện bản tóm tắt.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Tóm tắt luồng
Tính năng tóm tắt luồng cung cấp kết quả theo thời gian thực.
Đầu ra liên tục cập nhật khi nội dung đầu vào được thêm và điều chỉnh. Để nhận bản tóm tắt luồng, hãy gọi summarizeStreaming() thay vì 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);
}
Bản minh hoạ
Bạn có thể dùng thử Summarizer API trong Sân chơi Summarizer API.
Chính sách về quyền, iframe và Web Worker
Theo mặc định, Summarizer API chỉ có sẵn cho các cửa sổ cấp cao nhất và các iframe cùng nguồn gốc. Bạn có thể uỷ quyền truy cập vào API cho các iframe nhiều nguồn gốc
bằng cách sử dụng thuộc tính allow="" của Chính sách về quyền:
<!--
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>
Hiện tại, bạn không thể sử dụng Summarizer API trong Web Worker. Điều này là do sự phức tạp của việc thiết lập một tài liệu chịu trách nhiệm cho mỗi worker để kiểm tra trạng thái tuân thủ chính sách của Chính sách về quyền.
Chia sẻ ý kiến phản hồi
Chúng tôi muốn xem những gì bạn đang xây dựng bằng Summarizer API. Chia sẻ trang web và ứng dụng web của bạn với chúng tôi trên X, YouTube, và LinkedIn.
Để gửi ý kiến phản hồi về quá trình triển khai của Chrome, hãy gửi báo cáo lỗi hoặc yêu cầu về tính năng.