跳到主要内容

聊天变成应用的原理

本文解释了「按设备显示稼动率卡片」这样一句话,如何变成已部署的画面。 了解内部原理,就能明白 为什么第一次响应需要几十秒、为什么预览会短暂停顿、 出故障时应该看哪里。

당신 ──① 말한다──▶ 에이전트 ──② 고친다──▶ 프로젝트(진짜 리액트 코드)
│ │
│ ③ 세션 컨테이너가 띄운다
│ └──▶ 프리뷰 (고치는 즉시 반영)
└──④ 스스로 검사한다 (타입 검사 + 화면 보기)

⑤ 배포 ──▶ 버전 보관 ──▶ /container/… (동료가 본다)

一个项目 = 一个 React 项目​

工作室生成的不是画面设置值,而是真正的源代码。创建项目时, 服务器内会复制一套 React 项目,之后的对话全部都是修改这些文件的工作。

这就是与无代码工具的分歧点。

画面设置型工具工作室
生成的东西设置值React 源码
要求工具做不到的事时卡住写代码即可,通常能做到
对话历史独立每轮自动提交——可回退
「回退」之所以可行的原因

代理每完成一轮,都会自动提交。因此,不喜欢的更改可以 恢复到之前的状态,并且会记录什么在何时发生了变更。 如果想先审查再接受,请使用审查模式—— 使用构建器开发应用

① 对话——有两种模式​

同一个聊天窗口,但做的事不同。

模式做的事会修改应用吗
查询读取平台数据,以表格·图表回答否(只读)
构建器修改项目代码来创建画面是

「昨天3号线报警有几条?」是查询,「把它做成画面」才开始是构建器。 → 通过聊天查询数据 · 从首页创建应用

② 修改——代理能用的工具是有限的​

代理不会随意行事。只使用规定的工具。

工具做的事设置的围栏
文件读取·写入·列表修改项目源码不能超出该项目文件夹
命令执行包安装·构建只在会话容器内运行(不是服务器 Shell)
平台查询读取设备·标签·报警只能读取只读列表中的内容

🔴 代理没有服务器 Shell。 命令在该项目的容器内运行, 文件工具无法离开该项目文件夹。即使应用创建错误,也不会影响其他项目或服务器。

③ 预览——每个项目启动一个容器​

打开项目时,会启动一个该项目专用的容器,开发服务器在其中运行。 预览画面直接显示该开发服务器,所以代理修改文件的瞬间就会反映出来。

默认值为什么
容器内存2 GB1 GB 会导致包含3D 部件的应用构建因内存不足而崩溃(实测)
空闲停止30分钟防止不使用的项目持续占用内存
空闲停止不是「删除」

30分钟不使用会关闭容器,但项目文件与对话历史都保留。 重新打开时容器会再次启动——所以很久没打开的项目首次画面会慢。

同时能启动多少个,直接决定了服务器内存需求 → 安装要求

④ 自行检查——所以首次响应很慢​

代理修改文件后不会立刻结束。

  1. 运行类型检查。失败时,它会自己读取错误信息并再次修改。
  2. 然后实际显示画面。查看渲染结果,找出偏差之处。

一次请求中,这种往返最多发生 24 次。这就是「为什么这么慢」的答案, 同时也是能一次就得到可用画面的原因。

大型画面,先获取「方案」

画面较大时,不要立即开始创建,先获取方案会更快——先以列表形式查看 要放置哪些部件及使用哪些数据,修正后再创建,可以减少往返次数。

⑤ 部署——预览与部署是不同的​

预览是开发服务器,部署是构建后的产物。同事看到的是部署版本。

预览部署版本
谁看创建者收到链接的人
何时更新代理修改的瞬间仅在点击部署时
地址/preview/…/container/…

部署后会累积版本(默认保留10个)。若新部署有误,可回退到之前的版本。

🔴 私有应用只有所有者·管理员·被共享者才能打开。即使知道链接也无法打开—— 必须指定共享对象。 → 应用目录与共享

出故障时应该看哪里​

症状首先查看的地方
聊天无法回答AI 提供商设置——环境设置
预览不显示会话容器——关闭项目后重新打开
数据为空平台连接·API 密钥——环境设置
只有部署版本是旧画面未点击部署。 预览与部署不同

更多内容请参见问题解决。