Skip to content

feat: 接入 Chrome 本地 AI 执行方式与英文流式任务 - #25

Merged
fxbin merged 16 commits into
mainfrom
feature/local-ai-product-integration
Aug 19, 2026
Merged

feat: 接入 Chrome 本地 AI 执行方式与英文流式任务#25
fxbin merged 16 commits into
mainfrom
feature/local-ai-product-integration

Conversation

@fxbin

@fxbin fxbin commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Closes #20
Closes #21
Closes #22
Refs #23

Parent Epic: #17

本 PR 做什么

  • 新增独立 textura-local-ai 持久化设置,提供 智能选择 / Chrome 本地 AI / 仅云端 三种执行方式,不改现有云端 Provider 配置结构。
  • 设置页新增 Chrome Built-in AI 状态卡,分别检测 Prompt API 与 Summarizer API;展示 available/downloadable/downloading/unavailable,并且只有用户主动点击准备按钮才触发对应模型创建/下载。
  • Prompt 模型与摘要模型都支持 downloadprogress 反馈;非支持浏览器只显示不可用原因,不抛未捕获错误。
  • AI Assistant 接入 Local-first Router:英文 polish / fix / expand 在 Prompt 模型已就绪时使用 promptStreaming();英文 summarize 优先使用 Chrome Summarizer API 的 summarizeStreaming()
  • 中文、未支持任务、模型未准备等在 Smart 模式走已配置 Cloud fallback;显式选择 Chrome 本地 AI 时绝不静默上传正文到云端。
  • Smart 模式不自动触发大模型下载:downloadable/downloading 视为“尚未准备”,直到用户在设置页显式准备完成。
  • AI Assistant 显示“本次实际执行”是 Local 还是 Cloud fallback,避免静默切换。
  • 本地 Prompt 与 Summarizer 流式生成均支持“停止生成”;用户主动停止时不会继续 fallback 云端。
  • 新增 PR CI:Node 24 下执行 npm cinpm run lintnpm run build,作为 [Local AI] 回归测试、兼容性矩阵与 Local/Cloud 隐私提示 #23 兼容性/回归工作的第一步。

当前本地能力边界

  • Prompt API:英文润色、英文纠错、英文扩写。
  • Summarizer API:英文摘要,使用 key-points + markdown + medium
  • format 暂走 Cloud;显式 Local 下禁用。
  • 中文暂不进入 Chrome Built-in AI,本地能力扩展以 Chrome 官方语言支持为准。

回归重点

  1. Safari/Firefox/不支持设备打开设置页不报错,Prompt/Summarizer 状态显示不可用。
  2. Chrome + downloadable:Smart 模式不会因“开始生成”自动下载模型;必须点对应“准备”按钮。
  3. 模型 available + 英文 polish/fix/expand:实际执行显示 Chrome 本地 AI。
  4. Summarizer available + 英文 summarize:实际执行显示 Chrome 本地 AI,并输出 Markdown 要点摘要。
  5. 中文 + Smart:实际执行显示 Cloud fallback。
  6. 中文 + 显式 Local:直接提示语言/设备不支持,不走 Cloud。
  7. 本地流式生成点击停止后终止,并且不触发 Cloud fallback。
  8. 旧云端 Provider / API Key 配置仍可继续使用。

@fxbin
fxbin merged commit 6c9b200 into main Aug 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant