@@ -310,19 +310,16 @@ pub async fn download_weights(api: &ApiRepo) -> Result<Vec<PathBuf>, ApiError> {
310310 }
311311 }
312312 } else if cfg ! ( feature = "ort" ) {
313- tracing:: info!( "Downloading `model.onnx`" ) ;
314- match api. get ( "model.onnx" ) . await {
315- Ok ( p) => vec ! [ p] ,
313+ match download_onnx ( api) . await {
314+ Ok ( p) => p,
316315 Err ( err) => {
317- tracing:: warn!( "Could not download `model.onnx`: {err}" ) ;
318- tracing:: info!( "Downloading `onnx/model.onnx`" ) ;
319- let p = api. get ( "onnx/model.onnx" ) . await ?;
320- vec ! [ p. parent( ) . unwrap( ) . to_path_buf( ) ]
316+ panic ! ( "failed to download `model.onnx` or `model.onnx_data`. Check the onnx file exists in the repository. {err}" ) ;
321317 }
322318 }
323319 } else {
324320 unreachable ! ( )
325321 } ;
322+
326323 Ok ( model_files)
327324}
328325
@@ -364,3 +361,34 @@ async fn download_safetensors(api: &ApiRepo) -> Result<Vec<PathBuf>, ApiError> {
364361
365362 Ok ( safetensors_files)
366363}
364+
365+ async fn download_onnx ( api : & ApiRepo ) -> Result < Vec < PathBuf > , ApiError > {
366+ let mut model_files: Vec < PathBuf > = Vec :: new ( ) ;
367+
368+ tracing:: info!( "Downloading `model.onnx`" ) ;
369+ match api. get ( "model.onnx" ) . await {
370+ Ok ( p) => model_files. push ( p) ,
371+ Err ( err) => {
372+ tracing:: warn!( "Could not download `model.onnx`: {err}" ) ;
373+ tracing:: info!( "Downloading `onnx/model.onnx`" ) ;
374+ let p = api. get ( "onnx/model.onnx" ) . await ?;
375+ model_files. push ( p. parent ( ) . unwrap ( ) . to_path_buf ( ) )
376+ }
377+ } ;
378+
379+ tracing:: info!( "Downloading `model.onnx_data`" ) ;
380+ match api. get ( "model.onnx_data" ) . await {
381+ Ok ( p) => model_files. push ( p) ,
382+ Err ( err) => {
383+ tracing:: warn!( "Could not download `model.onnx_data`: {err}" ) ;
384+ tracing:: info!( "Downloading `onnx/model.onnx_data`" ) ;
385+
386+ match api. get ( "onnx/model.onnx_data" ) . await {
387+ Ok ( p) => model_files. push ( p. parent ( ) . unwrap ( ) . to_path_buf ( ) ) ,
388+ Err ( err) => tracing:: warn!( "Could not download `onnx/model.onnx_data`: {err}" ) ,
389+ }
390+ }
391+ }
392+
393+ Ok ( model_files)
394+ }
0 commit comments