From 7b7852e46e83aa0768657b4c2b6e1c64b5f22b06 Mon Sep 17 00:00:00 2001 From: Apher Date: Wed, 8 Jul 2026 00:01:18 +0000 Subject: [PATCH] Load NLP transformer from models/transformers folder to prevent big docker image --- .gitignore | 1 + src/config/index.js | 3 ++- src/server.js | 10 ++++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 2d7ec5c..cab743e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .env node_modules/ +src/models/transformers/* \ No newline at end of file diff --git a/src/config/index.js b/src/config/index.js index 6cb9c03..1d1eb78 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -2,5 +2,6 @@ module.exports = { FORCE_DB_SYNC: process.env.FORCE_DB_SYNC, NODE_ENV: process.env.NODE_ENV, PORT: process.env.PORT, - DEVICE_ID: process.env.DEVICE_ID + DEVICE_ID: process.env.DEVICE_ID, + NLP_TRANSFORMER: process.env.NLP_TRANSFORMER }; diff --git a/src/server.js b/src/server.js index d954449..fa11f5a 100644 --- a/src/server.js +++ b/src/server.js @@ -3,7 +3,10 @@ if (process.env.NODE_ENV !== "production") { require("dotenv").config(); } -const {pipeline} = require("@xenova/transformers"); +const {env, pipeline} = require("@xenova/transformers"); +const path = require("path"); +env.allowRemoteModels = false; +env.localModelPath = path.resolve(__dirname, "./models/transformers").replace(/\\/g, "/"); const models = require("./models"); const db = models.db; @@ -65,7 +68,10 @@ function cosineSimilarity(a, b) { } async function initModel() { - extractor = await pipeline("feature-extraction", "Xenova/all-MiniLM-L6-v2"); + extractor = await pipeline("feature-extraction", `${config.NLP_TRANSFORMER}`, { + dtype: 'fp32', + quantized: false + }); console.log("MiniLM model loaded"); }