Limited availability
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
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.
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 the Summarizer
, or a context
specified during a summarize()
or summarizeStreaming()
call). Defaults to ["en"]
.
format
An enumerated value specifying the text format
you want summaries returned in. Defaults to markdown
.
length
An enumerated value specifying the relative length
for the generated summaries. Defaults to short
.
outputLanguage
A string equal to a BCP 47 language tag specifying the expected language of summaries generated by the Summarizer
. Defaults to en
.
type
An enumerated value specifying the type
of summary you want this Summarizer
to generate. Defaults to key-points
.
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.
unavailable
The browser does not support the given configuration.
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 the Summarizer
supports.
UnknownError
DOMException
Thrown if the measureInputUsage()
call failed for any other reason, or a reason the user agent did not wish to disclose.
availability()
usage
async function getSummarizer() {
const options = {
sharedContext: "This is a scientific article",
type: "key-points",
format: "markdown",
length: "medium",
};
const availability = await Summarizer.availability(options);
if (availability === "unavailable") {
// The Summarizer API isn't usable
return undefined;
} else if (availability === "available") {
// The Summarizer API can be used immediately
return Summarizer.create(options);
}
// The Summarizer API can be used after the model is downloaded
const summarizer = await Summarizer.create(options);
summarizer.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
return summarizer;
}
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 Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4