เผยแพร่เมื่อวันที่ 20 พฤษภาคม 2025
วิดีโออธิบาย | เว็บ | ส่วนขยาย | สถานะ Chrome | ความตั้งใจ |
---|---|---|---|---|
GitHub | ดู | ความตั้งใจที่จะทดสอบ |
Rewriter API ช่วยคุณแก้ไขและปรับโครงสร้างข้อความ API นี้และ Writer API เป็นส่วนหนึ่งของข้อเสนอ API ความช่วยเหลือด้านการเขียน
API เหล่านี้จะช่วยคุณปรับปรุงเนื้อหาที่ผู้ใช้สร้างขึ้น
กรณีการใช้งาน
ปรับแต่งข้อความที่มีอยู่โดยทำให้ยาวขึ้นหรือสั้นลง หรือเปลี่ยนน้ำเสียง ตัวอย่างเช่น คุณสามารถทำสิ่งต่อไปนี้ได้
- เขียนอีเมลสั้นๆ ฉบับใหม่ให้ดูสุภาพและเป็นทางการมากขึ้น
- แนะนำการแก้ไขรีวิวของลูกค้าเพื่อช่วยให้ลูกค้าคนอื่นๆ ทำความเข้าใจความคิดเห็นหรือนำเนื้อหาที่เป็นพิษออก
- จัดรูปแบบเนื้อหาให้ตรงกับความคาดหวังของกลุ่มเป้าหมายบางกลุ่ม
หากไม่มี Use Case เข้าร่วมโปรแกรมทดลองใช้ก่อนเปิดตัวเพื่อแชร์ความคิดเห็น
เริ่มต้นใช้งาน
เข้าร่วมช่วงทดลองใช้จากต้นทางของ Rewriter API ซึ่งทํางานใน Chrome 137 ถึง 142
ตรวจสอบข้อกำหนดด้านฮาร์ดแวร์
เครื่องมือตรวจหาภาษาและ Translator API ใช้งานได้ในเดสก์ท็อปใน Chrome เท่านั้น
Prompt API, Summarizer API, Writer API และ Rewriter API จะทำงานใน Chrome ได้เมื่อมีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้
- ระบบปฏิบัติการ: Windows 10 หรือ 11, macOS 13 ขึ้นไป (Ventura ขึ้นไป) หรือ Linux API ที่ Gemini Nano รองรับยังไม่รองรับ Chrome สำหรับ Android, iOS และ ChromeOS
- พื้นที่เก็บข้อมูล: อย่างน้อย 22 GB ในวอลุ่มที่มีโปรไฟล์ Chrome
- GPU: VRAM มากกว่า 4 GB เท่านั้น
- เครือข่าย: อินเทอร์เน็ตแบบไม่จำกัดหรือการเชื่อมต่อแบบไม่จำกัดปริมาณ
ข้อกำหนดเหล่านี้มีไว้สำหรับคุณในกระบวนการพัฒนาและผู้ใช้ที่ทำงานกับฟีเจอร์ที่คุณสร้าง
ลงชื่อสมัครทดลองใช้จากต้นทาง
Rewriter API พร้อมใช้งานในช่วงทดลองใช้จากต้นทางร่วมกับ Writer API วิธีเริ่มใช้ API เหล่านี้
- รับทราบนโยบายการใช้งานที่ไม่อนุญาตสำหรับ Generative AI ของ Google
- ไปที่ช่วงทดลองใช้ Rewriter API จากต้นทาง
- คลิกลงทะเบียน แล้วกรอกแบบฟอร์ม ในช่องต้นทางของเว็บ ให้ระบุต้นทางหรือรหัสส่วนขยาย
chrome-extension://YOUR_EXTENSION_ID
- คลิกลงทะเบียนเพื่อส่งข้อมูล
- คัดลอกโทเค็นที่ระบุ แล้วเพิ่มลงในหน้าเว็บทุกหน้าในต้นทางของคุณที่เข้าร่วม หรือรวมไว้ในไฟล์ Manifest ของส่วนขยาย
- เริ่มใช้ Rewriter API
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีเริ่มต้นใช้งานการทดสอบต้นทาง
เพิ่มการรองรับ localhost
หากต้องการเข้าถึง Writer และ Rewriter API ใน localhost ในระหว่างช่วงทดลองใช้จากต้นทาง คุณต้องอัปเดต Chrome เป็นเวอร์ชันล่าสุด จากนั้น ดำเนินการตามขั้นตอนเหล่านี้:
- ไปที่
chrome://flags/#rewriter-api-for-gemini-nano
- เลือกเปิดใช้
- คลิกเปิดใหม่หรือรีสตาร์ท Chrome
ใช้ Rewriter API
ก่อนอื่น ให้เรียกใช้การตรวจหาฟีเจอร์เพื่อดูว่าเบราว์เซอร์รองรับ API เหล่านี้หรือไม่
if ('Rewriter' in self) {
// The Rewriter API is supported.
}
Rewriter API และ AI API ในตัวอื่นๆ ทั้งหมดผสานรวมอยู่ในเบราว์เซอร์ ระบบจะดาวน์โหลด Gemini Nano แยกต่างหากเมื่อเว็บไซต์ใดก็ตามใช้ AI API ในตัวเป็นครั้งแรก ในทางปฏิบัติ หากผู้ใช้โต้ตอบกับ API ในตัวแล้ว แสดงว่าผู้ใช้ได้ดาวน์โหลดโมเดลลงในเบราว์เซอร์แล้ว
หากต้องการตรวจสอบว่าโมเดลพร้อมใช้งานหรือไม่ ให้เรียกใช้ฟังก์ชันแบบแอซิงโครนัส Rewriter.availability()
โดยจะแสดงผลสตริงที่มีค่าได้ 4 ค่า ดังนี้
unavailable
: เบราว์เซอร์รองรับ Rewriter API แต่ใช้งานไม่ได้ในขณะนี้ ซึ่งอาจเกิดจากสาเหตุหลายประการ เช่น พื้นที่ในดิสก์ไม่เพียงพอที่จะดาวน์โหลดโมเดลavailable
: เบราว์เซอร์รองรับ Rewriter API และสามารถใช้งานได้ทันทีdownloadable
: เบราว์เซอร์รองรับ Rewriter API แต่ต้องดาวน์โหลดโมเดลก่อนdownloading
: เบราว์เซอร์รองรับ Rewriter API และกำลังดาวน์โหลดโมเดล
หากต้องการเรียกให้ดาวน์โหลดโมเดลและเริ่มเครื่องมือเขียนใหม่ ให้เรียกใช้Rewriter.create()
ฟังก์ชัน หากคำตอบสำหรับ availability()
คือ downloadable
ให้ฟังความคืบหน้าการดาวน์โหลดและแจ้งให้ผู้ใช้ทราบ เนื่องจากอาจใช้เวลาสักครู่ในการดาวน์โหลด
const rewriter = await Rewriter.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
ฟังก์ชัน API
ฟังก์ชัน create()
ช่วยให้คุณกําหนดค่าออบเจ็กต์โปรแกรมเปลี่ยนรูปแบบใหม่ได้ โดยจะใช้ออบเจ็กต์ options
(ไม่บังคับ) ที่มีพารามิเตอร์ต่อไปนี้
tone
: ระดับภาษา อาจหมายถึงสไตล์ ลักษณะ หรือทัศนคติของเนื้อหา โดยสามารถตั้งค่าเป็นmore-formal
,as-is
(ค่าเริ่มต้น) หรือmore-casual
format
: การจัดรูปแบบเอาต์พุตซึ่งมีค่าที่อนุญาตคือas-is
(ค่าเริ่มต้น),markdown
และplain-text
length
: ความยาวของเอาต์พุต ซึ่งมีค่าที่อนุญาตคือshorter
,as-is
(ค่าเริ่มต้น) และlonger
sharedContext
: เมื่อเขียนเนื้อหาหลายรายการใหม่ บริบทที่แชร์จะช่วยให้โมเดลสร้างเนื้อหาที่ตรงกับความต้องการของคุณได้ดีขึ้น
ตัวอย่างต่อไปนี้แสดงวิธีเริ่มต้นออบเจ็กต์ 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);
});
}
เริ่มเขียนใหม่
การส่งออกเนื้อหาจากโมเดลทำได้ 2 วิธี ได้แก่ แบบไม่สตรีมและสตรีม
เอาต์พุตแบบไม่สตรีม
เมื่อใช้การเขียนใหม่แบบไม่สตรีม โมเดลจะประมวลผลอินพุตทั้งหมดแล้วสร้างเอาต์พุต
หากต้องการเอาต์พุตแบบไม่สตรีม ให้เรียกใช้ฟังก์ชัน rewrite()
แบบไม่พร้อมกัน คุณต้องใส่ข้อความเริ่มต้นที่ต้องการเขียนใหม่ คุณสามารถเพิ่มcontext
(ไม่บังคับ) เพื่อระบุข้อมูลเบื้องหลังของโมเดล ซึ่งอาจช่วยให้โมเดลเป็นไปตามความคาดหวังของคุณสำหรับเอาต์พุตได้ดีขึ้น
// 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."
});
เอาต์พุตการเขียนสตรีมใหม่
สตรีมมิงแสดงผลลัพธ์แบบเรียลไทม์ เอาต์พุตจะอัปเดตอย่างต่อเนื่องเมื่อมีการเพิ่มและปรับอินพุต
หากต้องการรับเครื่องมือเขียนใหม่แบบสตรีม ให้เรียกใช้ฟังก์ชัน rewriteStreaming()
แล้ววนซ้ำผ่านกลุ่มข้อความที่ใช้ได้ในสตรีม คุณเพิ่มcontext
(ไม่บังคับ) เพื่อระบุข้อมูลเบื้องหลังของโมเดลได้ ซึ่งอาจช่วยให้โมเดลทำงานได้ตามที่คุณคาดหวังสำหรับเอาต์พุตมากขึ้น
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);
}
แชร์บริบทสำหรับงานหลายรายการ
คุณอาจต้องการใช้ rewriter
เพื่อสร้างเนื้อหาหลายรายการ ในกรณีนี้ คุณควรเพิ่ม sharedContext
เช่น คุณอาจต้องช่วยให้ผู้รีวิวแสดงความคิดเห็นที่เป็นประโยชน์มากขึ้น
// 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);
}
ใช้เครื่องมือเขียนใหม่ซ้ำ
คุณใช้เครื่องมือเขียนใหม่เดียวกันเพื่อแก้ไขเนื้อหาหลายรายการได้ ซึ่งอาจมีประโยชน์อย่างยิ่งหากเพิ่มเครื่องมือเขียนใหม่ลงในเครื่องมือแสดงความคิดเห็นหรือเครื่องมือรับความคิดเห็น เพื่อช่วยให้นักเขียนให้ความคิดเห็นที่เป็นประโยชน์และมีประสิทธิภาพ
// 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",
})
),
);
หยุดเครื่องมือเขียนใหม่
หากต้องการสิ้นสุดกระบวนการเขียนใหม่ ให้ยกเลิกการทำงานของตัวควบคุมและทำลาย 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();
สาธิต
มีส่วนร่วมและแชร์ความคิดเห็น
Writer และ Rewriter API อยู่ระหว่างการหารือและอาจมีการเปลี่ยนแปลงในอนาคต หากลองใช้ API นี้แล้วมีความคิดเห็น เรายินดีรับฟัง
- อ่านคำอธิบาย ตั้งคำถาม และเข้าร่วมการสนทนา
- ตรวจสอบการใช้งาน Chrome ในสถานะ Chrome
- เข้าร่วมโปรแกรมทดลองใช้ก่อนเปิดตัวเพื่อดูตัวอย่าง API ใหม่ก่อนเปิดตัวและเข้าถึงรายชื่ออีเมลของเรา
- หากมีความคิดเห็นเกี่ยวกับการใช้งาน Chrome ให้รายงานข้อบกพร่อง Chromium
สำรวจ AI API ในตัวทั้งหมดที่ใช้โมเดล ซึ่งรวมถึง Gemini Nano และโมเดลอื่นๆ สำหรับผู้เชี่ยวชาญในเบราว์เซอร์