公開日: 2025 年 5 月 15 日
一般の人々は、地域、国内、国際的な出来事について知るために、また、思慮深い視点を共有するために、ニュース メディアを頼りにしています。今日のペースの速い環境では、記事の要約は複雑な情報をアクセス可能なスニペットに凝縮し、読者がさらに詳しく調べるように促すための重要な戦略です。Bright Sites と Terra が Summarizer API を使用してこの戦略にどのように取り組んでいるかをご覧ください。
| 商品の解説 | ウェブ | 拡張機能 | Chrome ステータス | インテント |
|---|---|---|---|---|
| MDN | 表示 | 発送の意向 |
Summarizer API を使用すると、文、段落、箇条書きリストなど、さまざまな長さと形式のさまざまな種類の要約を生成できます。この API は、多くの組み込み AI API と同様に、大規模言語モデルを使用して推論を実行します。
Bright Sites が The Standard にパーソナライズされた記事の要約を追加
Bright Sites の主要なニュース パブリッシング プラットフォームである Flow は、150 以上のパブリケーションをサポートしています。Bright Sites は、Summarizer API を AI 搭載の CMS に統合することで、ロンドンの象徴的なニュース ブランドである The Standard が読者に記事のパーソナライズされた要約を提供できるようにしています。これにより、ユーザーは記事を読んだり、The Standard の他の記事に回遊したりするようになります。
「Chrome で Gemini の最先端モデルを活用することで、The Standard の 198 年にわたる伝統と、信頼できるジャーナリズムをすぐに利用できることを重視する忙しい読者のための新しい技術革新が融合します。読者が自分のデバイスで作成された要約を使用してニュースをすばやく確認できるようにすることは、The Standard を再考し、読者のデジタル習慣を中心に新しい読者向けのプロダクトを構築する取り組みの 1 つです。」
- The Standard 社最高デジタル責任者 Jack Riley 氏
クライアントサイドの AI 要約機能を導入したことで、The Standard は追加のビジネス費用を発生させることなく、パーソナライズされた要約を生成できるようになりました。要約のスタイルや場所などのデータポイントを使用してクライアントサイドでこれを行うと、インターネットにアクセスできなくなっても、ユーザーは読み取りを続行できます。これは、ノートパソコンを持ってロンドンの地下鉄を利用する多くのユーザーにとって頻繁に発生する現象です。
まず、モデルと API のサポートと可用性を確認します。
// Check if the device supports built-in AI
// Trigger the model download if not yet available, on capable devices
export const deviceCheck = async () => {
const availability = await Summarizer.availability();
if (!availability || availability === 'unavailable') {
return {
summarizationAvailable: false,
message:
"AI summarization tools are not supported on this device" +
"or the appropriate permissions are not set.",
}
}
if (availability === 'downloadable') {
const shouldDownload = window.confirm(
`This page contains an AI summary, using an AI model provided by your
browser. Downloading the model, which could be multiple gigabytes in size,
is required to view the summary. Would you like to download the model?`);
if (!shouldDownload) {
return {
summarizationAvailable: false,
message: "User declined installation.",
}
}
// Trigger an installation
Summarizer.create();
return {
summarizationAvailable: false,
message: "Installing in the background. This may take a few minutes...",
}
}
if (availability === 'available') {
return {
summarizationAvailable: true,
message: "Ready for use.",
}
}
}
次の関数は、今後別のオンデバイス モデルまたはサーバーサイド モデルを使用できる汎用的な要約ツールを定義します。
/**
* Define the summarizer.
**/
export const aiSummarize = async (textToSummarize, options) => {
const availableSummarizationTools = getAvailableAiSummarizationTools()
if (availableSummarizationTools.has('builtInAi') && options?.builtInAI) {
// Generate the built-in AI summarizer and abort signal
const summarizer = await createBuiltInAISummarizer(options.builtInAi.options)
return await summarizer.summarize(textToSummarize, {
signal: options.builtInAi.signal,
})
}
throw new Error(
'AI summarization tools are not supported on this device or browser.',
)
}
Standard では、読者の要約設定が IndexedDB に保存され、パーソナライズされた要約が提供されます。
/**
* Log preferences in IndexDB for personalization
**/
abortController.current = new AbortController()
const preferencesDB = new PreferencesDB()
const summarization = await aiSummarize(articleContent, {
clientSideAI: {
options: await preferencesDB.getCreatesummarizerPreferences(),
signal: abortController.current.signal,
},
})
Terra がポルトガル語の記事の編集可能な要約をジャーナリストに提供
Terra は、ブラジル最大のコンテンツ ポータルの 1 つで、エンターテイメント、ニュース、スポーツを提供しており、月間のユニーク ユーザー数は 5,000 万人を超えています。Terra は、ジャーナリストがポルトガル語のニュース記事を瞬時に要約できるように、要約 API と翻訳 API をコンテンツ管理システム(CMS)に追加しました。ジャーナリストは、スタイルや正確性のためにいくつかの編集を行い、共同作成した要約を公開して、すべての読者がすぐに利用できるようにします。
Terra の CMS ではすでにサーバーサイド LLM が使用されていますが、チームはクライアントサイド AI を新たなメリットをもたらす可能性のある別のアプローチとして検討しました。Chrome の Summarizer API が、サーバーサイドの実装と同等の品質を提供していることがわかりました。クライアントサイドのソリューションは、Translator API と組み合わせて使用すると、良好な結果が得られました。
Terra は、主なメリットがあるため、Chrome の組み込み AI の実装を採用しました。クライアントサイド AI は、コスト削減とデータ ガバナンスの簡素化を実現しました。チームは、特に Summarizer API でのコンテンツ ウィンドウの制限の管理に関して、いくつかの課題に直面しましたが、慎重な実装方法でこれらの課題を克服することができました。
当初、Terra は、ニーズに対応するのに最適な要約タイプと共有コンテキストを特定するのに苦労していました。実験を通じて、Translator API で同様の品質の出力をポルトガル語で生成するには、明確で有用な英語の要約が不可欠であることがわかりました。組み込みの AI プレイグラウンドは、これらの課題を解決するうえで重要な役割を果たしました。Terra は、コードをリファクタリングすることなく、アイデアを迅速にテストできました。
次のサンプルは、Terra が Summarizer API を呼び出し、利用できない場合にユーザーにアラートを送信する方法を示しています。
async function summarizerByBuiltInAI(text) {
if (!(Summarizer)) {
//Alert users in Portuguese that "Summarizer API is not available"
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
try {
const availability = await Summarizer.availability();
if (availability !== 'available') {
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
const summaryContext = "Avoid jargon, use correct grammar, focus on clarity," +
"and ensure the user can grasp the articles purpose," +
"without needing to open the original content.";
const options = {
sharedContext: summaryContext,
type: 'teaser',
format: 'plain-text',
length: 'long',
}
if (availability === 'available') {
const summarizer = await Summarizer.create(options);
return await summarizer.summarize(text, {
context: summaryContext
})
}
// return the download of the Summarizer Model
if(availability === 'downloadable'){
return await Summarizer.create();
}
} catch (error) {
//EN: "Error using the Summarizer API"
cms_alert(ALERT_TYPE_ERROR, "Erro ao usar o Summarizer API.");
console.error("Erro ao usar o Summarizer API:", error);
return null
}
}
また、Terra は Translator API と組み合わせて要約ツールを使用し、元のポルトガル語の記事のタイトル、サブタイトル、本文を英語に翻訳しました。この翻訳されたバージョンは Summarizer API によって処理され、要約が生成されてから、ポルトガル語に翻訳されます。これにより、ユーザーはアプリの言語で要約されたコンテンツを受け取ることができます。
async function translateTextByBuiltInAI(text, sourceLanguage, targetLanguage) {
if (!('translation' in self && 'createTranslator' in self.translation)) {
return null
}
try {
const translator = await Translator.create({
sourceLanguage,
targetLanguage,
})
return await translator.translate(text)
} catch (error) {
throw error
}
}
const text = `Title: ${contentTitle};\n\n Sub-title: ${contentSubtitle};\n\n Article content: ${plainText}.`;
const canTranslate = await Translator.availability({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
if (canTranslate !== 'available') {
if (canTranslate === 'downloadable') {
try {
await Translator.create({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
//EN: "Language download completed successfully."
cms_alert(ALERT_TYPE_OK, "Download do idioma concluído com sucesso.");
} catch (downloadError) {
//EN: "Error downloading the language required for translation."
cms_alert(ALERT_TYPE_ERROR, "Erro ao realizar download do idioma necessário para tradução.");
return
}
} else {
//EN: "Translation is not available or not ready."
cms_alert(ALERT_TYPE_ERROR, "A tradução não está disponível ou não está pronta.");
return
}
}
const translatedText = await translateTextByBuiltInAI(text, 'pt', 'en')
const summarizedText = await summarizerByBuiltInAI(translatedText)
const translatedBackText = await translateTextByBuiltInAI(summarizedText, 'en', 'pt')
Terra が組み込みの AI API を統合したことで、コンテンツ管理ワークフローを強化するクライアントサイド AI の大きな可能性が実証されました。Terra は、Summarizer API と Translator API を活用して、ジャーナリストの能力を高め、効率を改善し、プラットフォーム全体でユーザー エクスペリエンスを向上させるための準備を整えています。
ベスト プラクティス
レビュー入力がトークン上限を超える場合は、次の軽減策を実施します。
- API に、より小さなサンプル(最新の 4 件のレビューなど)を使用します。これにより、結果をより早く生成できます。クライアントサイドの要約をスケーリングするに関するガイダンスをご覧ください。
QuotaExceededErrorは、入力でリクエストされたトークンに関する詳細情報を提供します。summarizerオブジェクトには、API のトークン上限を示すinputQuotaプロパティがあります。これにより、入力が上限を超えた場合にリアルタイムでフィードバックを送信し、機能を無効にできます。
すべてのユーザーにシームレスなエクスペリエンスを提供するために、ハイブリッド アプローチを検討することをおすすめします。組み込み AI API が初めて呼び出されるとき、ブラウザはモデルをダウンロードする必要があります。
- Miravia は、サーバーサイド モデルを使用して、モデルのダウンロード中に初期の要約を提供しました。組み込みモデルの準備が整うと、サイトはクライアントサイドで推論を実行するように切り替わりました。
常に、使いやすくコミュニケーションしやすいインターフェースを作成するように努める必要があります。
- モデルのダウンロードの進行状況バーを実装し、レスポンスの遅延を軽減します。
- モデルのダウンロードに関する透明性を考慮します。Bright Sites は、リソースの使用に関する透明性と同意を確保するため、モデルのダウンロードについてユーザーに通知しました。これにより、ユーザーは続行する前に同意または拒否できます。
結論と推奨事項
Bright Sites と Terra の例は、コンテンツのアクセシビリティと読者のエンゲージメントを高めるうえで Summarizer API がいかに有用であるかを示しています。このクライアントサイド API を使用することで、これらのプラットフォームは、追加のビジネス費用をかけずに、データ ガバナンスを簡素化しながら、読書体験とパーソナライズを改善しました。Summarizer API と同様に、すべての組み込み AI API は実用的なクライアントサイド AI を実現します。
Summarizer API が他のユースケースにどのように役立つかについては、また、Summarizer API が redBus と Miravia によるユーザー レビューの役立つ要約の作成にどのように役立っているかについてもご紹介しました。
これらの API を使用して新しいものを構築していますか?X の@ChromiumDev または LinkedIn の Chromium for Developers までお寄せください。
リソース
- Summarizer API の詳細
- Chrome で組み込み API の使用を開始する。
- ブロガーを支援する Prompt API の導入事例を読む。
- 翻訳と言語検出のケーススタディをご覧ください。
- Summarizer API が redBus と Miravia によるユーザー レビューの有用な要約の作成にどのように役立っているかをご覧ください。
謝辞
このドキュメントの作成とレビューにご協力いただいた、Terra の Guilherme Moser 氏と Fernando Fischer 氏、CWI の Aline Souza 氏、Brian Alford 氏、Keval Patel 氏、Brightsites のエンジニアリング チームの Jack Riley 氏、Swetha Gopalakrishnan 氏、Alexandra Klepper 氏、Thomas Steiner 氏、Kenji Baheux 氏に感謝いたします。