From ca077a34039a9e7bfe0de036802772d673b4b4e7 Mon Sep 17 00:00:00 2001 From: Meng Zhang Date: Thu, 1 Jun 2023 00:26:21 -0700 Subject: [PATCH] feat: ensure model exist before serving (#180) * chore: migrate completion to new metadata format * feat: ensure model exist before serving --- crates/tabby/src/download/mod.rs | 2 +- crates/tabby/src/serve/mod.rs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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))