From cf19a02f308838c6965d341e1b7929933553f73e Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Thu, 16 Jan 2025 15:51:38 +0100 Subject: [PATCH 1/3] Add missing `match` on `onnx/model.onnx` download --- backends/src/lib.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backends/src/lib.rs b/backends/src/lib.rs index 74ba5e8a..9db28086 100644 --- a/backends/src/lib.rs +++ b/backends/src/lib.rs @@ -530,8 +530,11 @@ async fn download_onnx(api: &ApiRepo) -> Result, ApiError> { Err(err) => { tracing::warn!("Could not download `model.onnx`: {err}"); tracing::info!("Downloading `onnx/model.onnx`"); - let p = api.get("onnx/model.onnx").await?; - model_files.push(p.parent().unwrap().to_path_buf()) + + match api.get("onnx/model.onnx").await { + Ok(p) => model_files.push(p.parent().unwrap().to_path_buf()), + Err(err) => tracing::warn!("Could not download `onnx/model.onnx`: {err}"), + }; } }; From 855dc50e75440c6ddba906b61e8a7a12d046eb74 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Wed, 26 Feb 2025 13:41:11 +0100 Subject: [PATCH 2/3] Fix handling of `download_onnx` function output Prevents the logging message "Model ONNX weights downloaded in ..." from showing whenever those are either not present or not downloaded --- backends/src/lib.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backends/src/lib.rs b/backends/src/lib.rs index 9db28086..c470668f 100644 --- a/backends/src/lib.rs +++ b/backends/src/lib.rs @@ -338,10 +338,12 @@ async fn init_backend( { if let Some(api_repo) = api_repo.as_ref() { let start = std::time::Instant::now(); - download_onnx(api_repo) - .await - .map_err(|err| BackendError::WeightsNotFound(err.to_string())); - tracing::info!("Model ONNX weights downloaded in {:?}", start.elapsed()); + match download_onnx(api_repo).await { + Ok(_) => { + tracing::info!("Model ONNX weights downloaded in {:?}", start.elapsed()) + } + Err(err) => BackendError::WeightsNotFound(err.to_string()), + } } let backend = OrtBackend::new(&model_path, dtype.to_string(), model_type.clone()); From 297944a6127c197e79a13b5fb416f84ae9001c1f Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Wed, 26 Feb 2025 14:50:21 +0100 Subject: [PATCH 3/3] Capture `model_files` and check if empty --- backends/src/lib.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/backends/src/lib.rs b/backends/src/lib.rs index c470668f..727d1fd9 100644 --- a/backends/src/lib.rs +++ b/backends/src/lib.rs @@ -338,11 +338,16 @@ async fn init_backend( { if let Some(api_repo) = api_repo.as_ref() { let start = std::time::Instant::now(); - match download_onnx(api_repo).await { - Ok(_) => { + let model_files = download_onnx(api_repo) + .await + .map_err(|err| BackendError::WeightsNotFound(err.to_string()))?; + match model_files.is_empty() { + true => { + tracing::error!("Model ONNX files not found in the repository") + } + false => { tracing::info!("Model ONNX weights downloaded in {:?}", start.elapsed()) } - Err(err) => BackendError::WeightsNotFound(err.to_string()), } }