Update consumable pipeline, client API docs, and deployment config

- Refine effective candidate consumables and classifier labels
- Adjust vision algorithm, TSV logging, and video session wiring
- Refresh client surgery HTTP contract doc and staging/video docs
- Update settings, docker-compose prod, tests, and uv.lock

Made-with: Cursor
This commit is contained in:
Kevin
2026-04-24 11:05:17 +08:00
parent 3d7bd70355
commit 557fcee803
15 changed files with 529 additions and 636 deletions

View File

@@ -140,7 +140,7 @@ class CameraSessionManager:
if not resolved:
raise SurgeryPipelineError(
"RECORDING_CANNOT_START",
"耗材候选为空:请在请求中传入 candidate_consumables配置耗材目录 Excel / 分类模型。",
"耗材候选为空:请在请求中传入 candidate_consumables提供有效的 consumable_classifier_labels.yaml / 分类模型。",
)
if not any(str(x).strip() for x in candidate_consumables):
logger.info(

View File

@@ -59,7 +59,7 @@ class CameraStreamInferState:
@dataclass
class SurgerySessionState:
candidate_consumables: list[str]
#: 分类类名(归一化) -> 业务物品 idExcel 产品编码或名称)。
#: 分类类名(归一化) -> 业务物品 idYAML label_id 或类名)
name_to_code: dict[str, str] = field(default_factory=dict)
camera_infer: dict[str, CameraStreamInferState] = field(default_factory=dict)
details: list[SurgeryConsumptionStored] = field(default_factory=list)