跳到主要内容

Rust SDK 概述

调用失败时不会 panic,而是返回 Result,错误值是 AiError。SDK 不发布到 crates.io,请用路径依赖引入。

安装​

把 path 写成 SDK 解压后的 Rust/darra-ai 目录,然后执行 cargo build。

[dependencies]
darra-ai = { path = "Rust/darra-ai" }
$env:DARRA_AI_CORE_LIB_DIR = "C:/DarraAI-SDK/Core/lib"
cargo build

快速开始​

new 创建配置对象并读取模型元信息。provider / gpu_id 须在 open 之前设置。

use darra_ai::Model;

fn main() -> Result<(), darra_ai::AiError> {
let mut ai = Model::new("model.darmodel")?
.provider("onnx-cuda")
.gpu_id(0);
ai.open(None)?;
let inf = ai.infer_file("a.jpg", None)?;
println!("{inf:?}");
ai.close();
Ok(())
}

高级接口​

单模型用 Model 就够。

  • 会话 Session — 一个模型对应一个 Session 实例,不能 Clone。
  • 推理池 InferPool — 一个池对应一个模型。
  • 运行时 Runtime — 查版本、环境自检、配全局线程。全局线程须在 Session::open 之前配。

错误处理​

失败不 panic,按 Rust Result 惯例返回 Err(AiError),带 message 与 hint。

版本兼容​

Rust 1.70 起。

平台是 Windows x64、Linux x86_64、Linux aarch64;edge-rknn 只在 linux-aarch64 板端可用。