Ngày phát hành: 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 |
Writer API giúp bạn tạo nội dung mới tuân thủ một tác vụ viết cụ thể. API Writer và API Rewriter là một phần của đề xuất API hỗ trợ viết.
Các API của đối tác 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
Viết nội dung mới dựa trên ý tưởng ban đầu và ngữ cảnh không bắt buộc. Bạn có thể sử dụng tính năng này để:
- Hỗ trợ người dùng viết mọi loại nội dung, chẳng hạn như bài đánh giá, bài đăng trên blog hoặc email.
- Giúp người dùng viết yêu cầu hỗ trợ hiệu quả hơn.
- Soạn bản giới thiệu cho một loạt mẫu công việc để thể hiện rõ hơn một số kỹ năng nhất định.
Trường hợp sử dụng của bạn có bị thiếu không? Tham gia chương trình xem trước sớm để chia sẻ ý kiến phản hồi.
Bắt đầu
Tham gia bản dùng thử theo nguyên gốc của Writer API, chạy trong Chrome 137 đến 142.
Xem xét các yêu cầu về phần cứng
API Trình phát hiện ngôn ngữ và API 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. Chrome dành cho Android, iOS và ChromeOS chưa được các API của chúng tôi hỗ trợ Gemini Nano.
- Dung lượng lưu trữ: Ít nhất 22 GB trên phương tiện lưu trữ chứa hồ sơ Chrome của bạn.
- GPU: VRAM phải lớn hơn 4 GB.
- Mạng: Dữ liệu không giới hạn hoặc kết nối không đo lượng dữ liệu.
Các yêu cầu này dành cho bạn trong quá trình phát triển và dành cho người dùng sử dụng các tính năng mà bạn xây dựng.
Đăng ký dùng thử phiên bản gốc
Writer API có trong bản dùng thử theo nguyên gốc kết hợp với Rewriter API. Để bắt đầu sử dụng các API nà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.
- Truy cập vào bản dùng thử theo nguyên gốc Writer 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ã tiện ích,
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ã đó vào mọi trang web tham gia trên nguồn gốc của bạn hoặc đưa mã đó vào tệp kê khai Tiện ích.
- Bắt đầu sử dụng API Writer và Rewriter.
Tìm hiểu thêm về cách bắt đầu sử dụng bản dùng thử theo nguồn gốc.
Thêm tính năng hỗ trợ cho máy chủ cục bộ
Để truy cập vào API Writer và Rewriter trên máy chủ cục bộ trong quá trình 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/#writer-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 Writer API
Trước tiên, hãy chạy tính năng phát hiện tính năng để xem trình duyệt có hỗ trợ các API này hay không.
if ('Writer' in self) {
// The Writer API is supported.
}
Writer API và tất cả các API AI tích hợp sẵn khác được tích hợp trong trình duyệt. Gemini Nano được tải xuống riêng trong lần đầu tiên bất kỳ trang web nào sử dụng API AI tích hợp. Trong thực tế, nếu người dùng đã tương tác với một API tích hợp, thì họ đã tải mô hình xuống trình duyệt.
Để xác định xem mô hình đã sẵn sàng để sử dụng hay chưa, hãy gọi hàm Writer.availability()
không đồng bộ. Hàm này trả về một chuỗi có thể nhận 4 giá trị:
unavailable
: Trình duyệt hỗ trợ Writer API, nhưng hiện không thể sử dụng API này. Điều này có thể là do một số lý do, chẳng hạn như không có đủ dung lượng ổ đĩa để tải mô hình xuống.available
: Trình duyệt hỗ trợ API Writer và bạn có thể sử dụng ngay.downloadable
: Trình duyệt hỗ trợ API Trình ghi, 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ợ Writer 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 ghi, hãy gọi hàm Writer.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 chút thời gian.
const writer = await Writer.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 ghi mới. Phương thức này nhận 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ànhformal
,neutral
(mặc định) hoặccasual
.format
: Định dạng đầu ra, với các giá trị được phép làmarkdown
(mặc định) vàplain-text
.length
: Độ dài của dữ liệu đầu ra, với các giá trị được phép làshort
,medium
(mặc định) vàlong
.sharedContext
: Khi viết nhiều đầu ra, ngữ cảnh dùng chung có thể giúp mô hình tạo nội dung phù hợp hơn với kỳ vọng của bạn.
Ví dụ sau đây minh hoạ cách khởi tạo đối tượng writer
:
const options = {
sharedContext: 'This is an email to acquaintances about an upcoming event.',
tone: 'casual',
format: 'plain-text',
length: 'medium',
};
const available = await Writer.availability();
let writer;
if (available === 'unavailable') {
// The Writer API isn't usable.
return;
}
if (available === 'available') {
// The Writer API can be used immediately .
writer = await Writer.create(options);
} else {
// The Writer can be used after the model is downloaded.
writer = await Writer.create(options);
writer.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
}
Bắt đầu viết
Có hai cách để xuất dữ liệu ghi từ mô hình: không truyền trực tuyến và truyền trực tuyến.
Đầu ra không phát trực tuyến
Với phương thức ghi 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 đầu ra không truyền trực tuyến, hãy gọi hàm write()
không đồng bộ. Bạn phải đưa ra câu lệnh cho nội dung mà bạn muốn viết. Bạn có thể thêm một 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 kỳ vọng của bạn về kết quả.
// Non-streaming
const writer = await Writer.create();
const result = await writer.write(
"An inquiry to my bank about how to enable wire transfers on my account.", {
context: "I'm a longstanding customer",
},
);
Đầu ra ghi luồng
Tính năng phát trực tuyến cung cấp kết quả theo thời gian thực. Kết quả đầu ra liên tục cập nhật khi dữ liệu đầu vào được thêm và điều chỉnh.
Để lấy trình ghi trực tuyến, hãy gọi hàm writeStreaming()
và lặp lại các phân đoạn văn bản có sẵn trong luồng. Bạn có thể thêm một 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 kỳ vọng của bạn về kết quả.
// Streaming
const writer = await Writer.create();
const stream = writer.writeStreaming(
"An inquiry to my bank about how to enable wire transfers on my account.", {
context: "I'm a longstanding customer",
},
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Chia sẻ ngữ cảnh cho nhiều tác vụ
Bạn nên sử dụng writer
để 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 writer = await Writer.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});
const stream = writer.writeStreaming(
"Write a blog post about how I love all this work on gen AI at Google!" +
"Mention that there's 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."}
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Sử dụng lại trình ghi
Bạn có thể sử dụng cùng một trình tạo nội dung để tạo nhiều nội dung.
// Reuse a writer
const writer = await Writer.create({ tone: "formal" });
const reviews = await Promise.all(
Array.from(
document.querySelectorAll("#reviews > .review"),
(reviewEl) => writer.write(reviewEl.textContent)
),
);
Dừng trình ghi
Để kết thúc quá trình ghi, hãy huỷ bộ điều khiển và huỷ tác vụ ghi.
// Aborting a writer
const controller = new AbortController();
stopButton.onclick = () => controller.abort();
const writer = await Writer.create({ signal: controller.signal });
await writer.write(reviewEl.textContent, { signal: controller.signal });
// Destroying a writer
writer.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 được biết.
- Đọc nội dung giải thích, đặt câu hỏi và tham gia thảo luận.
- Xem lại cách triển khai cho Chrome trên trang 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 muốn phản hồi về cách triển khai của Chrome, hãy báo cáo lỗi Chromium.
Khám phá tất 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.