diff --git a/extensions/inference-nitro-extension/bin/version.txt b/extensions/inference-nitro-extension/bin/version.txt index 7db267292f..a2e1aa9d93 100644 --- a/extensions/inference-nitro-extension/bin/version.txt +++ b/extensions/inference-nitro-extension/bin/version.txt @@ -1 +1 @@ -0.1.26 +0.1.27 diff --git a/extensions/inference-nitro-extension/src/module.ts b/extensions/inference-nitro-extension/src/module.ts index 4bfc63af76..1c4b23fde9 100644 --- a/extensions/inference-nitro-extension/src/module.ts +++ b/extensions/inference-nitro-extension/src/module.ts @@ -15,6 +15,7 @@ const NITRO_HTTP_SERVER_URL = `http://${LOCAL_HOST}:${PORT}`; const NITRO_HTTP_LOAD_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/loadmodel`; const NITRO_HTTP_UNLOAD_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/unloadModel`; const NITRO_HTTP_VALIDATE_MODEL_URL = `${NITRO_HTTP_SERVER_URL}/inferences/llamacpp/modelstatus`; +const NITRO_HTTP_KILL_URL = `${NITRO_HTTP_SERVER_URL}/processmanager/destroy`; // The subprocess instance for Nitro let subprocess = null; @@ -187,13 +188,15 @@ async function validateModelStatus(): Promise { * @returns A Promise that resolves when the subprocess is terminated successfully, or rejects with an error message if the subprocess fails to terminate. */ function killSubprocess(): Promise { - if (subprocess) { - subprocess.kill(); + fetch(NITRO_HTTP_KILL_URL, { + method: "DELETE", + }).catch((err) => { + console.error(err); + subprocess?.kill(); + kill(PORT, "tcp").then(console.log).catch(console.log); subprocess = null; - console.debug("Subprocess terminated."); - } else { - return kill(PORT, "tcp").then(console.log).catch(console.log); - } + }); + return } /** @@ -207,9 +210,6 @@ async function checkAndUnloadNitro() { // Attempt to unload model return fetch(NITRO_HTTP_UNLOAD_MODEL_URL, { method: "GET", - headers: { - "Content-Type": "application/json", - }, }).catch((err) => { console.error(err); // Fallback to kill the port