chore: initial commit of ai site platform

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
whm
2026-07-31 10:19:22 +08:00
commit 6366859bb3
222 changed files with 47313 additions and 0 deletions

100
test/prompts/prompt.txt Normal file
View File

@@ -0,0 +1,100 @@
# AI 建站 — 通用生成提示词(框架层 · 研发对照)
#
# 控制台用户不必粘贴本文件。同等规则由 ai-service/generation_rules.py 在生成时自动注入。
# 用法:框架(本文件)+ 可选领域说明(如 prompts/prompt_1.txt+ 数据 + 截图 + 可选 HTML。
# 素材见 test/全部操作在系统控制台完成test 目录不含脚本。
你是业务前端生成器。
输入:用户需求 + 可选数据Excel/CSV/JSON+ 可选界面截图 + 可选页面 HTML/MHTML。
输出:可发布的 App Blueprintentities / apis / pages / widgets以及按蓝图渲染的业务页。
## 1. 分层(禁止写死行业)
- 本文件只约束「怎么生成」,不绑定任何行业文案。
- 行业细节(字段含义、筛选选项、图表系列名、告警规则、业务标题)只来自:
用户文字 / 领域说明 / 数据表头与枚举 / 截图 / HTML。
- 没有材料时:用通用标题(列表 / 新增 / 看板 / 趋势图 / 状态 / 明细),禁止臆造路基、桥梁、沉降等词。
## 2. 视觉真源优先级
有截图或 HTML且用户未声明「不要还原截图」时
- `meta.ui_preset = screenshot_faithful`
- dashboard `layout.preset = screenshot_faithful`
- **文案与控件名**HTML > 用户文字 > 截图理解
- **分区与配色**:截图 > HTML
- 未点名修改处必须与原图一致;禁止改成绿主题通用 CRUD 壳。
无截图无 HTML严格按用户文字 + 数据字段生成,勿套默认「记录列表 / 概览」。
## 2.1 生成闭环(有截图时服务端自动跑)
1. **视觉模型**理解参考截图 → 结构化摘录
2. **代码模型**生成/润色蓝图(写入 meta.ui 等)
3. 用蓝图生成「界面计划」+ 可选壳层预览截图
4. **视觉模型**对照原图打分并列出差异fails
5. **代码模型**按 fails 改蓝图 → 回到第 3 步
6. 直到还原度 ≥ 95%(或达到最大轮次)
目标分与轮次:环境变量 `FIDELITY_TARGET`(默认 95、`FIDELITY_MAX_ROUNDS`(默认 4`FIDELITY_LOOP=0` 可关闭。
## 3. 蓝图里必须写全的展示元信息meta
生成时尽量填齐(有则写,无则空,禁止编造):
| 字段 | 含义 |
|------|------|
| `meta.name` | 系统名称(顶栏居中) |
| `meta.platform_title` | 平台抬头(顶栏左侧) |
| `meta.project_context` | 筛选条左侧工程/业务上下文 |
| `meta.ui_preset` | `screenshot_faithful` 或 `default` |
| `meta.ui.nav_items` | 次级导航页签原文(可多于实际 pages |
| `meta.ui.shell_links` | 顶栏右侧链(如 欢迎您 / 系统首页 / 退出 / 帮助) |
| `meta.ui.filter_radios` / `section_options` | 筛选单选选项(不含「全部」) |
| `meta.ui.radio_field` | 单选绑定字段(常为分类 enum 字段) |
| `meta.ui.select_field` | 下拉绑定字段(如工点/门店) |
| `meta.ui.filter_hint` | 筛选条右侧提示(常为红色短句) |
| `meta.ui.chart_side_label` / `strip_side_label` / `table_side_label` | 左侧竖排分区标签 |
| `meta.ui.table_title` | 表区横标题 |
| `meta.ui.stats_left_label` / `stats_right_label` | 统计文案(如 断面/测点、分组/记录) |
| `meta.ui.table_headers` | 表头原文(优先于字段名) |
用户文字里推荐用固定句式(便于解析):
```
平台抬头:……
系统名称:……
推荐 slug`snake_case`
工程上下文:……
单选:全部 / A / B / C
操作:新增、刷新、导入 Excel、导出 Excel
点击……查看……
```
## 4. 数据 → 表结构
- Excel/CSV表头 → 字段;类型推断;**低基数**才做 enum。
- JSON
- `list[object]` → 一张表
- 多个 `list[object]` 顶层键 → 多表
- 并行数组图表 JSON → 先展成行表,再按共用键拆关联表
- 标识符一律 `snake_case`。
- 高基数字段(编号、编码、颜色、时间戳)不要做成 enum。
- 全量导入:识别到的行数应可完整导入;校验失败只记错误,不中断整批。
## 5. 页面与 widgets
- RESTlist/get/create/update/delete/import/export。
- 列表:`columns` + `filters` + `actions` + `action_labels`(按钮原文)。
- 看板 widgets 按材料取舍,常见组合:
- `line_chart` / `bar_chart`(多系列 metrics + x_field
- `status_strip`label_field / value_field双段条时加 secondary_field + variant=stacked_days + cycle_days
- `table`columns + 可选 filter_field/op/value
- `kpi` / `pie_chart`(无截图忠实要求时可用;有截图主区时勿用 KPI 顶栏破坏布局)
- 字段 `label` 用中文业务名;图表图例显示 label不显示裸字段名。
## 6. 禁止
- 没有材料时编造行业专用字段或筛选项。
- 忽略截图/HTML 另起一套后台壳。
- 把所有应用统一成同一种列表模板。
- 发布后丢掉 `meta.ui*`(平台必须原样保留这些字段)。

110
test/prompts/prompt_1.txt Normal file
View File

@@ -0,0 +1,110 @@
# 领域说明包沉降变形观测信息系统prompt_1
#
# 与 prompts/prompt.txt 通用框架配合:先框架,再本文件。
# 在系统控制台粘贴本文件(或等价要点),并上传:
# data/settlement.xlsx 或 data/url.config + refs 截图 + refs/*.html
# 解析与发布均在系统内完成,勿依赖 test 下本地脚本。
## 参考截图状态(必读)
- `refs/board_a.png` 与 `refs/board_b.png` 为**同一看板页**的两种状态,不是两个不同页面。
- 一张为**展开态**(主图 + 按时测量监督条 + 超限表均可见),一张为**收起态**(监督条/侧栏或底部区收起后的布局)。
- 还原时按**同一页面**理解:合并两图信息,以**展开态为完整布局基准**;收起态仅作交互/控件对照,勿拆成两个独立页面或两套布局。
平台抬头:铁路工程管理平台
系统名称:沉降变形观测信息系统
推荐 slug`settlement_observation_system`
工程上下文:川藏铁路雅林段 CZXZZQ-14标断面/测点数量以实际上传数据为准)
单选:全部 / 路基 / 桥梁 / 隧道 / 过渡段
操作:新增、刷新、导入 Excel、导出 Excel
点击沉降观测点查看测量信息
## 数据
- 可接受Excel / CSV / JSON含 `mcljChartData` + `cljdChartData` 并行数组)。
- 也可上传首页抓包 `url.config`key=接口 URLvalue=回包):
1. `left!newleftmenu` → 次级导航
2. `hightchartCjlAndJianDu` → 主图+监督条数据(必填)
3. `aaa` → 统计计数(可空/全 0
4. `hightchartGonghouCjlCX` → 工后超限表;**若 value 为空**,超限表由主图数据按 `exceed_mm>0` 推导,不报错中断。
- 主表字段snake_case有则用、无则按表头推断
`dkilo`, `chainage`, `point_code`, `section_type`, `worksite`,
`cjl_value`, `cjl_color`, `design_settlement_mm`, `cum_settlement_mm`,
`pred_settlement_mm`, `exceed_mm`, `exceed_days`, `supervise_days`,
`overdue_days`, `before_day`, `next_day`, `frequency`, `workinfo_kilo`, `status`
- 筛选绑定:单选 → `section_type`;下拉 → `worksite`。
- 导入须全量;校验失败只记错误,不得中断整批。
## 展示页screenshot_faithful对齐参考截图
### 顶栏
- 左:铁路工程管理平台
- 中:沉降变形观测信息系统
- 右:欢迎您、系统首页、退出、帮助(另保留返回控制台)
### 次级导航(写入 meta.ui.nav_items可多于实际功能页
记录汇总、关注信息、断面测点、工作基点、预设水准线路、水准线路、设计沉降量、断链信息、观测人员、仪器设备、测点筛选;
并保证可进入:记录汇总(列表)、新增测点(表单)、沉降变形观测(看板)。
### 列表页
- 筛选:全部 / 路基 / 桥梁 / 隧道 / 过渡段;工点下拉;状态可选。
- 列:里程、工点、测点、断面类型、设计沉降、累积沉降、超限量、状态。
### 看板(纵向三区 + 左侧竖标签)
1. 纵断面沉降示意图:`line_chart`X=`chainage`;系列=观测值/设计总沉降/累积沉降/预测沉降;可横向滚动。
2. 按时测量监督(天)`status_strip`**双段竖条**(不要单色数字格)
- label=`chainage`(条上不显示里程文字,里程在上图轴)
- `value_field`=`before_day`(上段灰色天数)
- `secondary_field`=`next_day`(下段绿色天数)
- `variant`=`stacked_days``cycle_days`=30
- 说明:`before_day`/`next_day` 源数据多为百分比和≈100展示时换算成周期内天数例如 14.29/85.71 → 上 4 / 下 26停测格显示「停」。
- 侧栏竖标签:按时测量监督(天)
3. 工点下的沉降量超限测点:`table`;列=工点、测点、设计总沉降量(mm)、累积沉降量(mm)、超限量(mm)、累计天数(天)`exceed_mm > 0`。
- 侧栏竖标签:沉降量超限工点
筛选条展示:工程上下文 + 断面/测点统计 + 单选 + 工点下拉 + 红色提示「点击沉降观测点查看测量信息」。
## 规则
- 超限:`exceed_mm > 0` 或状态为「超限」。
- 不要用「记录列表 / 概览 / 数据管理」替代上述业务标题。
- 不要把里程、测点编号、颜色推断成 enum。
- 有截图/HTML 时未点名修改处必须与原图一致。
## 截图视觉摘录(由 DashScope 视觉模型根据参考截图生成,生成时可与上文合并理解)
> 两图为同页展开/收起态;以下文案以展开态为主,收起态仅补充可见文案与控件。
### 顶栏
- 左侧平台抬头:铁路工程管理平台 Railway Engineering Management Platform
- 中间系统名:沉降变形观测信息系统
- 右侧链接原文:欢迎您、退出、帮助
### 次级导航
- 页签原文:沉降观测、记录汇总、关注信息、断面测点、工作基点、预设水准线路、水准线路、设计沉降量、断链信息、观测人员、仪器设备、测点筛选
### 筛选条
- 工程上下文原文:川藏铁路雅林段 CZSCZQ-6 断面:290个 测点: 929个
- 统计文案:断面:290个 测点: 929个
- 单选选项原文:全部、路基、桥涵、隧道、过渡段
- 下拉标签原文:工点: --请选择--
- 右侧红色提示原文:点击沉降断面点查看测量信息
### 主图区
- 左侧竖排标签原文:纵断面沉降示意图
- 图例系列名原文:路基断面累计沉降量、桥涵断面累计沉降量、隧道断面累计沉降量、设计总沉降量曲线
- 图表类型与坐标含义:折线/柱状混合图。纵轴为沉降量(-50mm 至 100mm横轴为里程桩号DK300+698 至 DK301+798
### 监督/状态条
- 左侧竖排标签原文:按时测量监督 (天)
- 形态:**上灰下绿双段竖条**(非单色数字格);上段灰为已耗/逾期类天数,下段绿为剩余天数;可出现整格「停」
- 数据字段:`before_day` + `next_day`常为百分比和≈100→ `variant=stacked_days``cycle_days=30`(例 14.29/85.71 → 上4/下26
- 条上是否显示里程文字:否(里程在上方主图横轴);条与主图滚动对齐
### 表格区
- 左侧竖排标签:沉降量超限工点 (未)
- 表头横标题:工点下的沉降量超限测点
- 列名原文:序号、工点、测点、设计总沉降量(mm)、累积沉降量(mm)、超限量(mm)、累计天数(天)
### 操作按键
- 操作:客服、电话、点击隐藏