เผยแพร่: 11 พฤศจิกายน 2024, อัปเดตล่าสุด: 30 กรกฎาคม 2025
คำอธิบาย | เว็บ | ส่วนขยาย | สถานะของ Chrome | ความตั้งใจ |
---|---|---|---|---|
MDN | ดู | ความตั้งใจที่จะจัดส่ง |
คุณสามารถให้ผู้ใช้กลั่นกรองบทความยาวๆ เอกสารที่ซับซ้อน หรือแม้แต่การสนทนาในแชทที่สนุกสนานให้กลายเป็นข้อมูลสรุปที่กระชับและมีข้อมูลเชิงลึกได้
คุณสามารถใช้ Summarizer API เพื่อสร้างข้อมูลสรุปประเภทต่างๆ ใน ความยาวและรูปแบบที่หลากหลาย เช่น ประโยค ย่อหน้า รายการหัวข้อย่อย และอื่นๆ เราเชื่อว่า API นี้มีประโยชน์ในสถานการณ์ต่อไปนี้
- สรุปประเด็นสำคัญของบทความหรือการสนทนาในแชท
- แนะนำชื่อและหัวข้อสำหรับบทความ
- สร้างข้อมูลสรุปที่กระชับและให้ข้อมูลจากข้อความที่มีความยาว
- การสร้างทีเซอร์สำหรับหนังสือโดยอิงตามรีวิวหนังสือ
เริ่มต้นใช้งาน
Summarizer API พร้อมใช้งานใน Chrome 138 เวอร์ชันเสถียร
ก่อนใช้ API นี้ โปรดยอมรับนโยบายการใช้งานที่ไม่อนุญาตสำหรับ Generative AI ของ Google
เรียกใช้การตรวจหาฟีเจอร์เพื่อดูว่าเบราว์เซอร์รองรับ Summarizer API หรือไม่
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
ตรวจสอบข้อกำหนดเกี่ยวกับฮาร์ดแวร์
นักพัฒนาแอปและผู้ใช้ที่ใช้งานฟีเจอร์โดยใช้ API เหล่านี้ใน Chrome ต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้ เบราว์เซอร์อื่นๆ อาจมีข้อกำหนดในการใช้งานที่แตกต่างกัน
API ตรวจหาภาษาและ API แปลภาษาใช้งานได้ใน Chrome บนเดสก์ท็อป API เหล่านี้ใช้ไม่ได้ใน อุปกรณ์เคลื่อนที่ Prompt API, Summarizer API, Writer API และ Rewriter API จะทำงานใน Chrome เมื่อเป็นไปตามเงื่อนไขต่อไปนี้
- ระบบปฏิบัติการ: Windows 10 หรือ 11, macOS 13 ขึ้นไป (Ventura ขึ้นไป) หรือ Linux Chrome สำหรับ Android, iOS และ ChromeOS ยังไม่รองรับ API ที่ใช้ Gemini Nano
- พื้นที่เก็บข้อมูล: มีพื้นที่ว่างอย่างน้อย 22 GB ในวอลุ่มที่มี โปรไฟล์ Chrome
- GPU: VRAM มากกว่า 4 GB เท่านั้น
- เครือข่าย: อินเทอร์เน็ตแบบไม่จำกัดหรือการเชื่อมต่อแบบไม่จำกัดปริมาณ
ขนาดที่แน่นอนของ Gemini Nano อาจแตกต่างกันไปเมื่อเบราว์เซอร์อัปเดตโมเดล หากต้องการดูขนาดปัจจุบัน ให้ไปที่ chrome://on-device-internals
แล้วไปที่
สถานะโมเดล เปิดเส้นทางไฟล์ที่ระบุเพื่อกำหนดขนาดโมเดล
การดาวน์โหลดโมเดล
API สรุปจะใช้โมเดลที่ได้รับการฝึกให้สร้างข้อมูลสรุปคุณภาพสูง API นี้มีอยู่ใน Chrome และ Gemini Nano คือโมเดลที่ดาวน์โหลด เมื่อเว็บไซต์ใช้ API นี้เป็นครั้งแรก
หากต้องการตรวจสอบว่าโมเดลพร้อมใช้งานหรือไม่ ให้เรียกใช้ฟังก์ชันแบบอะซิงโครนัส
Summarizer.availability()
หากการตอบกลับ availability()
คือ downloadable
ให้รอฟังความคืบหน้าในการดาวน์โหลด
เพื่อแจ้งให้ผู้ใช้ทราบความคืบหน้า เนื่องจากอาจใช้เวลาสักครู่
const availability = await Summarizer.availability();
หากต้องการทริกเกอร์การดาวน์โหลดโมเดลและสร้างเครื่องมือสรุป ให้ตรวจสอบ
การเปิดใช้งานผู้ใช้ จากนั้นเรียกใช้
ฟังก์ชัน Summarizer.create()
แบบไม่พร้อมกัน
// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
ฟังก์ชัน API
ฟังก์ชัน create()
ช่วยให้คุณกำหนดค่าออบเจ็กต์สรุปใหม่ตามความต้องการได้ โดยจะใช้ออบเจ็กต์ options
ที่ไม่บังคับซึ่งมีพารามิเตอร์ต่อไปนี้
sharedContext
: บริบทเพิ่มเติมที่แชร์ซึ่งอาจช่วยสรุปได้type
: ประเภทของการสรุป โดยมีค่าที่อนุญาตคือkey-points
(ค่าเริ่มต้น),tldr
,teaser
และheadline
ดูรายละเอียดในตารางต่อไปนี้format
: รูปแบบของการสรุป โดยมีค่าที่อนุญาตคือmarkdown
(ค่าเริ่มต้น) และplain-text
length
: ความยาวของข้อมูลสรุป โดยมีค่าที่อนุญาตคือshort
,medium
(ค่าเริ่มต้น) และlong
ความหมายของระยะเวลาเหล่านี้จะแตกต่างกันไปตามtype
ที่ขอ ตัวอย่างเช่น ในการใช้งานของ Chrome สรุปประเด็นสำคัญแบบสั้นประกอบด้วยหัวข้อย่อย 3 รายการ และสรุปแบบสั้นคือ 1 ประโยค
เมื่อตั้งค่าแล้ว คุณจะเปลี่ยนพารามิเตอร์ไม่ได้ สร้างออบเจ็กต์สรุปใหม่ หากต้องการแก้ไขพารามิเตอร์
ตารางต่อไปนี้แสดงสรุปประเภทต่างๆ และความยาวที่สอดคล้องกัน ความยาวที่ระบุคือค่าสูงสุดที่เป็นไปได้ เนื่องจากบางครั้งผลลัพธ์อาจสั้นกว่านี้
ประเภท | ความหมาย | ความยาว | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" |
ข้อมูลสรุปควรสั้นและตรงประเด็น โดยให้ภาพรวมคร่าวๆ ของ อินพุต ซึ่งเหมาะสำหรับผู้อ่านที่ไม่มีเวลา |
|
||||||
"teaser" |
ข้อมูลสรุปควรเน้นส่วนที่น่าสนใจที่สุดของอินพุต ซึ่งออกแบบมาเพื่อดึงดูดให้ผู้อ่านอ่านต่อ |
|
||||||
"key-points" |
ข้อมูลสรุปควรดึงประเด็นที่สำคัญที่สุดจากข้อมูลที่ป้อน ซึ่งแสดงเป็นรายการหัวข้อย่อย |
|
||||||
"headline" |
ข้อมูลสรุปควรมีประเด็นหลักของอินพุตอย่างมีประสิทธิภาพใน ประโยคเดียวในรูปแบบของพาดหัวข่าว |
|
เช่น คุณสามารถเริ่มต้นใช้งานเครื่องมือสรุปเพื่อแสดงผลความยาวปานกลางของ ประเด็นสำคัญในมาร์กดาวน์
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);
}
เรียกใช้เครื่องมือสรุป
คุณเรียกใช้เครื่องมือสรุปได้ 2 วิธี ได้แก่ การสตรีมและแบบเป็นกลุ่ม (ไม่ใช่การสตรีม)
การสรุปแบบกลุ่ม
การสรุปแบบเป็นชุดทำให้โมเดลประมวลผลอินพุตทั้งหมดและ สร้างเอาต์พุต
หากต้องการรับข้อมูลสรุปแบบเป็นชุด ให้เรียกใช้ฟังก์ชัน summarize()
อาร์กิวเมนต์แรกคือข้อความที่ต้องการสรุป อาร์กิวเมนต์ที่ 2 ซึ่งไม่บังคับ
คือออบเจ็กต์ที่มีฟิลด์ context
ฟิลด์นี้ช่วยให้คุณเพิ่มรายละเอียดเบื้องหลัง
ที่อาจช่วยปรับปรุงการสรุปได้
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
การสรุปจากสตรีมมิง
การสรุปการสตรีมจะแสดงผลลัพธ์แบบเรียลไทม์
เอาต์พุตจะอัปเดตอย่างต่อเนื่องเมื่อมีการเพิ่มและปรับอินพุต หากต้องการรับ
สรุปการสตรีม ให้เรียกใช้ summarizeStreaming()
แทน 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);
}
สาธิต
คุณลองใช้ Summarizer API ได้ใน Summarizer API Playground
นโยบายสิทธิ์, iframe และ Web Worker
โดยค่าเริ่มต้น API สรุปจะพร้อมใช้งานเฉพาะในหน้าต่างระดับบนสุดและ iframe ที่มีแหล่งที่มาเดียวกัน
คุณมอบสิทธิ์เข้าถึง API ให้กับ iframe แบบข้ามต้นทางได้
โดยใช้แอตทริบิวต์ 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 Summarizer API by
setting the `allow="summarizer"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="summarizer"></iframe>
ขณะนี้ Summarizer API ยังไม่พร้อมใช้งานใน Web Workers เนื่องจากความซับซ้อนของการ สร้างเอกสารที่รับผิดชอบสำหรับแต่ละ Worker เพื่อตรวจสอบสถานะนโยบาย สิทธิ์
ความพยายามในการกำหนดมาตรฐาน
เรากำลังดำเนินการเพื่อกำหนดมาตรฐาน Summarizer API เพื่อให้เข้ากันได้กับเบราว์เซอร์ต่างๆ
W3C WebML Working Group ได้นำ Summarizer API และ Writing Assistance APIs อื่นๆ ไปใช้ เราได้สอบถามMozilla และ WebKit เกี่ยวกับ จุดยืนด้านมาตรฐาน
แชร์ความคิดเห็น
เราอยากเห็นสิ่งที่คุณสร้างด้วย Summarizer API แชร์เว็บไซต์และเว็บแอปพลิเคชันของคุณกับเราบน X, YouTube และ LinkedIn
หากต้องการส่งความคิดเห็นเกี่ยวกับการใช้งาน Chrome ให้ยื่นรายงานข้อบกพร่อง หรือคำขอฟีเจอร์