test: 大样图4页真实测试视觉审计(三铁律提示词强化, 数量控制为模型边界, 加审图警示)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# CHANGELOG
|
||||
|
||||
- [2026-10-07 09:30] TEST+FIX: v2.47 大样图真实测试视觉审计(4 页手绘登记表)。批量实测 4 页全部生成成功(33~42s, 加固后零失败); 逐页视觉审计: p51 4/4 窗结构/开扇全对但 2 处手写数字误识(2200↔2020/1995↔1955); p49(旋转横拍+7窗高密度)窗合并丢失+尺寸多处无出处; p50 4窗生成 5 窗(1770x1200 重复)+1 处开扇反向; p52 4窗生成 5 窗(2810 重复); 提示词强化三铁律(数量/尺寸/开向)+窗编号+划掉数字以改后为准+无法辨认标?+旋转图先转正; 复测 p50 反证: 6 窗(幻觉更重)——**扩散类生图模型对对象数量精确控制是能力边界, 提示词无法根治**, 有效部分(窗编号/尺寸?标注/表格信息卡)保留; 产品对策对齐 autocad 项目审图定位: 蓝图 Tab 加审图警示(尺寸与窗数可能有误, 逐窗核对后再用于报价); 审计资产: shots/audit-{p49,p50,p51,p52}-{src,out}.png (Files: src/huamenchuang/api/ai_render.py, frontend/src/views/AIRenderView.vue)
|
||||
- [2026-10-07 08:00] FIX: v2.46 大样图生成失败加固(用户报告偶发失败)。诊断: 后端 API 复现两页手绘登记表均 38~43s 生成成功——失败为中转偶发超时/慢响应叠加手机原图未压缩(现场拍照 5~10MB, 测试图仅 194KB, base64 后请求体过大加剧超时); 三重加固: ①前端草图上传压缩至 ≤1536px JPEG(toDataURL 0.9, 复用照片合成模式同款口径, 治本) ②后端生图请求超时/5xx 自动重试一次(4xx 快速失败不重试), 请求段重构 _post_image() ③重试前 3s 等待; 实测第 53 页登记表原图 38s 成功(4 窗逐窗转换: 5860 大窗+700 上亮+730 标注/1680/1775/1760, 尺寸与手稿全一致, 开启扇符号保留); 回归: 冒烟 60/60+24 页巡检 0 异常 (Files: src/huamenchuang/api/ai_render.py, frontend/src/views/AIRenderView.vue)
|
||||
- [2026-10-07 06:35] FEAT: v2.45 工程大样图支持上传手绘量尺登记表(用户核心场景)。blueprint 底图扩展: 上传手绘草图照片(现场量尺登记表)/2D 图纸截图二选一, 纯草图模式(无样板)不要求图纸数据; 提示词升级: 手绘登记表逐窗转换(保留各窗相对布局/分格/开启扇对角三角/手写尺寸规范誊写, 不保留表格框线, 模糊尺寸按可辨识程度誊写不编造); 前端蓝图 Tab 加草图上传(预览+移除, el-upload http-request 的 file 兼容 raw 包裹), 上传草图时脱离样板上下文(避免无关窗型特征误导); blueprint 尺寸固定 1536x1024 横版(量尺登记表整页比例, 对齐 autocad 口径); 真实实测: 用户手绘登记表(第52页 5 窗)78s 转规范大样图——分格/开启扇/尺寸(2780x2035/2810x2040/1850x2440/650/1500/700/1600/300)全保留规范誊写, 手写房间位置(27#南阳)识别保留, 表格框线去除, 标题栏/横版布局完整; 回归: 冒烟 60/60+24 页巡检 0 异常 (Files: src/huamenchuang/api/ai_render.py, frontend/src/views/AIRenderView.vue, doc/API.md)
|
||||
- [2026-10-06 07:17] FEAT: v2.44 AI 生成工程大样图(整合自 D:\Codeutocad 项目草图标准化能力)。后端 /api/ai-render 新增 blueprint 模式: 2D 图纸截图(sketch_b64, WindoorCanvas 新增 exportImage() 画布导出)为底图 images/edits 重绘黑白 CAD 工程大样图; 大样图提示词移植 autocad 项目风格迁移资产(正投影立面/细黑线框/玻璃淡灰填充/尺寸线/中文工程标注/标题栏+不编造尺寸/仅供审图与报价附件约束)并叠加 describe_window 窗型分格特征增强保真; /prompt 端点支持 blueprint 预览; 前端 AI 炫图页新增「工程大样图」Tab(样板选择+2D 图纸底图+一键生成+结果下载); 真实生成实测 59~68s: 样板704 → 黑白大样图(分格 F1/A1/F2 与原图一致, 开启扇对角线+把手保留, 尺寸标注 600/1200/400/1200 与几何一致, 中文引出线标注+说明+标题栏图名/规格/比例/日期); 修复 AIRenderView.loadTemplate 不回写 templateId(程序化自动选样板后 template_id=undefined 报未找到图纸数据, 手动下拉路径 v-model 自动更新故从未暴露); 回归: 冒烟 60/60+24 页巡检 0 异常 (Files: src/huamenchuang/api/ai_render.py, frontend/src/views/AIRenderView.vue, frontend/src/components/WindoorCanvas.vue, doc/API.md)
|
||||
|
||||
@@ -92,6 +92,9 @@
|
||||
</el-upload>
|
||||
<el-button v-if="sketchPhoto" size="small" text type="danger" @click="sketchPhoto = ''">移除草图</el-button>
|
||||
<span class="tip">{{ sketchPhoto ? '已上传手绘草图,AI 将逐窗转为规范大样图' : '上传现场手绘量尺登记表照片;也可不传,用所选样板的 2D 图纸生成' }}</span>
|
||||
<el-tooltip content="AI 生成的尺寸与窗数可能有误,输出仅供人工审图参考,请逐窗逐尺寸核对后再用于报价" placement="bottom">
|
||||
<el-icon class="warn-icon"><WarningFilled /></el-icon>
|
||||
</el-tooltip>
|
||||
<div style="flex:1" />
|
||||
<el-button type="primary" :disabled="(!sketchPhoto && !drawing) || generating" :loading="generating"
|
||||
@click="generateBlueprint">
|
||||
@@ -424,6 +427,7 @@ onMounted(async () => {
|
||||
.sub { color: #909399; font-size: 12px; }
|
||||
.controls { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; align-items: center; }
|
||||
.tip { color: #909399; font-size: 12px; }
|
||||
.warn-icon { color: #e6a23c; font-size: 16px; cursor: help; }
|
||||
.drop-hint { border: 2px dashed #c8cdd6; border-radius: 12px; padding: 56px 20px; text-align: center;
|
||||
color: #606266; cursor: pointer; transition: border-color .2s, background .2s; }
|
||||
.drop-hint:hover { border-color: #5b3fd4; background: #faf8ff; }
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1010 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
@@ -73,9 +73,13 @@ def build_blueprint_prompt(drawing: str | dict) -> str:
|
||||
Asset type: 门窗工程审图参考图
|
||||
Primary request: 将输入的门窗手绘草图(现场量尺登记表照片)或 2D 图纸重绘为清晰、整洁的工程 CAD 大样图风格预览。
|
||||
Input images: 第一张是原始手绘草图照片或 2D 图纸,仅作为几何、分格与标注位置的几何来源。输入可能是一页包含多个窗的手绘量尺登记表——逐窗转换,保持各窗的相对布局与各自分格。
|
||||
Style/medium: 黑白二维门窗工程大样图、正投影立面、细黑线框、玻璃淡灰填充、外部尺寸线与分格尺寸标注、中文工程标注、右下角标题栏(图名/比例/日期)。
|
||||
Constraints: {feat} 严格保留手稿中可辨识的总体构图、每个窗的窗扇/玻璃分格数量与比例、开启扇方向符号(对角三角线)位置、手写尺寸数字;不要增删或合并分格;手写字迹模糊的尺寸按可辨识程度规范誊写,不要编造缺失尺寸;输出仅供人工审图与报价附件,不作为 CAD 几何或生产数据来源;无水印、无装饰性场景、无彩色、不保留登记表表格框线。
|
||||
Avoid: 三维渲染、透视效果、写实照片、彩色渲染、虚构品牌、模糊文字。"""
|
||||
Style/medium: 黑白二维门窗工程大样图、正投影立面、细黑线框、玻璃淡灰填充、外部尺寸线与分格尺寸标注、中文工程标注、每个窗下方标注"窗1/窗2…"编号、右下角标题栏(图名/比例/日期)。
|
||||
Constraints: {feat}
|
||||
数量铁律: 输出大样图的数量必须与输入草图中的窗数量完全相同,一个不多一个不少;每个窗只绘制一次,严禁重复绘制同一个窗,严禁合并或省略任何窗。
|
||||
尺寸铁律: 手写数字可能有涂改或划掉——被划掉的数字以改后数字为准;只誊写可清晰辨认的数字;无法辨认的尺寸处只标注"?",严禁猜测或编造任何数字。
|
||||
开向铁律: 每个开启扇的对角三角符号必须与原图的铰链侧、开启方向完全一致,不得镜像或反向。
|
||||
结构铁律: 严格保留每个窗的分格数量、比例与位置;不要增删或合并分格;如果照片是旋转拍摄的,先将画面转正再逐窗转换;输出仅供人工审图与报价附件,不作为 CAD 几何或生产数据来源;无水印、无装饰性场景、无彩色、不保留登记表表格框线。
|
||||
Avoid: 三维渲染、透视效果、写实照片、彩色渲染、虚构品牌、模糊文字、重复的窗。"""
|
||||
|
||||
|
||||
@router.post("/generate")
|
||||
|
||||
Reference in New Issue
Block a user