feat(looper): check engine and executorWorker paths exist before creating the backend

This commit is contained in:
Morgan Funtowicz 2024-10-17 13:13:34 +02:00
parent f20ec28891
commit 629153b44b
2 changed files with 32 additions and 0 deletions

View File

@ -1,9 +1,14 @@
use std::path::PathBuf;
use thiserror::Error;
use text_generation_router::server;
#[derive(Debug, Error)]
pub enum TensorRtLlmBackendError {
#[error("Provided engine folder {0} doesn't exist")]
EngineFolderDoesntExists(PathBuf),
#[error("Provided executorWorker binary path {0} doesn't exist")]
ExecutorWorkerNotFound(PathBuf),
#[error("TensorRT-LLM Runtime error: {0}")]
Runtime(String),
#[error("Tokenizer error: {0}")]

View File

@ -257,6 +257,33 @@ impl TensorRtLlmBackendV2 {
let engine_folder = engine_folder.as_ref();
let executor_worker_path = executor_worker_path.as_ref();
// Ensure the engine folder exists
if !engine_folder.exists() {
let err =
TensorRtLlmBackendError::EngineFolderDoesntExists(engine_folder.to_path_buf());
error!(
err,
engine_folder = engine_folder.display(),
executor_worker_path = executor_worker_path.display()
);
return Err(err);
}
// Ensure executor worker binary exists
if !executor_worker_path.exists() {
let err = TensorRtLlmBackendError::ExecutorWorkerNotFound(engine_folder.to_path_buf());
error!(
err,
engine_folder = engine_folder.display(),
executor_worker_path = executor_worker_path.display()
);
return Err(err);
}
let engine_folder = String::from(
engine_folder
.to_str()