Summarizer: availability() static method
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
The availability()
static method of the Summarizer
interface returns an enumerated value that indicates whether the browser AI model supports (or will support) a given Summarizer
configuration.
Syntax
Summarizer.availability()
Summarizer.availability(options)
Parameters
options
Optional-
An options object specifying a possible configuration for a
Summarizer
. Possible values include:expectedInputLanguages
-
An array of strings equal to BCP 47 language tags (as specified in RFC 5646) specifying the expected languages of the input text. Defaults to
["en"]
. expectedContextLanguages
-
An array of strings equal to BCP 47 language tags specifying the expected languages of any provided context strings (either the
sharedContext
passed to theSummarizer
, or acontext
specified during asummarize()
orsummarizeStreaming()
call). Defaults to["en"]
. format
-
An enumerated value specifying the text
format
you want summaries returned in. Defaults tomarkdown
. length
-
An enumerated value specifying the relative
length
for the generated summaries. Defaults toshort
. outputLanguage
-
A string equal to a BCP 47 language tag specifying the expected language of summaries generated by the
Summarizer
. Defaults toen
. type
-
An enumerated value specifying the
type
of summary you want thisSummarizer
to generate. Defaults tokey-points
.
Return value
A Promise
that fulfills with an enumerated value indicating whether support is available (or will be available) for a given Summarizer
configuration, or null
if support could not be determined.
Possible values include:
available
-
The browser supports the given configuration and can be used immediately.
downloadable
-
The browser supports the given configuration, but it first needs to download an AI model, or some fine-tuning data for the model.
downloading
-
The browser supports the given configuration, but it needs to finish an ongoing download before it can proceed.
-
The browser does not support the given configuration.
Exceptions
NotAllowedError
DOMException
-
Thrown if usage of the Summarizer API is blocked by a
summarizer
Permissions-Policy
. NotSupportedError
DOMException
-
Thrown if the provided
context
is not in language theSummarizer
supports. UnknownError
DOMException
-
Thrown if the
measureInputUsage()
call failed for any other reason, or a reason the user agent did not wish to disclose.
Examples
Basic availability()
usage
const options = {
sharedContext: "This is a scientific article",
type: "key-points",
format: "markdown",
length: "medium",
};
const availability = await Summarizer.availability(options);
let summarizer;
if (availability === "unavailable") {
// The Summarizer API isn't usable
return;
} else if (availability === "available") {
// The Summarizer API can be used immediately
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded
summarizer = await Summarizer.create(options);
summarizer.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
Detecting language support
async function langSupport(lang) {
const availability = await Summarizer.availability({
expectedInputLanguages: [lang],
});
return availability;
}
langSupport("en-US");
langSupport("fr");
langSupport("zh-CN");
Specifications
Specification |
---|
Writing Assistance APIs # dom-summarizer-availability |
Browser compatibility
See also
- Using the Summarizer API
- Web AI demos on chrome.dev