Summarizer: measureInputUsage() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 measureInputUsage()
method of the Summarizer
interface reports how much inputQuota
would be used by a summarize operation for a given text input.
Syntax
measureInputUsage(input)
measureInputUsage(input, options)
Parameters
input
-
A string representing the input text you want an input usage measurement for.
options
Optional-
An object specifying configuration options for the
measureInputUsage()
operation. Possible values include:context
-
A string describing the context the input text would be used in, to help generate a more suitable summary.
signal
-
An
AbortSignal
object instance, which allows themeasureInputUsage()
operation to be aborted via the associatedAbortController
.
Return value
A Promise
that fulfills with a number specifying the inputQuota
usage of the given input text.
Exceptions
NotAllowedError
DOMException
-
Thrown if usage of the Summarizer API is blocked by a
summarizer
Permissions-Policy
. NotReadableError
DOMException
-
Thrown if the output summary was filtered by the user agent, for example because it was detected to be harmful, inaccurate, or nonsensical.
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
Checking if you have sufficient quota
In the below snippet, we create a new Summarizer
instance using create()
, then return the total input quota via inputQuota
and the input quota usage for a summarizing a particular text string via measureInputUsage()
.
We then test to see if the individual input usage for that string is great than the total available quota. If so, we throw an appropriate error; it not, we commence summarizing the string using summarize()
.
const summarizer = await Summarizer.create({
sharedContext:
"A general summary to help a user decide if the text is worth reading",
type: "tldr",
length: "short",
});
const totalInputQuota = summarizer.inputQuota;
const inputUsage = await summarizer.measureInputUsage(myTextString);
if (inputUsage > totalInputQuota) {
throw new Error("Boo, insufficient quota to generate a summary.");
} else {
console.log("Yay, quota available to generate a summary.");
const summary = await summarizer.summarize(myTextString);
// ...
}
Specifications
Specification |
---|
Writing Assistance APIs # dom-summarizer-measureinputusage |
Browser compatibility
See also
- Using the Summarizer API
- Web AI demos on chrome.dev