AI

AI 助手

用自然语言修改模型、跑仿真和优化

Dreapex TMM 内置 AI 聊天助手,可以用自然语言完成「加一层 100 nm SiO₂」「把波长扫到 400–800 nm,开 R / T / A」「跑一次优化」这类操作,无需手动切换页面。它通过工具调用直接修改 Pinia store 中的模型,并在执行前对破坏性操作做内联确认。

入口

任意页面右下角的浮动按钮(图标 pi pi-comments)会唤起右侧 Drawer。再点一次按钮、或点 Drawer 标题栏右侧的 X 关闭。

项目行为
开关状态持久化到浏览器 tmm-settings;下次访问保持上次状态
默认宽度480 px
可调宽度桌面端可拖拽,范围 320 ~ 1200 px,数值同样持久化
本地 pnpm dev 启动的 Vite 不会运行 /api/ai/chat Edge function;需要使用 vercel dev 才能完整体验 AI 助手。生产环境通过 Vercel AI Gateway 鉴权,无需额外配置。

用法示例

你:加一层 100 nm 的 SiO2 在末尾
AI:好的,调用 structure.addLayer 完成,当前 4 层。

你:把波长扫到 400-800nm,5nm 步长,开 R T A 三个探测器
AI:调用 setWavelengthSampling + setDetectors 完成。

你:跑计算
AI:调用 simulation.runCalculation,正在等待后端返回...

你:删掉第 2 层
AI:[内联弹出 DiffPreview]
   Remove Layer #2 (name='TiO2', thickness=80nm)
   将影响 1 个 optimization variable
   [Cancel] [Confirm Delete]
你:[点 Confirm]
AI:已删除。

工具调用面板

每次 AI 调用工具时,Drawer 中会出现折叠面板,状态以颜色标记:

状态颜色含义
Pending黄色工具正在执行,spinner 转动
Succeeded绿色工具完成,可展开看 input / output
Failed红色工具失败,展示 error code 和原因

工具调用如果引发校验警告(例如改了波长后某层 RI 数据覆盖不足),下方会出现黄色 warnings 横幅。AI 在下一轮会读到这些 warnings 自主修复或向你确认。

破坏性操作的内联确认

以下三个工具会触发强制确认对话,在 Drawer 内联展示 before / after 对比和依赖关系:

工具行为影响示例
structure.removeLayer删除单层影响 N 个 optimization variable
structure.clearStructure清空整个结构高严重度,按钮变红
model.importSnapshot用快照覆盖当前模型.tmm 导入流程,但由 AI 触发

Cancel 后,AI 收到 USER_CANCELLED 错误,不会立即重试同一调用。

当前可调用的工具

按 8 个 domain 共 43 个工具:

分类数量主要工具
Structure8addLayer / updateLayer / removeLayer / clearStructure / duplicateLayer / reorderLayers / addLayerGroup / updateLayerGroup
Surroundings1setSurroundingMedium
Optics9setWavelengthSampling / setDetectors / setConeAngle / setIncidentSpectrumEnabled / setIncidentSpectrumSource / loadIncidentSpectrumFile / setColorCalculation / setDepthDistributionResolution / setIncidentAngleAzimuth
Sweep4addSweepParameter / updateSweepParameter / removeSweepParameter / setSweepParameterList
Optimization10startRun + addObjective / updateObjective / removeObjective / setObjectiveList + addVariable / updateVariable / removeVariable / setVariableList + setAlgorithmSettings
Simulation lifecycle5runCalculation / cancelRun / runSweep / cancelSweep / cancelOptimization
RI 数据库3searchCatalog / applyMaterialToLayer / detachMaterialFromLayer
Model + URL3importSnapshot / exportSnapshot / encodeConfig

完整规格见 tmm-vite 仓库的 packages/tmm-core/src/operations/catalog.ts

当前限制

不支持的能力说明
速率限制 / 计费上限平台模式按 Vercel team account 统一付费,无任何 throttle
对话持久化刷新页面 = 新会话;关闭 Drawer ≠ 清空当前对话
对话分支 / regenerate / undo仅支持线性单线程对话
文件 / 图片上传仅支持文字 + 工具调用
跨会话记忆每次会话从 system prompt 起点开始,不读取历史

故障排查

现象原因处理方式
点击发送后无响应本地用了 pnpm dev 而非 vercel dev,Edge function 未运行改用 vercel dev 启动
提示 Service unavailableVercel AI Gateway 集成未启用,或 AI_GATEWAY_API_KEY 未注入在 Vercel 项目设置中启用集成;本地用 vercel env pull 拉取环境变量
工具调用反复 PRECONDITION_FAILED输入引用了不存在的 layerId让 AI 先调用 model.exportSnapshot 看当前 id,再继续
破坏性确认弹出后无法点击同时打开了多个 Drawer / Dialog关闭其它对话框后再操作

与其他持久化方式的关系

AI 助手只修改当前 store 中的模型快照。修改后会触发本地自动保存。需要把状态固化到外部时仍按常规流程:

Copyright © 2026 Dreapex