跳到主要内容

用 AI 完成第一个可运行 App

这一课从真正的空白项目开始。你负责创建项目、确认 AI 的修改、选择首页并完成运行验收;AI 负责创建第一张操作员 Page 和多语言文案。

完成后,你会得到名为“包装工作站”的 App。它能显示工作站名称、模拟模式、当前状态和包装计数,但不会控制任何设备。

本节目标

  • 在应用中心创建空白项目
  • 用 AI 创建并验证第一张 .qp Page
  • 看懂 AI 修改了哪些资源
  • 人工把 Page 设为首页
  • 依次在 Design、Preview 和完整运行页中验收

只需要先懂三个概念

概念现在只需知道
App一个独立 Theseus 工程,包含 Page、Component、Object、QG 和配置。
Page操作员在运行终端看到的 HMI 画面,文件扩展名是 .qp
ComponentPage 上的标题、状态文字、数字、按钮等可视元素;可复用的 App 可视组件使用 .qpc

AI Command Center 只能修改当前编辑器窗口绑定的 App,不能替你在应用中心新建、导入或打开项目。

开始前

  • 使用 Theseus Desktop;运行页只用于使用已经交付的 App,不提供项目创建和 AI 工程编辑。
  • AI 输入区已经能选择模型。若没有可用模型,先完成 AI 提供方设置
  • 准备一个项目父目录;其中可以已有其他内容。

第 1 步:创建“包装工作站”

  1. 在应用中心选择新建项目
  2. App名称填写 包装工作站
  3. 创建位置选择项目父目录。Theseus 会在其中创建 包装工作站 子目录。
  4. 保持包含模块全部不选。
  5. 点击创建项目。成功后会自动打开一个绑定到新 *.the 文件的编辑器窗口。

空白项目只创建基础项目文件,不自带 Page。左侧 Resources → Pages 为空是正常现象。

第 2 步:把目标交给 AI

点击标题栏的 AI 图标,或按 Cmd+I(macOS)/ Ctrl+I(Windows、Linux)。新建对话,在输入区输入 @ 并选择 qxqp,然后发送:

目标:为当前“包装工作站”App 创建第一张可运行的操作员首页。

页面内容:
- 页面标题“包装工作站”
- 明确显示“模拟模式”
- 状态显示“未启动”
- 包装计数显示 0
- 使用清晰、克制、便于现场扫读的布局

范围:
- 新增 pages/packaging-station.qp
- 为页面可见文案补充当前 App 的 i18n.json
- 不修改项目设置、Object、Variable、QG、C# Provider、外部设备、Pulsar 或 Safety

要求:
- 使用当前编辑器支持的原生元素/组件,并保持结构可在 Properties 中检查
- 不生成物理设备动作,也不放置看似能启动真实设备的按钮
- 完成后验证 Page 和 i18n.json
- 最后列出修改文件、主要 Component 和验证结果

这条指令同时说明了目标、范围、禁止项和验收证据。以后交给 AI 的工程任务也尽量保持这个结构。

本节预期的文件改动

发送任务前,先在 Git 或任务详情中记下已有修改。任务详情展示整个当前工作区,不是本轮 AI 任务的独占清单。

本节预期修改以下文件:

  • pages/packaging-station.qp
  • i18n.json

AI 可能读取其他项目信息来理解当前 App。完成后,将文件清单与任务开始前的基线比较。

如果出现 Object、QG、C# Provider、Pulsar 或其他设备配置改动,先不要运行。让 AI 解释来源;只有确认该项由本轮任务产生且超出范围时,才恢复这一项。不要删除或覆盖任务开始前已存在、来源不明或属于他人的改动。

第 3 步:在编辑器中检查

AI 保存文件后,Resources 会更新:

  1. 确认 Resources → Pages 出现 packaging-station
  2. 双击 Page 并选择 Design,确认画布有标题、模拟模式、状态和计数。
  3. 选择画布中的 Component,确认右侧 Properties 显示可理解的 ID、内容和布局字段。
  4. 切到 Source,确认当前文档没有内联诊断。
  5. 如果使用了 i18n,打开 Settings → I18n 检查本教程需要的中英文文案。
  6. 对照 AI 最终回复,确认文件清单、主要 Component 和验证结果与编辑器一致。

