跳到主要内容

属性

类别属性类型读写说明
基本信息meta().task()`Option<&str>`只读任务类型(classify / detect 等),模型没声明时为 None
meta().labels()`&[String]`只读类别名表,下标就是 class_id;缺失时是空表
meta().class_count()`Option<i64>`只读类别数量,模型没声明时为 None
meta().input_width()`Option<u32>`只读输入宽度(像素),动态维度时为 None
meta().input_height()`Option<u32>`只读输入高度(像素),动态维度时为 None
meta().input_channels()`Option<u32>`只读输入通道数(1 / 3 / 4),动态维度时为 None
meta().is_encrypted()bool只读是否为加密容器,创建时就会判定
meta().meta_json()`&str`只读模型元数据 JSON 原文,探测失败时为空串
授权license()ModelState只读授权态(明文 / 试用 / 绑定),构造或 open 时根据 probe 结果判定
运行时phase()Phase只读构造成功是 Loaded,open 成功是 Opened,open 失败是 Error
selected_provider()`Result<String, AiError>`只读实际选定的 Provider,未 open 时返回 Err
诊断last_error()`Option<LastError>`只读最近一次的失败信息,成功时为 None;推理失败只写这里,phase 仍为 Opened

状态管理​

时机看哪个属性预期
open() 前phase() / selected_provider() / license()Loaded / Err / 构造时按 probe 判定
open() 后license() / selected_provider()明文 / 试用 / 绑定 / 已绑定 之一;Ok(实际后端 Provider)
推理失败时last_error()Some(..);phase() 仍 Opened
close() 后selected_provider() / phase() / license()Err / Loaded / NotOpened