cdsl新增一些笼统的指标集
This commit is contained in:
@@ -15,6 +15,7 @@ from app.cad_agent.domain.operation_contract import (
|
||||
validate_operation_contract,
|
||||
)
|
||||
from app.cad_agent.ports import AdapterUnavailable
|
||||
from app.services.derived_metrics import derive_metrics, make_prefix_runner
|
||||
from app.services.engine_service import load_engine, topology_snapshot, validate_cdsl, validate_cdsl_shape
|
||||
from app.services.render_bundle import RenderBundleError, render_checkpoint
|
||||
from app.settings import Settings
|
||||
@@ -102,7 +103,6 @@ class ProfileCadRuntime:
|
||||
cdsl_copy = deepcopy(cdsl)
|
||||
cdsl_copy["part_id"] = task_id
|
||||
step_path = root / "model.step"
|
||||
self._write_json(root / "model.cdsl.json", cdsl_copy)
|
||||
try:
|
||||
self._validate_finite_tree(cdsl_copy)
|
||||
validate_cdsl(cdsl_copy, self.engine)
|
||||
@@ -112,6 +112,15 @@ class ProfileCadRuntime:
|
||||
health = self._health(engine_result, step_path)
|
||||
topology = topology_snapshot(engine_result, task_id=task_id, revision_id=revision_id)
|
||||
self._write_json(root / "model.topology.json", topology)
|
||||
# Derived metrics are backfilled after validation, so they can
|
||||
# never influence acceptance; the persisted document carries them
|
||||
# for training while rebuild behavior stays untouched.
|
||||
derived = derive_metrics(
|
||||
cdsl_copy, engine_result, topology,
|
||||
prefix_runner=make_prefix_runner(self.engine.run_cdsl_only),
|
||||
)
|
||||
cdsl_copy.setdefault("meta", {})["derived_metrics"] = derived
|
||||
self._write_json(root / "model.cdsl.json", cdsl_copy)
|
||||
report = {"engine_result": engine_result, "preview": {}, "health": health, "render_manifest": {}}
|
||||
self._write_json(root / "rebuild-report.json", report)
|
||||
return {"health": health, "topology": topology, "report": report, "render_manifest": {}, "paths": {"cdsl": "model.cdsl.json", "step": "model.step", "topology": "model.topology.json", "report": "rebuild-report.json"}}
|
||||
|
||||
Reference in New Issue
Block a user