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

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

Browser Support

  • Chrome: 138.
  • Edge: 138.
  • Firefox: not supported.
  • Safari: not supported.

Source

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

คุณสามารถใช้ Summarizer API เพื่อสร้างข้อมูลสรุปประเภทต่างๆ ที่มีความยาวและรูปแบบที่หลากหลาย เช่น ประโยค ย่อหน้า รายการสัญลักษณ์หัวข้อย่อย และอื่นๆ เราเชื่อว่า API นี้มีประโยชน์ในสถานการณ์ต่อไปนี้

  • สรุปประเด็นสำคัญของบทความหรือการสนทนาแชท
  • แนะนำชื่อและหัวข้อสำหรับบทความ
  • สร้างข้อมูลสรุปที่กระชับและให้ข้อมูลของข้อความยาวๆ
  • สร้างทีเซอร์สำหรับหนังสือโดยอิงตามรีวิวหนังสือ

เริ่มต้นใช้งาน

Summarizer API พร้อมใช้งานใน Chrome 138 เวอร์ชันเสถียร

เรียกใช้การตรวจหาฟีเจอร์เพื่อดูว่าเบราว์เซอร์รองรับ Summarizer API หรือไม่

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

ตรวจสอบข้อกำหนดของฮาร์ดแวร์

นักพัฒนาแอปและผู้ใช้ที่ใช้ฟีเจอร์โดยใช้ API เหล่านี้ใน Chrome ต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้ เบราว์เซอร์อื่นๆ อาจมีข้อกำหนดในการทำงานที่แตกต่างกัน

Language Detector และ Translator API ทำงานใน Chrome บน เดสก์ท็อป แต่ API เหล่านี้ไม่ทำงานในอุปกรณ์เคลื่อนที่

Prompt API, Summarizer API, Writer API, Rewriter API และ Proofreader API ทำงานใน Chrome เมื่อเป็นไปตามเงื่อนไขต่อไปนี้

  • ระบบปฏิบัติการ: Windows 10 หรือ 11, macOS 13 ขึ้นไป (Ventura ขึ้นไป), Linux หรือ ChromeOS (ตั้งแต่แพลตฟอร์ม 16389.0.0 ขึ้นไป) ใน อุปกรณ์ Chromebook Plus API ที่ใช้ Gemini Nano ยังไม่รองรับ Chrome สำหรับ Android, iOS และ ChromeOS ในอุปกรณ์ที่ไม่ใช่ Chromebook Plus
  • พื้นที่เก็บข้อมูล: มีพื้นที่ว่างอย่างน้อย 22 GB ในโวลุ่มที่มีโปรไฟล์ Chrome
  • GPU หรือ CPU: โมเดลในตัวสามารถทำงานร่วมกับ GPU หรือ CPU ได้
    • GPU: VRAM มากกว่า 4 GB
    • CPU: RAM 16 GB ขึ้นไปและ CPU 4 คอร์ขึ้นไป
    • หมายเหตุ: Prompt API ที่มีอินพุตเสียงต้องใช้ GPU
  • เครือข่าย: อินเทอร์เน็ตแบบไม่จำกัดหรือการเชื่อมต่อแบบไม่จำกัดปริมาณข้อมูล

ขนาดที่แน่นอนของ Gemini Nano อาจแตกต่างกันไปเมื่อเบราว์เซอร์อัปเดตโมเดล หากต้องการดูขนาดปัจจุบัน ให้ไปที่ chrome://on-device-internals

การดาวน์โหลดโมเดล

Summarizer 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 ประโยค
  • preference: กลไกสำหรับนักพัฒนาแอปในการระบุว่าต้องการให้ความสำคัญกับการดำเนินการที่รวดเร็วหรือความสามารถที่ครอบคลุม
    • auto: เบราว์เซอร์จะปรับสมดุลความเร็วในการดำเนินการกับความสามารถในการสรุป และอาจปรับการประมวลผลภายในแบบไดนามิกตามสภาพแวดล้อม ข้อจำกัดของระบบ หรือบริบท
    • speed: เบราว์เซอร์ควรให้ความสำคัญกับเวลาในการตอบสนองต่ำและการดำเนินการที่รวดเร็ว แนวทางนี้ให้ความสำคัญกับประสิทธิภาพ ซึ่งอาจจำกัดความสามารถในการสรุป และอาจส่งผลให้การแยกข้อมูลมีความซับซ้อนน้อยลงหรือการสังเคราะห์ข้อความต้นฉบับง่ายขึ้น
    • capability: เบราว์เซอร์ควรให้ความสำคัญกับความครอบคลุมและความสอดคล้องกันของการสรุป รวมถึงโมเดลที่มีความยืดหยุ่นมากขึ้นในแง่ของประเภทข้อมูลสรุปและตัวเลือกอื่นๆ ที่กำหนดค่าได้ แนวทางนี้มุ่งเน้นที่การจับบริบทที่ละเอียดอ่อนอย่างแม่นยำและการสร้างข้อมูลสรุปที่ปรับแต่งมาอย่างดี ซึ่งอาจส่งผลให้เวลาในการตอบสนองสูงขึ้นและความเร็วในการดำเนินการช้าลง

