版本与诊断
AiRuntime 版本常量与查询、AiDiagnostics.collect 环境自检。装包见 安装。
属性
| 属性 | 类型 | 说明 |
|---|---|---|
| VERSION_MAJOR | int | 头文件 DARRA_VERSION_MAJOR。NativeLoader 加载时已核对此值(1) |
| VERSION_MINOR | int | 与 DARRA_VERSION_MINOR 对齐 |
| VERSION_PATCH | int | 与 DARRA_VERSION_PATCH 对齐 |
当前 1.0.0。打包查询走 packedVersion() / versionString(),不要自己拼。
方法
AiRuntime.packedVersion()
public static int packedVersion()
打包版本 major*65536 + minor*256 + patch。对应 darra_version()。
返回值:
int— 打包值。1.0.0 = 65536
示例:
int packed = AiRuntime.packedVersion();
AiRuntime.versionString()
public static String versionString()
形如 1.0.0+runtime / 1.0.0+authoring 的静态串。对应 darra_version_string()。客户机必须看到 +runtime。Java 侧拷贝,无需释放。
返回值:
String— 版本串
示例:
String ver = AiRuntime.versionString();
NativeLoader 加载时已核 darra_version major == HEADER_MAJOR(1)。库找不到或 major 不等 → 加载失败,禁止继续调用。
AiDiagnostics.collect()
public static String collect()
采集本机环境诊断,输出统一 JSON。覆盖:os/arch、CPU、GPU 型号 + 驱动版本 + CUDA 上限、已装 Provider 及版本、授权状态(去敏:绝不含密钥 / 密码 / token / 机器指纹字节)、最近错误环形缓冲(去敏)。
对应 darra_diag_collect。
- 尽力而为:单个字段采不到时 JSON 中该字段为
null或缺席,整体不失败。 - 注意:可能触发 WMI / NVML / sysfs 查询,耗时可到数百毫秒——禁止在 PLC 扫描周期等实时路径调用。
- 返回值是 Java 侧拷贝,无需
darra_string_free。
返回值:
String— UTF-8 JSON
示例:
String diag = AiDiagnostics.collect();
System.out.println(diag);
相关结构:
{
"schema": 1,
"sdk": { "version": "1.0.0+runtime", "abi": 65536 },
"os": { "name": "windows", "version": "10.0.26100", "arch": "x64" },
"cpu": { "model": "AMD Ryzen 7 9800X3D", "cores": 16 },
"gpus": [ { "model": "NVIDIA RTX 4070", "driver": "560.94", "cudaMax": "12.6" } ],
"providers": [ { "id": "onnx-cpu", "version": "1.0.0", "path": "C:/.../Env/onnx-cpu/1.0.0" } ],
"license": { "present": true, "mode": "trial", "trialRemaining": 12, "machineBound": false },
"recentErrors": [ { "code": 11, "message": "...", "when": "2026-09-01T10:00:00+08:00" } ]
}
schema恒存在;其余字段采不到时为null或缺席,消费方必须容忍。- 去敏:永不出现密钥 / 密码 / token / 机器指纹原始字节;
license只有状态摘要。 gpus无独显时为[];providers未装任何包时为[]。