Ngày xuất bản: 20/5/2025
Video giải thích | Web | Phần mở rộng | Trạng thái của Chrome | Intent |
---|---|---|---|---|
GitHub | Xem | Ý định thử nghiệm |
Rewriter API giúp bạn sửa đổi và tái cấu trúc văn bản. API này và Writer API là một phần của đề xuất Writing Assistance APIs.
Các API này có thể giúp bạn cải thiện nội dung do người dùng tạo.
Trường hợp sử dụng
Tinh chỉnh văn bản hiện có bằng cách kéo dài hoặc rút ngắn văn bản, hoặc thay đổi giọng điệu. Ví dụ: bạn có thể:
- Viết lại một email ngắn sao cho lịch sự và trang trọng hơn.
- Đề xuất nội dung chỉnh sửa cho bài đánh giá của khách hàng để giúp những khách hàng khác hiểu rõ ý kiến phản hồi hoặc loại bỏ nội dung độc hại.
- Định dạng nội dung để đáp ứng kỳ vọng của một số đối tượng.
Bạn có thấy trường hợp sử dụng của mình không? Tham gia chương trình dùng thử sớm để chia sẻ ý kiến phản hồi của bạn.
Bắt đầu
Tham gia bản dùng thử theo nguyên gốc Rewriter API, chạy trong Chrome 137 đến 142.
Xem các yêu cầu về phần cứng
Nhà phát triển và người dùng vận hành các tính năng bằng những 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 API 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 và Rewriter 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](https://www.google.com/chromebook/chromebookplus/). 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: VRAM phải lớn hơn 4 GB.
- Mạng: Gói dữ liệu không giới hạn hoặc kết nối không đ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
rồi chuyển đến phần Trạng thái mô hình. Mở Đường dẫn tệp được liệt kê để xác định kích thước mô hình.
Đăng ký dùng thử nguồn gốc
Rewriter API có trong bản dùng thử theo nguyên gốc chung với Writer API. Để bắt đầu sử dụng các API này, hãy làm như sau:
- Xác nhận Chính sách của Google về các hành vi bị cấm khi sử dụng AI tạo sinh.
- Chuyển đến bản dùng thử theo nguyên gốc Rewriter API.
- Nhấp vào Đăng ký rồi điền thông tin vào biểu mẫu. Trong trường Nguồn gốc web, hãy cung cấp nguồn gốc hoặc mã nhận dạng tiện ích của bạn,
chrome-extension://YOUR_EXTENSION_ID
. - Để gửi, hãy nhấp vào Đăng ký.
- Sao chép mã thông báo được cung cấp rồi thêm mã thông báo đó vào mọi trang web tham gia trên nguồn gốc của bạn hoặc thêm mã thông báo đó vào tệp kê khai Tiện ích.
- Bắt đầu sử dụng Rewriter API.
Tìm hiểu thêm về cách bắt đầu sử dụng các thử nghiệm nguồn gốc.
Thêm hỗ trợ cho localhost
Để truy cập vào Writer và Rewriter API trên localhost trong thời gian diễn ra thử nghiệm theo nguyên gốc, bạn phải cập nhật Chrome lên phiên bản mới nhất. Sau đó, thực hiện theo những bước sau:
- Chuyển đến
chrome://flags/#rewriter-api-for-gemini-nano
. - Chọn Bật.
- Nhấp vào Chạy lại hoặc khởi động lại Chrome.
Sử dụng Rewriter API
Trước tiên, hãy chạy tính năng phát hiện để xem trình duyệt có hỗ trợ các API này hay không.
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
Rewriter API và tất cả các API tích hợp sẵn khác về AI đều được tích hợp trong trình duyệt. Gemini Nano được tải xuống riêng biệt vào lần đầu tiên bất kỳ trang web nào sử dụng một API AI tích hợp. Trên thực tế, nếu đã tương tác với một API tích hợp, thì người dùng đã tải mô hình xuống trình duyệt của họ.
Để 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ộ Rewriter.availability()
.
Nếu phản hồi cho availability()
là downloadable
, hãy theo dõi tiến trình tải xuống và thông báo cho người dùng, vì quá trình tải xuống có thể mất thời gian.
const availability = await Rewriter.availability();
Để kích hoạt quá trình tải mô hình xuống và bắt đầu trình viết lại, hãy kiểm tra hoạt động kích hoạt người dùng và gọi hàm Rewriter.create()
.
const rewriter = await Rewriter.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Các hàm API
Hàm create()
cho phép bạn định cấu hình một đối tượng ghi lại mới. Phương thức này lấy một đối tượng options
không bắt buộc với các tham số sau:
tone
: Giọng văn có thể đề cập đến phong cách, tính cách hoặc thái độ của nội dung. Bạn có thể đặt giá trị thànhmore-formal
,as-is
(mặc định) hoặcmore-casual
.format
: Định dạng đầu ra, với các giá trị được phép làas-is
(mặc định),markdown
vàplain-text
.length
: Độ dài của đầu ra, với các giá trị được phép làshorter
,as-is
(mặc định) vàlonger
.sharedContext
: Khi viết lại nhiều nội dung, ngữ cảnh chung có thể giúp mô hình tạo ra nội dung phù hợp hơn với mong đợi của bạn.
Ví dụ sau đây minh hoạ cách khởi tạo một đối tượng rewriter
:
const options = {
sharedContext: 'This is an email to acquaintances about an upcoming event.',
tone: 'more-casual',
format: 'plain-text',
length: 'shorter',
};
const available = await Rewriter.availability();
let rewriter;
if (available === 'unavailable') {
// The Rewriter API isn't usable.
return;
}
if (available === 'available') {
// The Rewriter API can be used immediately .
rewriter = await Rewriter.create(options);
} else {
// The Rewriter can be used after the model is downloaded.
rewriter = await Rewriter.create(options);
rewriter.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
}
Bắt đầu viết lại
Có hai cách để xuất nội dung từ mô hình: không truyền trực tuyến và truyền trực tuyến.
Đầu ra không phải là luồng
Với tính năng viết lại không truyền trực tuyến, mô hình sẽ xử lý toàn bộ dữ liệu đầu vào rồi tạo ra dữ liệu đầu ra.
Để nhận được đầu ra không truyền trực tuyến, hãy gọi hàm không đồng bộ rewrite()
. Bạn phải thêm văn bản ban đầu mà bạn muốn viết lại. Bạn có thể thêm context
(không bắt buộc) để cung cấp thông tin cơ bản về mô hình. Điều này có thể giúp mô hình đáp ứng tốt hơn mong đợi của bạn về kết quả đầu ra.
// Non-streaming
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const result = await rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible."
});
Đầu ra viết lại luồng
Phát trực tuyến mang lại kết quả theo thời gian thực. Đầu ra liên tục cập nhật khi đầu vào được thêm và điều chỉnh.
Để lấy một trình viết lại truyền trực tuyến, hãy gọi hàm rewriteStreaming()
và lặp lại các đoạn văn bản có sẵn trong luồng. Bạn có thể thêm context
(không bắt buộc) để cung cấp thông tin cơ bản về mô hình. Điều này có thể giúp mô hình đáp ứng tốt hơn mong đợi của bạn về kết quả đầu ra.
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const stream = rewriter.rewriteStreaming(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
});
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Chia sẻ bối cảnh cho nhiều việc cần làm
Bạn có thể muốn dùng rewriter
để tạo nhiều nội dung. Trong trường hợp này, bạn nên thêm sharedContext
. Ví dụ: Bạn có thể muốn giúp người đánh giá đưa ra ý kiến phản hồi tốt hơn trong phần bình luận.
// Shared context and per writing task context
const rewriter = await Rewriter.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});
const stream = rewriter.rewriteStreaming(
"Love all this work on generative AI at Google! So much to learn and so many new things I can do!",
{
context: "The request comes from someone working at a startup providing an e-commerce CMS solution.",
tone: "more-casual",
}
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Sử dụng lại công cụ viết lại
Bạn có thể sử dụng cùng một công cụ viết lại để chỉnh sửa nhiều nội dung. Điều này có thể đặc biệt hữu ích nếu bạn thêm công cụ viết lại vào một công cụ phản hồi hoặc bình luận, để giúp người viết đưa ra ý kiến phản hồi hữu ích và hiệu quả.
// Reusing a rewriter
const rewriter = await Rewriter.create({
sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const rewrittenReviews = await Promise.all(
Array.from(
document.querySelectorAll("#reviews > .review"),
(reviewEl) => rewriter.rewrite(reviewEl.textContent, {
context: "Avoid any toxic language and be as constructive as possible.",
tone: "more-casual",
})
),
);
Dừng công cụ viết lại
Để kết thúc quy trình ghi lại, hãy huỷ bộ điều khiển và huỷ rewriter
.
// Stop a rewriter
const controller = new AbortController();
stopButton.onclick = () => controller.abort();
const rewriter = await Rewriter.create({ signal: controller.signal });
await rewriter.rewrite(reviewEl.textContent, { signal: controller.signal });
// Destroy a rewriter
rewriter.destroy();
Bản minh hoạ
Chính sách về quyền, iframe và Web Worker
Theo mặc định, Rewriter 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 của chúng. Bạn có thể uỷ quyền truy cập vào API cho iframe nhiều nguồn gốc bằng cách sử dụng thuộc tính Permission Policy allow=""
:
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Rewriter API by
setting the `allow="rewriter"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="rewriter"></iframe>
Rewriter API không có 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 có trách nhiệm cho mỗi worker, nhằm kiểm tra trạng thái Chính sách về quyền.
Tương tác và chia sẻ ý kiến phản hồi
Writer và Rewriter API đang được thảo luận tích cực và có thể thay đổi trong tương lai. Nếu bạn dùng thử API này và có ý kiến phản hồi, chúng tôi rất mong nhận được ý kiến của bạn.
- Đọc phần giải thích, đặt câu hỏi và tham gia thảo luận.
- Xem xét việc triển khai cho Chrome trên Trạng thái của Chrome.
- Tham gia chương trình xem trước sớm để xem trước các API mới và truy cập vào danh sách gửi thư của chúng tôi.
- Nếu bạn có ý kiến phản hồi về cách Chrome triển khai, hãy báo cáo lỗi Chromium.
Khám phá tất cả các API AI tích hợp sẵn sử dụng các mô hình, bao gồm cả Gemini Nano và các mô hình chuyên gia khác, trong trình duyệt.