สรุปด้วย AI ในตัว

เผยแพร่: 11 พฤศจิกายน 2024, อัปเดตล่าสุด: 30 กรกฎาคม 2025

คำอธิบาย เว็บ ส่วนขยาย สถานะของ Chrome ความตั้งใจ
MDN Chrome 138 Chrome 138 ดู ความตั้งใจที่จะจัดส่ง

คุณสามารถให้ผู้ใช้กลั่นกรองบทความยาวๆ เอกสารที่ซับซ้อน หรือแม้แต่การสนทนาในแชทที่สนุกสนานให้กลายเป็นข้อมูลสรุปที่กระชับและมีข้อมูลเชิงลึกได้

คุณสามารถใช้ 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" ข้อมูลสรุปควรสั้นและตรงประเด็น โดยให้ภาพรวมคร่าวๆ ของ อินพุต ซึ่งเหมาะสำหรับผู้อ่านที่ไม่มีเวลา
วิดีโอสั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"teaser" ข้อมูลสรุปควรเน้นส่วนที่น่าสนใจที่สุดของอินพุต ซึ่งออกแบบมาเพื่อดึงดูดให้ผู้อ่านอ่านต่อ
วิดีโอสั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"key-points" ข้อมูลสรุปควรดึงประเด็นที่สำคัญที่สุดจากข้อมูลที่ป้อน ซึ่งแสดงเป็นรายการหัวข้อย่อย
วิดีโอสั้น หัวข้อย่อย 3 รายการ
ปานกลาง หัวข้อย่อย 5 รายการ
ยาว หัวข้อย่อย 7 รายการ
"headline" ข้อมูลสรุปควรมีประเด็นหลักของอินพุตอย่างมีประสิทธิภาพใน ประโยคเดียวในรูปแบบของพาดหัวข่าว
วิดีโอสั้น 12 คำ
ปานกลาง 17 คำ
ยาว 22 คำ

เช่น คุณสามารถเริ่มต้นใช้งานเครื่องมือสรุปเพื่อแสดงผลความยาวปานกลางของ ประเด็นสำคัญในมาร์กดาวน์

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 ให้ยื่นรายงานข้อบกพร่อง หรือคำขอฟีเจอร์