發布日期:2025 年 3 月 12 日,上次更新日期:2025 年 5 月 28 日
說明 | 網頁 | 額外資訊 | Chrome 狀態 | Intent |
---|---|---|---|---|
MDN | 查看 | Intent to Ship |
Summarizer API 可協助您以各種長度和格式產生資訊摘要。搭配 Chrome 中的 Gemini Nano 或瀏覽器內建的其他語言模型使用,簡潔地解釋長篇或複雜的文字。
執行用戶端時,您可以在本機處理資料,進而保護機密資料安全,並提供大規模的可用性。不過,情境視窗比伺服器端模型小得多,因此很難為超大型文件製作摘要。如要解決這個問題,您可以使用「摘要的摘要」技巧。
什麼是摘要的摘要?
如要使用「摘要的摘要」技巧,請在關鍵點分割輸入內容,然後分別摘要每個部分。您可以將各部分的輸出內容連接起來,然後將連接後的文字濃縮為最終摘要。

妥善分割內容
請務必考量如何分割大量文字,因為不同的策略可能會導致 LLM 產生不同的輸出內容。在主題變更時,例如文章的新章節或段落,建議您分割文字。請務必避免在字詞或句子中間分隔文字,也就是說,您不能只以字元數量做為分隔指南。
您可以透過多種方式進行,在以下範例中,我們使用了 LangChain.js 中的遞迴文字切割器,以平衡效能和輸出品質。這應該適用於大多數工作負載。
建立新執行個體時,有兩個重要的參數:
chunkSize
是每個分割項目允許的字元數上限。chunkOverlap
是兩個連續分割作業之間重疊的字元數量。這樣可確保每個區塊都包含先前區塊的部分內容。
使用 splitText()
分割文字,傳回每個區塊的字串陣列。
大多數大型語言模型的脈絡窗口會以符號數量表示,而非字元數量。平均而言,一個符記包含 4 個字元。在本例中,chunkSize
的長度為 3, 000 個半形字元,約為 750 個符記。
判斷符記的可用性
如要判斷可用於輸入內容的符記數量,請使用 measureInputUsage()
方法和 inputQuota
屬性。在這種情況下,實作方式沒有限制,因為您無法得知摘要器要執行多少次才能處理所有文字。
為每個分割區產生摘要
設定內容分割方式後,您就可以使用 Summarizer API 為每個部分產生摘要。
使用 create()
函式建立摘要器的例項。為盡可能保留背景資訊,我們將 format
參數設為 plain-text
、type
設為 tldr
,並將 length
設為 long
。
接著,針對 RecursiveCharacterTextSplitter
建立的每個分割項目產生摘要,並將結果串連成新的字串。我們以新行分隔每個摘要,以便清楚標示每個部分的摘要。
雖然執行此迴圈一次時,這行新程式碼無關緊要,但這會很有助於判斷每個摘要如何為最終摘要新增符記值。在大多數情況下,這項解決方案適用於中長篇內容。
摘要的遞迴摘要
如果文字量過長,連接後的摘要長度可能會大於可用的背景期間,導致摘要作業失敗。如要解決這個問題,您可以遞迴地匯總摘要。

我們仍會收集 RecursiveCharacterTextSplitter
產生的初始分割項目。接著,在 recursiveSummarizer()
函式中,我們會根據連接分割字串的字元長度,循環執行摘要程序。如果摘要的字元長度超過 3000
,我們會將其連接至 fullSummaries
。如果未達到限制,摘要會儲存為 partialSummaries
。
產生所有摘要後,系統會將最終的部分摘要加入完整摘要。如果 fullSummaries
中只有 1 個摘要,就不需要額外遞迴。函式會傳回最終摘要。如果有超過一則摘要,函式會重複並繼續摘要部分摘要。
我們使用 Internet Relay Chat (IRC) RFC 測試這個解決方案,該文件包含 17,560 個字詞,總共 110,030 個字元。Summarizer API 提供以下摘要:
Internet Relay Chat (IRC) 是一種使用文字訊息即時在線上進行通訊的方式。你可以在頻道中即時通訊或傳送私人訊息,也可以使用指令控制即時通訊並與伺服器互動。就像是網際網路上的聊天室,你可以輸入內容,並即時查看其他人的訊息。
這麼做很有效!而且只有 309 個半形字元。
限制
摘要的摘要技術可協助您在用戶端大小模型的內容視窗中運作。雖然用戶端 AI 有許多好處,但您可能會遇到以下情況:
- 摘要不夠準確:使用遞迴時,摘要程序重複的次數可能會無限,且每個摘要都會離原始文字越來越遠。這表示模型產生的最終摘要可能太淺,無法提供實用資訊。
- 效能較慢:每份摘要都需要花費時間產生。同樣地,由於較長的文字可能有無限的摘要,因此這個方法可能需要幾分鐘才能完成。
提供意見
請嘗試使用摘要的摘要技術,並搭配 Summarizer API 使用不同長度的輸入文字、不同分割大小和不同重疊長度。
- 如要提供 Chrome 實作方式的意見回饋,請提交錯誤報告或功能要求。
- 參閱 MDN 上的說明文件
- 與 Chrome AI 團隊對談,瞭解摘要產生程序或任何其他內建 AI 相關問題。