oar_ocr/core/inference/
session.rs

1//! Helpers for working directly with ONNX Runtime sessions.
2
3use crate::core::errors::OCRError;
4use ort::session::Session;
5use std::path::Path;
6
7pub fn load_session(model_path: impl AsRef<Path>) -> Result<Session, OCRError> {
8    let path = model_path.as_ref();
9    let session = Session::builder()
10        .and_then(|b| b.commit_from_file(path))
11        .map_err(|e| {
12            OCRError::model_load_error(
13                path,
14                "failed to create ONNX session",
15                Some("verify model file exists and is readable"),
16                Some(e),
17            )
18        })?;
19    Ok(session)
20}