Summarizer:availability() 静态方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

Summarizer 接口的 availability() 静态方法返回一个枚举值,指示浏览器 AI 模型是否支持(或将支持)给定的 Summarizer 配置。

语法

js
Summarizer.availability()
Summarizer.availability(options)

参数

options 可选

指定 Summarizer 可能配置的选项对象。可能的值包括

expectedInputLanguages

一个字符串数组,等于 BCP 47 语言标签,指定输入文本的预期语言。默认为 ["en"]

expectedContextLanguages

一个字符串数组,等于 BCP 47 语言标签,指定提供的任何上下文字符串(传递给 SummarizersharedContext,或在 summarize()summarizeStreaming() 调用期间指定的 context)的预期语言。默认为 ["en"]

格式(format)

一个枚举值,指定您希望摘要返回的文本 format。默认为 markdown

length

一个枚举值,指定生成的摘要的相对 length。默认为 short

outputLanguage

一个字符串,等于 BCP 47 语言标签,指定 Summarizer 生成的摘要的预期语言。默认为 en

type

一个枚举值,指定您希望此 Summarizer 生成的摘要的 type。默认为 key-points

返回值

一个 Promise,该 Promise fulfilled 时会返回一个枚举值,指示给定 Summarizer 配置的支持是否可用(或将可用),如果无法确定支持,则返回 null

可能的值包括:

available

浏览器支持给定的配置,并可立即使用。

downloadable

浏览器支持给定的配置,但需要先下载 AI 模型或模型的某些微调数据。

downloading

浏览器支持给定的配置,但需要完成正在进行的下载才能继续。

unavailable

浏览器不支持给定的配置。

异常

NotAllowedError DOMException

如果 Summarizer API 的使用被 summarizer Permissions-Policy 阻止,则会抛出此错误。

NotSupportedError DOMException

如果提供的 context 的语言不是 Summarizer 支持的语言,则抛出此异常。

UnknownError DOMException

如果 measureInputUsage() 调用因任何其他原因失败,或用户代理不希望披露的原因而失败,则抛出此异常。

示例

基本的 availability() 用法

js
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;
}

检测语言支持

js
async function langSupport(lang) {
  const availability = await Summarizer.availability({
    expectedInputLanguages: [lang],
  });
  return availability;
}

langSupport("en-US");
langSupport("fr");
langSupport("zh-CN");

规范

规范
写作辅助 API
# dom-summarizer-availability

浏览器兼容性

另见