🔵待决策
cgajs-api 已内嵌 NL2CGA 端点,但独立 nl2cga-service(端口 8020)仍处于休眠状态。需要决定:
- 方案 A(推荐):删除/归档独立服务,完全使用 cgajs-api 内嵌端点。
- 方案 B:启动独立服务并配置 Nginx 子域
nl2cga.cgajs.com,cgajs-api 做反向代理。
当前 Marketplace 仍有约 380 个 UUID 命名的原始文件,缺少标题、标签、预览图、manifest。改造需要 LLM 调用与批量渲染资源,请确认是否启动。
查看推荐下一步 →按最终架构,CGA 资产/Marketplace 权威应在 rulepackage.com。cgajs.com 目前仍保留 marketplace_routes 写入能力。需要决定写入迁移范围与时间表。
当前已切换为 paraphrase-multilingual-MiniLM-L12-v2,中文检索已显著改善。如需更强中文语义,可换用 BAAI/bge-small-zh-v1.5 等中文专用模型。
当前导航栏已指向正确的子域名(如 marketplace.rulepackage.com、osm.rulepackage.com、marketplace.cgajs.com),但直接访问 /marketplace.html 或 /osm.html 会返回 404。如需兼容旧入口,可添加 meta-refresh 跳转页。请确认是否需要。
当前 cgajs-api.service 以 root 运行,一旦 API 进程被入侵会直接控制整台服务器。建议创建专用 cgajs 用户,调整文件/目录权限(上传目录、引擎目录、共享记忆库等)后降权运行。这涉及 systemd、文件权限和可能的部署脚本改造,请确认是否启动。
当前 CORS 允许 *.cgajs.com 带凭证,任何子域被劫持都可能跨域调用 API;限流器基于内存字典,在 4 worker 下会被放大 4 倍。建议:枚举精确来源、引入 Redis 共享限流、按用户/API Key 做配额。请确认优先级。
🟡待确认
当前问题:
- Inspector 未显示调节参数(LLM/模板生成的代码缺少规范 attr 注解)。
- “宫殿”等描述生成 CGA 时 LLM 路径耗时过长甚至无返回。
- 生成函数选择不可控,LLM 经常写出
extrude(scope.sy*1.2+rand(0.3))等过度复杂的表达式。
方案:引入“几何策略引擎(Geometry Strategy Engine)”,把生成过程从“纯 LLM 自由发挥”改为“润色引擎决策几何策略 → 规则化代码组装 → LLM 仅做装饰/细节”。
1. 尺寸分级与随机性
- tiny(极小):长/宽/高 < 5m,随机范围 ±15%。
- small(小):5–15m,如“小房子”默认 12×5×7,随机范围 ±15%。
- medium(中):15–50m,默认 20×12×10,随机范围 ±10%。
- large(大):50–150m,默认 80×40×30,随机范围 ±10%。
- monumental(地标):>150m 或知识库实体,使用真实尺寸,不随机。
2. 几何策略规则(函数选择)
| 尺寸级 | 推荐策略 | CGA 写法示例 |
|---|---|---|
| tiny / small | 直接 primitiveCube | s(length, height, width) primitiveCube() |
| medium / large | primitiveQuad + extrude | s(length, 1, width) primitiveQuad() extrude(height) |
| monumental / 可缩放建筑 | 矢量 Quad + 矢量 extrude | primitiveQuad(scope.sx, scope.sz) extrude(scope.sy) |
| 圆形/塔状 | primitiveCylinder / primitiveCone | 按直径/高度选择 |
3. 代码组装器(Assembler)
新增 nl2cga/code_assembler.py,根据 polish 结果直接拼接出带规范 attr 注解的 CGA 骨架。LLM 仅负责:
- 屋顶样式(flat/gable/hip)的具体分支。
- 立面开窗/材质/颜色等装饰规则。
- 地标特有的斗拱、柱网、台基等细节。
Assembler 把生成时间从 LLM 的数秒/数十秒降到毫秒级,同时保证 Inspector 一定能读到 attr。
4. 后处理保险(Attr Injector)
无论 LLM 还是 Assembler 生成,返回前都用正则/AST 校验:若缺少 attr length/width/height/roof_type,则按 polish 参数强制注入;若缺少 @Range/@Enum/@Group/@Order,则自动补注解。
5. 实施里程碑
- M1:Attr Injector + Inspector 修复。
- M2:Geometry Strategy Engine + 尺寸分级随机。
- M3:Code Assembler,优先走 Assembler,LLM 只做装饰。
- M4:模板引擎与 Assembler 对齐,地标走知识库真实参数。
- M5:前端增加“重新生成”“跳过动画”“显示策略”等交互优化。
6. 实施结果(2026-06-16)
- M1:后端
inject_attrs保险 + 前端生成后清空__inspectorValues,Inspector 已能显示 length / width / height / roof_type 等参数。 - M2:新增
nl2cga/geometry_strategy.py,实现 tiny/small/medium/large/monumental 五级尺寸分级与随机抖动,并给出对应函数选择规则。 - M3:新增
nl2cga/code_assembler.py,毫秒级生成带规范注解的 CGA 骨架;LLM 仅作装饰/细节。 - M4:
nl2cga_generate()已改为 Assembler → Template Engine → RAG → LLM 优先级;地标(太和殿)走知识库真实参数 + scoped_quad_extrude。 - M5:
ide.html已加入 AI 润色文字打字机动画、CGA 代码逐行揭示动画、策略徽章显示,生成后自动插入编辑器并触发预览。 - 测试:新增
tests/test_code_assembler.py,与tests/test_polish_engine.py均通过;线上 API 实测“太和殿”生成耗时约 0.02s,provider=assembler。 - 部署:已同步到 cgajs.com/ide.html,请强制刷新验证。
后续可选优化:为 more 风格化/地标化场景补充装饰规则模板;微调各 size 级默认尺寸与随机幅度;为 “重新生成” 增加参数锁定/变化幅度选项。
需要在两台服务器的 /etc/cgajs/cgajs-api.env 中配置相同的 RULEPACKAGE_WEBHOOK_SECRET,webhook 推送与 HMAC 校验才能生效。请提供密钥值或授权我生成并写入。
当前测试输出存在大量 [Parser Ambiguity] 警告,虽不导致失败,但长期可能引发难以定位的 bug。请确认是按 CI 统计禁止新增,还是优先修复高频 ambiguity。
已修复:移除 bundled CSS 时遗漏了 .layout、侧栏标签、#viewer canvas、错误项等样式,并放宽了初始化检测超时。请按 Ctrl+Shift+R 强制刷新 /ide.html,确认:
- 左侧编辑器显示默认 CGA 代码,字体大小正常(基准 14px)。
- 右侧 3D 视图出现网格与模型,不再显示初始化失败。
- 右侧 Inspector / AST / Diagnostics 等侧栏标签样式正常。
如仍有问题,请把浏览器控制台报错贴给我。
请从 Marketplace 点击任意示例,跳转 ide.html?cga_id=... 后确认代码和 3D 都正常加载。
已创建 /www/wwwroot/scripts/kimi-wrap-up.sh。请确认:备份文件生成、/updata.html 新增卡片、/me.html 更新、首页导航自动包含新页面、共享记忆库同步。
已完成:
- cgajs.com
/api/v1/engine/run资产下载增加 SSRF 校验,拒绝私有 IP/localhost/非 HTTP(S) 协议。 - rulepackage.com uvicorn 工作进程从 1 个提升到 4 个,避免单个慢请求阻塞全站 API。
- 清理了本轮审计生成的临时测试账号与对应 usage_logs。
已删除导致满屏红色报错的调试诊断脚本,并为 IDE 页面补充了全局导航。请按 Ctrl+Shift+R 强制刷新 /ide.html,确认:
- 页面不再出现大量
DIAG fetch / DIAG import红色报错。 - 左侧代码编辑器正常显示默认 CGA 代码。
- 右侧 3D 视图出现网格与模型,Inspector / Diagnostics 等侧栏正常。
如仍有报错,请把浏览器控制台(F12 → Console)完整截图或复制给我。
已修复多项漏洞,请抽查确认业务未受影响:
- 匿名访问
/api/v1/upload/asset、/api/v1/ai-chat返回 401。 - 已登录用户/使用 API Key 仍正常上传资产、调用 AI Chat。
- IDE 编译/运行(包括带外部 asset URL)仍能正常工作。
- GitHub/微信 OAuth 登录与管理员登录后的 Cookie 仍跨子域有效。
如发现异常,请把相关请求/响应或浏览器控制台信息发给我。
请分别验证:
- 访问 rulepackage.com/ide.html,左侧编辑器默认代码正常,右侧 3D 视图能渲染模型。
- 在 marketplace.rulepackage.com 点击任意 CGA 示例,应在新标签打开
https://www.rulepackage.com/ide.html?cga_id=...并自动加载代码到编辑器,右侧渲染对应模型。 - 访问 cgajs.com/ide.html?cga_id=1114&marketplace=rulepackage,应能加载 rulepackage.com 的示例并渲染(用于验证 cgajs.com IDE 测试能力)。
如任一环节失败,请把浏览器控制台报错和页面状态截图发给我。
已修复 fetchOmegaReports is not defined 错误。请在 rulepackage.com/ide.html 或 cgajs.com/ide.html 验证:
- 打开 Omega 侧栏,报告列表正常加载。
- 点击任意 batch 查看详情后,点击 “← Back to reports” 能返回列表,控制台无红色报错。
如仍报错,请按 Ctrl+Shift+R 强制刷新后再试,并把控制台信息发给我。
🟣待补充资料
元数据化脚本可自动生成标题与标签,但对于品牌、风格、授权等字段需要您最终确认,或提供一份手动映射表。
为最常用的 10–20 个建筑风格/类型,各补充 3–5 条中文自然语言查询示例(如「生成一座带庭院的现代别墅」),可显著提升 NL2CGA 检索准确率。
🔴待付费/采购
🟠待外部协调
⚪其他
约 5 条 source=corpus_validation 且 slug 为 UUID 的 CgaAsset 被错误标记为 cga_library。请确认是否让我清理并重新归类。