Prompt API 技能面向在浏览器 Web 应用中集成浏览器 Prompt API 的开发者,帮助完成从识别集成位置到实现、调试和验证的完整流程。
用途 该技能用于在 JavaScript 或 TypeScript 前端项目中实现和调试 Prompt API 集成,例如添加 LanguageModel 可用性检查、创建会话、处理流式响应、结构化输出以及非 AI 回退。它不适用于非浏览器 Web 应用。
主要能力 技能提供分步流程:识别集成面、确认 Prompt API 可行性、实现受保护的会话封装、接入 UX 与回退行为、验证行为。它覆盖 prompt()、promptStreaming()、initialPrompts、append()、measureContextUsage()、responseConstraint 等会话形态,并指导在 TypeScript 项目中补充类型定义。技能还包含对下载进度监听、AbortController 取消、destroy() 释放会话、跨域 iframe 的 allow="language-model" 要求等处理。
使用方式 第一步,检查工作区中的浏览器入口、UI 处理器和现有 AI 抽象层;在可用 Node 运行时执行 node scripts/find-frontend-targets.mjs . 来盘点前端文件与现有 Prompt API 用法,否则手动检查 package.json、HTML 入口和框架入口文件。若存在多个前端应用,优先选择包含活动路由或用户请求功能的应用;仍不明确时应询问用户;非浏览器 Web 应用则停止并说明不适用。 第二步,在写代码前阅读 references/prompt-api-reference.md;需要规范消息形状时阅读 references/examples.md;需要跨浏览器代际支持时阅读 references/compatibility.md;需要 polyfill 安装或后端配置示例时阅读 references/polyfills.md。确认功能运行在安全窗口上下文,且语言模型权限策略允许当前 frame 访问;若必须在 Web Worker 等非窗口上下文运行,应停止并说明平台限制。选择所需会话形态;若需要工具调用,注意 tools 在规范中为 EXPERIMENTAL(仅实验性上下文),必须通过特性检测门控或限制在 origin-trial 或扩展上下文。TypeScript 项目应添加或保留覆盖所用 Prompt API 表面的类型。 第三步,阅读 assets/language-model-service.template.ts 并适配到工作区的框架、状态模型和文件布局。使用与运行时相同的创建选项(包括预期模态)通过 LanguageModel.availability() 门控会话创建;在可移植页面代码中不要向 availability() 传 tools。仅在用户激活后创建会话,以便模型下载或实例化开始。使用 AbortController 支持可取消提示,不再需要会话时调用 destroy()。跨域 iframe 中要求嵌入 iframe 带 allow="language-model"。不要依赖 params()、topK 或 temperature,因为规范已将 topK 和 temperature 标记为 DEPRECATED(仅扩展上下文),可移植网页集成不得要求它们。将 availability() 视为被动能力检查:若在用户激活前报告 downloading,不要假设当前页面发起了该下载,也不要将 UI 锁定为应用启动的忙碌状态。 第四步,为不可用设备、模型下载、就绪会话和进行中提示呈现不同状态。若下载进度重要,在 LanguageModel.create() 期间附加 monitor 监听器并在 UI 中渲染进度。为不支持的浏览器、设备或受限 iframe 上下文保留非 AI 回退。需要结构化输出时,通过 responseConstraint 传入 JSON Schema,仅在提示已包含所需格式说明时使用 omitResponseConstraintInput,并在使用前解析返回字符串。遵守提示形状校验规则:系统消息放在 initialPrompts 中,prefix: true 仅适用于最后一条助手消息,助手消息内容必须保持纯文本。若 availability() 在应用调用 create() 前报告 downloading,应将其呈现为信息性浏览器状态而非页面拥有的活动下载,并保持控件可用,除非应用自身忙碌。 第五步,验证行为:用 prompt() 测试短响应,用 promptStreaming() 测试长响应;确认重复提示有意复用上下文、已销毁会话不被复用,且应用使用兼容性检查处理上下文测量与溢出。若集成抛出 NotSupportedError 或在不同 frame 或执行上下文中行为不同,阅读 references/troubleshooting.md。编辑后运行工作区构建、类型检查或测试。
适用场景 适用于在浏览器 Web 应用中添加 Prompt API 能力,包括可用性检测、会话创建、流式输出、结构化输出、下载进度展示、跨域 iframe 集成以及非 AI 回退。
限制 Prompt API 不可在 Web Worker 中运行,必须重定向到窗口上下文。tools 为实验性,可能不被当前浏览器上下文支持。topK 和 temperature 已废弃,仅扩展上下文可用。跨域 iframe 需要嵌入页提供 allow="language-model"。若 LanguageModel 缺失,应优先使用维护中的 Prompt API polyfill 或非 AI 回退,而非自建兼容层。