AI 的显式 Validate 结果留在对话中;实时文档诊断显示在编辑器内联标记中。底部 Problems 只显示最近一次 Build 对已保存工程生成的诊断,工程再次保存后会清除旧 Build 结果;因此在 Build 前不要把空的 Problems 当作完整验证。

如果你在 AI 修改前已打开并手工修改同一 Page,编辑器会保留未保存草稿并提示磁盘冲突。先决定保留哪一份,不要直接覆盖。

人工决定:把 Page 设为首页

  1. Resources → Pages 中右键 packaging-station
  2. 选择设为首页
  3. 确认 Page 名称旁出现首页标记。

首页决定 Runtime target 根页面和 Player 最终进入哪张 Page。未配置首页时,Theseus 不会随意选择第一张 Page。

第 4 步:逐级验收

4.1 Build 并检查 Problems

  1. 保存所有文件,确认 App 为已停止
  2. 打开 Build 菜单,选择构建 Debug,等待 Build 和 Deploy 成功。
  3. 打开底部 Problems,确认本次 Build 没有 Page 或 i18n 错误。

编辑器 Build 只使用已经保存的工程内容,并把完整版本交付到当前 Runtime target。它不会 Start App。

4.2 在编辑器中 Preview

回到 packaging-station,选择 Preview。确认标题、模拟模式、未启动状态和计数 0 都能看到。

Preview 使用当前目标上已部署的版本。它可以从 Stopped 按需进入 Previewing,也可以复用同一 App 已有的 Previewing 实例,但不会复用 Running / Debugging,也不会 Build、Deploy 或进入生命周期。Preview 是编辑器内验证,不是完整运行终端。

4.3 Start 并打开完整运行页

  1. 点击标题栏的开始(Start),等待状态变为运行中
  2. 在浏览器中打开当前 Runtime target 的根地址。本机默认是 http://127.0.0.1:9210/
  3. 如有提示,先登录 Runtime target;Page 需要业务角色时,再登录 App 用户。
  4. 刷新页面,确认仍能回到 packaging-station 首页。

完整运行页只使用当前目标上已经交付的版本。若 App 尚未运行,由目标 Admin 在确认现场条件后执行 Start;运行页不会读取工程源码,也不会 Build 或 Deploy。

Start / Debug 为什么有时会要求 Build?

如果当前 App 和目标没有合适的 Build,Start 或 Debug 会先显示构建并部署当前 App?,不会静默构建。选择构建并继续后,编辑器先 Build / Deploy,再自动重试原操作;选择取消则不 Build,也不继续。Debug 始终要求 Debug Build。

验收清单

  • AI 的文件改动符合已经批准的范围
  • Design、Properties 和 Source 检查通过
  • Page 已保存并设为首页
  • Build 成功,Problems 没有本次工程错误
  • Preview 内容正确,且没有真实设备动作
  • App 进入 Running
  • 当前 Runtime target 根页面直接进入同一首页
  • 刷新完整运行页后仍能加载

安全边界

注意

这一课只做静态模拟画面。不要把“未启动”替换为真实设备状态,也不要让 AI 猜测外部控制器地址、轴、IO、相机或联锁含义。工程人员明确设备身份和工艺语义后,才能进入 Object 和 QG 设计。

Page 看起来正确不代表设备逻辑正确。运行前仍要人工确认 AI 没有创建隐藏动作或越界文件。

出问题时怎么恢复

症状处理
没有可用模型打开 AI 提供方设置,完成认证或刷新模型列表。
Resources 中没出现新 PageFiles 中确认文件是否存在;先解决未保存冲突,再重新打开。
Page 有内联错误@ 引用 pages/packaging-station.qp,要求 AI 只修复当前诊断,不增加功能。
Preview 提示需要 Build保存文件,确认 Stopped,再 Build;Preview 不会自行 Build 或 Deploy。
Start 显示构建并部署当前 App?核对当前目标、保存状态和 Build profile,再选择构建并继续;也可以取消并手动 Build。
Runtime 根页面提示未配置首页回到 Resources,把目标 Page 设为首页,然后重新 Build / Deploy。
完整运行页仍是旧内容保存 Page,Stop 后重新 Build,再 Start;刷新浏览器不会部署源码。
AI 似乎修改了 Object、QG 或 C# Provider不要 Start。与任务前基线比较并让 AI 解释;只恢复确认由本轮产生的越界改动。

下一步

下一课会在这张 Page 上加入页面状态、按钮和事件,并让你亲手完成一次小修改:页面状态、按钮与事件