diff --git a/crates/tabby/src/download/mod.rs b/crates/tabby/src/download/mod.rs index 59c9039..f3e48d6 100644 --- a/crates/tabby/src/download/mod.rs +++ b/crates/tabby/src/download/mod.rs @@ -57,7 +57,7 @@ impl metadata::Metadata { } } -async fn download_model(model_id: &str, prefer_local_file: bool) -> Result<()> { +pub async fn download_model(model_id: &str, prefer_local_file: bool) -> Result<()> { let mut metadata = metadata::Metadata::from(model_id).await?; metadata diff --git a/crates/tabby/src/serve/mod.rs b/crates/tabby/src/serve/mod.rs index e9b6a22..98402de 100644 --- a/crates/tabby/src/serve/mod.rs +++ b/crates/tabby/src/serve/mod.rs @@ -63,6 +63,10 @@ pub struct ServeArgs { pub async fn main(args: &ServeArgs) -> Result<()> { valid_args(args)?; + + // Ensure model exists. + crate::download::download_model(&args.model, true).await?; + let app = Router::new() .merge(SwaggerUi::new("/swagger-ui").url("/api-docs/openapi.json", ApiDoc::openapi())) .nest("/v1", api_router(args))