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

js
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.

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.

unavailable

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 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.

Examples

Basic availability() usage

js
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

js
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