Xuất bản: Ngày 20 tháng 5 năm 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
Các API Trình phát hiện ngôn ngữ và Trình dịch chỉ hoạt động trên máy tính trong Chrome.
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); hoặc Linux. Các API của chúng tôi dựa trên Gemini Nano chưa hỗ trợ Chrome dành cho Android, iOS và ChromeOS.
- Bộ nhớ: Ít nhất 22 GB 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.
Bạn và người dùng làm việc với các tính năng mà bạn tạo đều phải đáp ứng những yêu cầu này trong quá trình phát triển.
Đă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 về các hành vi bị cấm khi sử dụng AI tạo sinh của Google.
- 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 đưa 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 dùng thử 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 sẽ đượ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()
. Hàm này trả về một chuỗi có thể nhận 4 giá trị có thể có:
unavailable
: Trình duyệt hỗ trợ Rewriter API, nhưng hiện tại không dùng được. Điều này có thể là do một số nguyên nhân, chẳng hạn như không đủ dung lượng ổ đĩa để tải mô hình xuống.available
: Trình duyệt hỗ trợ Rewriter API và bạn có thể sử dụng ngay.downloadable
: Trình duyệt hỗ trợ Rewriter API, nhưng trước tiên, trình duyệt cần tải mô hình xuống.downloading
: Trình duyệt hỗ trợ Rewriter API và hiện đang tải mô hình xuống.
Để 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 gọi hàm Rewriter.create()
. 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 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ả.
// 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 ghi 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 phát trực tiếp, 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ạ
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 nội dung 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 tính năng này, 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.