เมื่อตั้งค่าแล้ว คุณจะเปลี่ยนพารามิเตอร์ไม่ได้ ให้สร้างออบเจ็กต์เครื่องมือสรุปใหม่หากต้องการแก้ไขพารามิเตอร์

ตารางต่อไปนี้แสดงข้อมูลสรุปประเภทต่างๆ และความยาวที่เกี่ยวข้อง ความยาวแสดงถึงค่าสูงสุดที่เป็นไปได้ เนื่องจากบางครั้งผลลัพธ์อาจสั้นกว่า

ประเภท ความหมาย ความยาว
"tldr" ข้อมูลสรุปควรสั้นและตรงประเด็น โดยให้ภาพรวมโดยย่อของ อินพุต เหมาะสำหรับผู้อ่านที่ยุ่ง
สั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"teaser" ข้อมูลสรุปควรเน้นส่วนที่น่าสนใจที่สุดของ อินพุต โดยออกแบบมาเพื่อดึงดูดผู้อ่านให้อ่านเพิ่มเติม
สั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"key-points" ข้อมูลสรุปควรแยกประเด็นสำคัญที่สุดจากอินพุต แสดงเป็นรายการสัญลักษณ์หัวข้อย่อย
สั้น สัญลักษณ์หัวข้อย่อย 3 รายการ
ปานกลาง สัญลักษณ์หัวข้อย่อย 5 รายการ
ยาว สัญลักษณ์หัวข้อย่อย 7 รายการ
"headline" ข้อมูลสรุปควรมีประเด็นหลักของอินพุตอยู่ใน ประโยคเดียวอย่างมีประสิทธิภาพ ในรูปแบบของบรรทัดแรกของบทความ
สั้น 12 คำ
ปานกลาง 17 คำ
ยาว 22 คำ

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

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);
}

กำหนดภาษาที่คาดไว้

Summarizer API รองรับหลายภาษา ตั้งค่าภาษาอินพุต เอาต์พุต และบริบทที่คาดไว้เมื่อสร้างเซสชัน วิธีนี้จะช่วยให้เบราว์เซอร์ปฏิเสธคำขอได้หากเบราว์เซอร์ไม่รองรับการผสมภาษาที่เฉพาะเจาะจง

const summarizer = await Summarizer.create({
  type: 'key-points',
  expectedInputLanguages: ['en', 'ja', 'es'],
  outputLanguage: 'es',
  expectedContextLanguages: ['en'],
  sharedContext: 'These are requests to summarize articles from a multilanguage newspaper. The users expect a response in Spanish.',
});

คุณเรียกใช้เครื่องมือสรุปได้ 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

โดยค่าเริ่มต้น Summarizer API จะใช้ได้เฉพาะกับหน้าต่างระดับบนสุดและ iframe ที่มีต้นทางเดียวกัน คุณสามารถมอบสิทธิ์เข้าถึง API ให้กับ iframe แบบข้ามต้นทางได้ โดยใช้แอตทริบิวต์ของนโยบายสิทธิ์ 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 Worker เนื่องจากความซับซ้อนในการสร้างเอกสารที่รับผิดชอบสำหรับ Worker แต่ละรายการเพื่อตรวจสอบสถานะนโยบายสิทธิ์

แชร์ความคิดเห็น

เราอยากเห็นสิ่งที่คุณสร้างด้วย Summarizer API แชร์ เว็บไซต์และเว็บแอปพลิเคชันกับเราได้ทาง X, YouTube และ LinkedIn

หากต้องการแสดงความคิดเห็นเกี่ยวกับการติดตั้งใช้งานของ Chrome โปรดยื่น รายงานข้อบกพร่อง หรือ คำขอฟีเจอร์