2026-05-25-13-42-13 调整自动匹配迭代轮次上限
This commit is contained in:
@@ -1097,7 +1097,7 @@ function normalizeAutoMatchWeights(input: unknown): AutoMatchWeights {
|
|||||||
|
|
||||||
function normalizeAutoMatchIterations(value: unknown) {
|
function normalizeAutoMatchIterations(value: unknown) {
|
||||||
return typeof value === 'number' && Number.isFinite(value)
|
return typeof value === 'number' && Number.isFinite(value)
|
||||||
? clampNumber(Math.round(value), 2, 12)
|
? clampNumber(Math.round(value), 2, 50)
|
||||||
: 6;
|
: 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -521,9 +521,9 @@ export default function AutoMatchWorkspace({ projectId, initialPose, onOpenRever
|
|||||||
<input
|
<input
|
||||||
type="number"
|
type="number"
|
||||||
min={2}
|
min={2}
|
||||||
max={12}
|
max={50}
|
||||||
value={iterations}
|
value={iterations}
|
||||||
onChange={(event) => setIterations(Math.max(2, Math.min(12, Number(event.target.value) || 2)))}
|
onChange={(event) => setIterations(Math.max(2, Math.min(50, Number(event.target.value) || 2)))}
|
||||||
className="mt-1 h-10 w-full rounded-lg border border-slate-200 px-3 font-mono text-sm text-slate-700 outline-none focus:border-blue-400"
|
className="mt-1 h-10 w-full rounded-lg border border-slate-200 px-3 font-mono text-sm text-slate-700 outline-none focus:border-blue-400"
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
|
|||||||
52
工程分析/实现方案-2026-05-25-13-42-13.md
Normal file
52
工程分析/实现方案-2026-05-25-13-42-13.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# 实现方案-2026-05-25-13-42-13
|
||||||
|
|
||||||
|
## 实现方案文档路径
|
||||||
|
|
||||||
|
`工程分析/实现方案-2026-05-25-13-42-13.md`
|
||||||
|
|
||||||
|
## 修改目标
|
||||||
|
|
||||||
|
将自动微调匹配工作区“迭代轮次”的最高可选值从 12 提升到 50,并保证后端接口同步支持。
|
||||||
|
|
||||||
|
## 涉及路径
|
||||||
|
|
||||||
|
- `WebSite/src/components/AutoMatchWorkspace.tsx`
|
||||||
|
- `WebSite/server.ts`
|
||||||
|
- `工程分析/需求分析-2026-05-25-13-42-13.md`
|
||||||
|
- `工程分析/实现方案-2026-05-25-13-42-13.md`
|
||||||
|
- `工程分析/测试方案-2026-05-25-13-42-13.md`
|
||||||
|
- `工程分析/经验记录.md`
|
||||||
|
|
||||||
|
## 技术路线
|
||||||
|
|
||||||
|
- 前端:把迭代轮次输入框 `max` 和 `onChange` clamp 上限改为 50。
|
||||||
|
- 后端:把 `normalizeAutoMatchIterations` 的 clamp 上限改为 50。
|
||||||
|
- 保持默认 `iterations = 6`,避免进入页面后默认就触发长耗时运行。
|
||||||
|
|
||||||
|
## 执行步骤
|
||||||
|
|
||||||
|
1. 确认已读 `工程分析/经验记录.md`。
|
||||||
|
2. 修改前端迭代轮次输入限制。
|
||||||
|
3. 修改后端接口参数归一化限制。
|
||||||
|
4. 执行 `npm run build`。
|
||||||
|
5. 重启 `tmux` 会话 `revoxelseg-dicom` 服务。
|
||||||
|
6. 验证本机与公网访问。
|
||||||
|
7. 追加经验记录并提交推送。
|
||||||
|
|
||||||
|
## 兼容性与回滚方案
|
||||||
|
|
||||||
|
- 旧请求中 `iterations <= 12` 行为不变。
|
||||||
|
- 若 50 次导致耗时过长,可再引入运行中取消、进度显示或更严格候选限制。
|
||||||
|
- 回滚只需恢复前后端上限为 12。
|
||||||
|
|
||||||
|
## 预计文件变更
|
||||||
|
|
||||||
|
- 两处代码常量级修改。
|
||||||
|
- 新增本次工程分析三件套。
|
||||||
|
- 追加经验记录。
|
||||||
|
|
||||||
|
## 提交与部署策略
|
||||||
|
|
||||||
|
- 只暂存本次代码和文档变更。
|
||||||
|
- commit message 包含 `2026-05-25-13-42-13` 和简要描述。
|
||||||
|
- 提交后推送到 Gitea,并完成重新部署验证。
|
||||||
45
工程分析/测试方案-2026-05-25-13-42-13.md
Normal file
45
工程分析/测试方案-2026-05-25-13-42-13.md
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
# 测试方案-2026-05-25-13-42-13
|
||||||
|
|
||||||
|
## 测试方案文档路径
|
||||||
|
|
||||||
|
`工程分析/测试方案-2026-05-25-13-42-13.md`
|
||||||
|
|
||||||
|
## 静态检查
|
||||||
|
|
||||||
|
- 搜索 `normalizeAutoMatchIterations` 和“迭代轮次”输入框,确认前后端上限一致为 50。
|
||||||
|
- 检查工作区状态,避免提交无关文件。
|
||||||
|
|
||||||
|
## 构建检查
|
||||||
|
|
||||||
|
- 在 `WebSite` 执行 `npm run build`。
|
||||||
|
- 关注 TypeScript/Vite 构建错误。
|
||||||
|
|
||||||
|
## 关键业务场景验证
|
||||||
|
|
||||||
|
- 自动微调匹配页的迭代轮次输入框允许输入 50。
|
||||||
|
- 默认迭代轮次仍为 6。
|
||||||
|
- 后端接口收到 50 时不会截断到 12。
|
||||||
|
|
||||||
|
## 医学影像数据相关边界验证
|
||||||
|
|
||||||
|
- 本次不修改 DICOM/STL 坐标、采样、评分或导出算法。
|
||||||
|
- 50 次迭代只影响用户主动选择后的优化循环次数。
|
||||||
|
|
||||||
|
## 部署验证
|
||||||
|
|
||||||
|
- 使用 `tmux` 会话 `revoxelseg-dicom` 重启服务。
|
||||||
|
- 验证:
|
||||||
|
- `http://127.0.0.1:4000/api/health`
|
||||||
|
- `http://127.0.0.1:4000/`
|
||||||
|
- `https://revoxel.huijutec.cn/api/health`
|
||||||
|
- `https://revoxel.huijutec.cn/`
|
||||||
|
|
||||||
|
## Git/Gitea 备份验证
|
||||||
|
|
||||||
|
- commit message 包含 `2026-05-25-13-42-13`。
|
||||||
|
- 推送到 `origin/main`。
|
||||||
|
|
||||||
|
## 风险与回归关注点
|
||||||
|
|
||||||
|
- 迭代轮次越高,单次自动匹配耗时越长;后续如需常用 50 次,应考虑进度、取消和服务端超时保护。
|
||||||
|
- 注意前端输入限制和后端 clamp 不要再次出现不一致。
|
||||||
18
工程分析/经验记录.md
18
工程分析/经验记录.md
@@ -1959,3 +1959,21 @@ C. 解决问题方案
|
|||||||
D. 后续如何避免问题
|
D. 后续如何避免问题
|
||||||
|
|
||||||
整理软著代码汇总时,先确认用户要的是“带核对信息的审阅版”还是“纯源码版”。若目标是提交材料,默认减少额外说明、文件标题和行号,只保留源码文本;用于内部核对的行号应放在临时检查结果里,不直接写入最终 docx。
|
整理软著代码汇总时,先确认用户要的是“带核对信息的审阅版”还是“纯源码版”。若目标是提交材料,默认减少额外说明、文件标题和行号,只保留源码文本;用于内部核对的行号应放在临时检查结果里,不直接写入最终 docx。
|
||||||
|
|
||||||
|
## 2026-05-25-13-42-13 自动匹配参数上限要前后端同步
|
||||||
|
|
||||||
|
A. 具体问题
|
||||||
|
|
||||||
|
用户要求自动微调匹配工作区“迭代轮次”最高变为 50 次。页面旧输入框最大值为 12,后端 `normalizeAutoMatchIterations` 也会把请求轮次截断到 12。
|
||||||
|
|
||||||
|
B. 产生问题原因
|
||||||
|
|
||||||
|
自动匹配的轮次上限同时存在于前端输入控件和后端请求归一化中。若只修改其中一侧,会出现界面可以输入但接口不执行,或接口支持但页面无法选择的状态。
|
||||||
|
|
||||||
|
C. 解决问题方案
|
||||||
|
|
||||||
|
将 `AutoMatchWorkspace.tsx` 中迭代轮次输入框的 `max` 和 `onChange` clamp 上限改为 50;同步将 `server.ts` 中 `normalizeAutoMatchIterations` 的服务端 clamp 上限改为 50。默认值仍保留 6,避免进入页面后默认运行变慢。
|
||||||
|
|
||||||
|
D. 后续如何避免问题
|
||||||
|
|
||||||
|
后续调整自动匹配参数上限时,要同时检查前端控件、API 类型、服务端归一化、默认值和运行耗时提示。对可能显著增加耗时的参数,只提高上限不改变默认值;若用户常用高上限,应补充进度、取消和超时保护。
|
||||||
|
|||||||
43
工程分析/需求分析-2026-05-25-13-42-13.md
Normal file
43
工程分析/需求分析-2026-05-25-13-42-13.md
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# 需求分析-2026-05-25-13-42-13
|
||||||
|
|
||||||
|
## 开始时间
|
||||||
|
|
||||||
|
2026-05-25-13-42-13
|
||||||
|
|
||||||
|
## 原始需求摘要
|
||||||
|
|
||||||
|
用户要求将自动微调匹配工作区中的“迭代轮次”最高值调整为 50 次。
|
||||||
|
|
||||||
|
## 业务目标
|
||||||
|
|
||||||
|
- 自动微调匹配页允许用户输入最多 50 次迭代。
|
||||||
|
- 后端自动匹配接口也接受并执行最多 50 次迭代,避免前后端上限不一致。
|
||||||
|
- 保持默认轮次不变,避免无意增加普通运行耗时。
|
||||||
|
|
||||||
|
## 输入与输出
|
||||||
|
|
||||||
|
- 输入:自动微调匹配工作区的迭代轮次输入框、自动匹配 API 请求参数。
|
||||||
|
- 输出:界面 `max` 和输入截断上限为 50,服务端 `iterations` 归一化上限为 50。
|
||||||
|
|
||||||
|
## 影响范围
|
||||||
|
|
||||||
|
- `WebSite/src/components/AutoMatchWorkspace.tsx`
|
||||||
|
- `WebSite/server.ts`
|
||||||
|
- 工程分析本次三件套和经验记录
|
||||||
|
|
||||||
|
## 关键约束
|
||||||
|
|
||||||
|
- 必须执行工程分析工作流。
|
||||||
|
- 不修改自动匹配默认轮次、候选数量、评分函数和位姿算法。
|
||||||
|
- 修改后需要重新构建、部署并验证服务。
|
||||||
|
|
||||||
|
## 风险点
|
||||||
|
|
||||||
|
- 50 次迭代可能明显增加自动匹配耗时,需要保留用户手动选择。
|
||||||
|
- 如果只改前端不改后端,接口仍会把 50 截为旧上限。
|
||||||
|
- 如果只改后端不改前端,用户仍无法通过页面输入 50。
|
||||||
|
|
||||||
|
## 默认假设
|
||||||
|
|
||||||
|
- 用户只要求提升最大上限,不要求默认值从 6 改为 50。
|
||||||
|
- 每轮候选数量上限仍保持当前 80,不在本次调整范围内。
|
||||||
Reference in New Issue
Block a user