@carlonicora/nestjs-neo4jsonapi 1.80.0 → 1.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/base.config.d.ts.map +1 -1
- package/dist/config/base.config.js +2 -0
- package/dist/config/base.config.js.map +1 -1
- package/dist/config/interfaces/config.ai.interface.d.ts +14 -0
- package/dist/config/interfaces/config.ai.interface.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/llm/services/audio/ffmpeg-transcode.d.ts +6 -0
- package/dist/core/llm/services/audio/ffmpeg-transcode.d.ts.map +1 -1
- package/dist/core/llm/services/audio/ffmpeg-transcode.js +4 -5
- package/dist/core/llm/services/audio/ffmpeg-transcode.js.map +1 -1
- package/dist/core/llm/services/audio.llm.service.d.ts.map +1 -1
- package/dist/core/llm/services/audio.llm.service.js +42 -17
- package/dist/core/llm/services/audio.llm.service.js.map +1 -1
- package/dist/core/model-manager/index.d.ts +8 -0
- package/dist/core/model-manager/index.d.ts.map +1 -0
- package/dist/core/model-manager/index.js +26 -0
- package/dist/core/model-manager/index.js.map +1 -0
- package/dist/core/model-manager/model-loader.d.ts +22 -0
- package/dist/core/model-manager/model-loader.d.ts.map +1 -0
- package/dist/core/model-manager/model-loader.js +213 -0
- package/dist/core/model-manager/model-loader.js.map +1 -0
- package/dist/core/model-manager/model-manager.config.d.ts +81 -0
- package/dist/core/model-manager/model-manager.config.d.ts.map +1 -0
- package/dist/core/model-manager/model-manager.config.js +8 -0
- package/dist/core/model-manager/model-manager.config.js.map +1 -0
- package/dist/core/model-manager/model-manager.module.d.ts +12 -0
- package/dist/core/model-manager/model-manager.module.d.ts.map +1 -0
- package/dist/core/model-manager/model-manager.module.js +31 -0
- package/dist/core/model-manager/model-manager.module.js.map +1 -0
- package/dist/core/model-manager/model-manager.service.d.ts +65 -0
- package/dist/core/model-manager/model-manager.service.d.ts.map +1 -0
- package/dist/core/model-manager/model-manager.service.js +428 -0
- package/dist/core/model-manager/model-manager.service.js.map +1 -0
- package/dist/core/onnx-runtime/index.d.ts +5 -0
- package/dist/core/onnx-runtime/index.d.ts.map +1 -0
- package/dist/core/onnx-runtime/index.js +10 -0
- package/dist/core/onnx-runtime/index.js.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.config.d.ts +72 -0
- package/dist/core/onnx-runtime/onnx-runtime.config.d.ts.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.config.js +12 -0
- package/dist/core/onnx-runtime/onnx-runtime.config.js.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.constants.d.ts +5 -0
- package/dist/core/onnx-runtime/onnx-runtime.constants.d.ts.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.constants.js +8 -0
- package/dist/core/onnx-runtime/onnx-runtime.constants.js.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.module.d.ts +67 -0
- package/dist/core/onnx-runtime/onnx-runtime.module.d.ts.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.module.js +103 -0
- package/dist/core/onnx-runtime/onnx-runtime.module.js.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.service.d.ts +58 -0
- package/dist/core/onnx-runtime/onnx-runtime.service.d.ts.map +1 -0
- package/dist/core/onnx-runtime/onnx-runtime.service.js +149 -0
- package/dist/core/onnx-runtime/onnx-runtime.service.js.map +1 -0
- package/package.json +6 -1
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model Manager Service
|
|
4
|
+
*
|
|
5
|
+
* Centralized service for managing all ML models:
|
|
6
|
+
* - Loads models.config.yaml
|
|
7
|
+
* - Downloads models on startup (runtime)
|
|
8
|
+
* - Verifies SHA256 hashes
|
|
9
|
+
* - Checks version compatibility
|
|
10
|
+
* - Caches ONNX sessions and Transformers models
|
|
11
|
+
* - Provides unified interface for model access
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
30
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
31
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
32
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
33
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
34
|
+
};
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
53
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
54
|
+
};
|
|
55
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
56
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
57
|
+
};
|
|
58
|
+
var ModelManagerService_1;
|
|
59
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
|
+
exports.ModelManagerService = void 0;
|
|
61
|
+
const common_1 = require("@nestjs/common");
|
|
62
|
+
const conditional_service_decorator_1 = require("../../common/decorators/conditional-service.decorator");
|
|
63
|
+
const fs = __importStar(require("fs"));
|
|
64
|
+
const path = __importStar(require("path"));
|
|
65
|
+
const crypto = __importStar(require("crypto"));
|
|
66
|
+
const ort = __importStar(require("onnxruntime-node"));
|
|
67
|
+
const model_loader_1 = require("./model-loader");
|
|
68
|
+
let ModelManagerService = ModelManagerService_1 = class ModelManagerService {
|
|
69
|
+
constructor(appModeConfig) {
|
|
70
|
+
this.appModeConfig = appModeConfig;
|
|
71
|
+
this.logger = new common_1.Logger(ModelManagerService_1.name);
|
|
72
|
+
// ONNX session cache
|
|
73
|
+
this.onnxSessions = new Map();
|
|
74
|
+
// Transformers model cache
|
|
75
|
+
this.transformersModels = new Map();
|
|
76
|
+
// Load status tracking
|
|
77
|
+
this.loadStatus = [];
|
|
78
|
+
this.config = (0, model_loader_1.getModelLoader)().getConfig();
|
|
79
|
+
this.cacheDir = process.env.MODELS_CACHE_DIR || path.join(process.cwd(), ".cache", "models");
|
|
80
|
+
// HuggingFace host only; each model's repo comes from its `modelId` so the
|
|
81
|
+
// shared lib serves multiple apps (the download URL is built per-model below).
|
|
82
|
+
this.baseUrl = process.env.MODEL_BASE_URL || "https://huggingface.co";
|
|
83
|
+
this.verifyHash = process.env.MODEL_VERIFY_HASH !== "false";
|
|
84
|
+
this.strictHash = process.env.MODEL_STRICT_HASH !== "false";
|
|
85
|
+
this.autoUpdate = process.env.MODEL_AUTO_UPDATE !== "false";
|
|
86
|
+
// Initialize readiness promise
|
|
87
|
+
this.readyPromise = new Promise((resolve) => {
|
|
88
|
+
this.readyResolver = resolve;
|
|
89
|
+
});
|
|
90
|
+
this.logger.log(`ModelManager initialized`);
|
|
91
|
+
this.logger.log(`Cache directory: ${this.cacheDir}`);
|
|
92
|
+
this.logger.log(`Base URL: ${this.baseUrl}`);
|
|
93
|
+
this.logger.log(`Hash verification: ${this.verifyHash}, Strict: ${this.strictHash}`);
|
|
94
|
+
this.logger.log(`Auto-update: ${this.autoUpdate}`);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if running in worker mode.
|
|
98
|
+
* Defaults to worker mode if no app mode config (tests, standalone scripts).
|
|
99
|
+
*/
|
|
100
|
+
isWorkerMode() {
|
|
101
|
+
if (!this.appModeConfig)
|
|
102
|
+
return true;
|
|
103
|
+
return this.appModeConfig.mode === conditional_service_decorator_1.AppMode.WORKER;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Determine if a model should be loaded based on current app mode.
|
|
107
|
+
* - Worker mode: load all models
|
|
108
|
+
* - API mode: only load models marked with loadInApi: true
|
|
109
|
+
*/
|
|
110
|
+
shouldLoadModel(model) {
|
|
111
|
+
if (this.isWorkerMode())
|
|
112
|
+
return true;
|
|
113
|
+
return model.loadInApi === true;
|
|
114
|
+
}
|
|
115
|
+
async onApplicationBootstrap() {
|
|
116
|
+
const mode = this.isWorkerMode() ? "Worker" : "API";
|
|
117
|
+
this.logger.log(`${mode} mode - starting model loading process...`);
|
|
118
|
+
const startTime = Date.now();
|
|
119
|
+
// Create cache directory
|
|
120
|
+
this.ensureCacheDir();
|
|
121
|
+
// Combine all models and sort by priority
|
|
122
|
+
const allModels = [
|
|
123
|
+
...this.config.registry.onnx.map((m) => ({ config: m, framework: "onnx" })),
|
|
124
|
+
...this.config.registry.transformers.map((m) => ({ config: m, framework: "transformers" })),
|
|
125
|
+
].sort((a, b) => a.config.priority - b.config.priority);
|
|
126
|
+
// Filter models based on mode
|
|
127
|
+
const modelsToLoad = allModels.filter(({ config }) => this.shouldLoadModel(config));
|
|
128
|
+
const skippedCount = allModels.length - modelsToLoad.length;
|
|
129
|
+
if (skippedCount > 0) {
|
|
130
|
+
this.logger.log(`${mode} mode: Loading ${modelsToLoad.length} models, skipping ${skippedCount} worker-only models`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
this.logger.log(`Loading ${modelsToLoad.length} models...`);
|
|
134
|
+
}
|
|
135
|
+
// Load each model
|
|
136
|
+
for (const { config, framework } of modelsToLoad) {
|
|
137
|
+
await this.loadModel(config, framework);
|
|
138
|
+
// Small delay between models to reduce memory pressure
|
|
139
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
140
|
+
}
|
|
141
|
+
const totalTime = Date.now() - startTime;
|
|
142
|
+
this.logger.log(`All models loaded in ${totalTime}ms`);
|
|
143
|
+
// Log load status summary
|
|
144
|
+
const loaded = this.loadStatus.filter((s) => s.status === "loaded").length;
|
|
145
|
+
const failed = this.loadStatus.filter((s) => s.status === "failed").length;
|
|
146
|
+
this.logger.log(`Load summary: ${loaded} loaded, ${failed} failed`);
|
|
147
|
+
// Signal that models are ready
|
|
148
|
+
this.readyResolver();
|
|
149
|
+
}
|
|
150
|
+
async loadModel(model, framework) {
|
|
151
|
+
const status = {
|
|
152
|
+
name: model.name,
|
|
153
|
+
framework: framework,
|
|
154
|
+
status: "loading",
|
|
155
|
+
};
|
|
156
|
+
this.loadStatus.push(status);
|
|
157
|
+
const startTime = Date.now();
|
|
158
|
+
try {
|
|
159
|
+
if (framework === "onnx") {
|
|
160
|
+
await this.loadOnnxModel(model);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
await this.loadTransformersModel(model);
|
|
164
|
+
}
|
|
165
|
+
status.status = "loaded";
|
|
166
|
+
status.loadTimeMs = Date.now() - startTime;
|
|
167
|
+
this.logger.log(`[${model.name}] Model loaded in ${status.loadTimeMs}ms`);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
171
|
+
status.status = "failed";
|
|
172
|
+
status.error = message;
|
|
173
|
+
this.logger.error(`[${model.name}] Failed to load: ${message}`);
|
|
174
|
+
if (!model.optional && this.strictHash && message.includes("hash verification")) {
|
|
175
|
+
throw new Error(`Required model ${model.name} failed hash verification`);
|
|
176
|
+
}
|
|
177
|
+
if (!model.optional && !message.includes("optional")) {
|
|
178
|
+
throw new Error(`Required model ${model.name} failed to load`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
async loadOnnxModel(config) {
|
|
183
|
+
const cachePath = path.join(this.cacheDir, "onnx", config.name);
|
|
184
|
+
const filePath = path.join(cachePath, path.basename(config.path));
|
|
185
|
+
// Ensure cache directory exists
|
|
186
|
+
if (!fs.existsSync(cachePath)) {
|
|
187
|
+
fs.mkdirSync(cachePath, { recursive: true });
|
|
188
|
+
}
|
|
189
|
+
// Download if missing or if version mismatch
|
|
190
|
+
const needsDownload = await this.needsDownload(filePath, config);
|
|
191
|
+
if (needsDownload) {
|
|
192
|
+
const downloadUrl = `${this.baseUrl}/${config.modelId}/resolve/main/${config.path}`;
|
|
193
|
+
await this.downloadFile(downloadUrl, filePath, config.name);
|
|
194
|
+
}
|
|
195
|
+
// Verify hash
|
|
196
|
+
if (this.verifyHash) {
|
|
197
|
+
const isValid = this.verifyFileHash(filePath, config.hash);
|
|
198
|
+
if (!isValid) {
|
|
199
|
+
if (this.strictHash) {
|
|
200
|
+
throw new Error(`Hash verification failed for ${config.name}`);
|
|
201
|
+
}
|
|
202
|
+
this.logger.warn(`[${config.name}] Hash verification failed (non-strict mode, continuing)`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Download additional files (e.g., .onnx.data for external data models)
|
|
206
|
+
if (config.additionalFiles) {
|
|
207
|
+
for (const additionalFile of config.additionalFiles) {
|
|
208
|
+
const additionalFilePath = path.join(cachePath, path.basename(additionalFile.path));
|
|
209
|
+
const needsAdditionalDownload = !fs.existsSync(additionalFilePath);
|
|
210
|
+
if (needsAdditionalDownload) {
|
|
211
|
+
const additionalUrl = `${this.baseUrl}/${config.modelId}/resolve/main/${additionalFile.path}`;
|
|
212
|
+
await this.downloadFile(additionalUrl, additionalFilePath, config.name, path.basename(additionalFile.path));
|
|
213
|
+
}
|
|
214
|
+
// Verify hash for additional file
|
|
215
|
+
if (this.verifyHash) {
|
|
216
|
+
const isValid = this.verifyFileHash(additionalFilePath, additionalFile.hash);
|
|
217
|
+
if (!isValid) {
|
|
218
|
+
if (this.strictHash) {
|
|
219
|
+
throw new Error(`Hash verification failed for ${config.name}/${path.basename(additionalFile.path)}`);
|
|
220
|
+
}
|
|
221
|
+
this.logger.warn(`[${config.name}/${path.basename(additionalFile.path)}] Hash verification failed (non-strict mode, continuing)`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Load ONNX session
|
|
227
|
+
const sessionOptions = {
|
|
228
|
+
executionProviders: ["cpu"],
|
|
229
|
+
graphOptimizationLevel: "all",
|
|
230
|
+
intraOpNumThreads: parseInt(process.env.ONNX_INTRA_OP_NUM_THREADS || "2"),
|
|
231
|
+
interOpNumThreads: parseInt(process.env.ONNX_INTER_OP_NUM_THREADS || "1"),
|
|
232
|
+
enableCpuMemArena: true,
|
|
233
|
+
enableMemPattern: true,
|
|
234
|
+
};
|
|
235
|
+
const session = await ort.InferenceSession.create(filePath, sessionOptions);
|
|
236
|
+
this.onnxSessions.set(config.name, session);
|
|
237
|
+
}
|
|
238
|
+
async loadTransformersModel(config) {
|
|
239
|
+
const cachePath = path.join(this.cacheDir, "transformers", config.name);
|
|
240
|
+
const modelCache = new Map();
|
|
241
|
+
// Ensure cache directory exists
|
|
242
|
+
if (!fs.existsSync(cachePath)) {
|
|
243
|
+
fs.mkdirSync(cachePath, { recursive: true });
|
|
244
|
+
}
|
|
245
|
+
// Load each component
|
|
246
|
+
for (const component of config.components) {
|
|
247
|
+
const componentPath = path.join(cachePath, component.file);
|
|
248
|
+
// Download if missing or if version mismatch
|
|
249
|
+
const componentUrl = `${this.baseUrl}/${config.modelId}/resolve/main/${config.path}/${component.file}`;
|
|
250
|
+
const needsDownload = await this.needsDownload(componentPath, config, component);
|
|
251
|
+
if (needsDownload) {
|
|
252
|
+
await this.downloadFile(componentUrl, componentPath, config.name, component.name);
|
|
253
|
+
}
|
|
254
|
+
// Verify hash
|
|
255
|
+
if (this.verifyHash) {
|
|
256
|
+
const isValid = this.verifyFileHash(componentPath, component.hash);
|
|
257
|
+
if (!isValid) {
|
|
258
|
+
if (this.strictHash) {
|
|
259
|
+
throw new Error(`Hash verification failed for ${config.name}/${component.name}`);
|
|
260
|
+
}
|
|
261
|
+
this.logger.warn(`[${config.name}/${component.name}] Hash verification failed (non-strict mode, continuing)`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// For Transformers.js models, we don't load them here
|
|
265
|
+
// They're loaded lazily by the services that use them
|
|
266
|
+
// We just verify they're downloaded and cached
|
|
267
|
+
modelCache.set(component.name, { path: componentPath });
|
|
268
|
+
}
|
|
269
|
+
this.transformersModels.set(config.name, modelCache);
|
|
270
|
+
}
|
|
271
|
+
async needsDownload(filePath, config, _component) {
|
|
272
|
+
// If file doesn't exist, need download
|
|
273
|
+
if (!fs.existsSync(filePath)) {
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
// Check version compatibility if auto-update enabled
|
|
277
|
+
if (!this.autoUpdate) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
// Check version metadata
|
|
281
|
+
const metadataPath = filePath + ".metadata";
|
|
282
|
+
if (fs.existsSync(metadataPath)) {
|
|
283
|
+
try {
|
|
284
|
+
const metadata = JSON.parse(fs.readFileSync(metadataPath, "utf-8"));
|
|
285
|
+
if (metadata.version === config.version) {
|
|
286
|
+
return false; // Version matches, no download needed
|
|
287
|
+
}
|
|
288
|
+
this.logger.log(`[${config.name}] Version mismatch: cached=${metadata.version}, config=${config.version}`);
|
|
289
|
+
}
|
|
290
|
+
catch {
|
|
291
|
+
// Invalid metadata, need download
|
|
292
|
+
return true;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return true;
|
|
296
|
+
}
|
|
297
|
+
async downloadFile(url, filePath, modelName, componentName) {
|
|
298
|
+
const label = componentName ? `${modelName}/${componentName}` : modelName;
|
|
299
|
+
this.logger.log(`[${label}] Downloading from ${url}...`);
|
|
300
|
+
const startTime = Date.now();
|
|
301
|
+
try {
|
|
302
|
+
const response = await fetch(url);
|
|
303
|
+
if (!response.ok) {
|
|
304
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
305
|
+
}
|
|
306
|
+
const contentLength = response.headers.get("content-length");
|
|
307
|
+
const totalBytes = contentLength ? parseInt(contentLength, 10) : 0;
|
|
308
|
+
// Ensure directory exists
|
|
309
|
+
const dir = path.dirname(filePath);
|
|
310
|
+
if (!fs.existsSync(dir)) {
|
|
311
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
312
|
+
}
|
|
313
|
+
// Stream the response to file
|
|
314
|
+
const fileStream = fs.createWriteStream(filePath);
|
|
315
|
+
const reader = response.body?.getReader();
|
|
316
|
+
if (!reader) {
|
|
317
|
+
throw new Error("Failed to get response reader");
|
|
318
|
+
}
|
|
319
|
+
let downloadedBytes = 0;
|
|
320
|
+
let lastLoggedPercent = 0;
|
|
321
|
+
while (true) {
|
|
322
|
+
const { done, value } = await reader.read();
|
|
323
|
+
if (done)
|
|
324
|
+
break;
|
|
325
|
+
fileStream.write(Buffer.from(value));
|
|
326
|
+
downloadedBytes += value.length;
|
|
327
|
+
// Log progress every 10%
|
|
328
|
+
if (totalBytes > 0) {
|
|
329
|
+
const percent = Math.floor((downloadedBytes / totalBytes) * 100);
|
|
330
|
+
if (percent >= lastLoggedPercent + 10) {
|
|
331
|
+
lastLoggedPercent = percent;
|
|
332
|
+
const mbDownloaded = (downloadedBytes / 1024 / 1024).toFixed(1);
|
|
333
|
+
const mbTotal = (totalBytes / 1024 / 1024).toFixed(1);
|
|
334
|
+
this.logger.log(`[${label}] Progress: ${percent}% (${mbDownloaded}/${mbTotal} MB)`);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
fileStream.end();
|
|
339
|
+
// Wait for file to be fully written
|
|
340
|
+
await new Promise((resolve, reject) => {
|
|
341
|
+
fileStream.on("finish", resolve);
|
|
342
|
+
fileStream.on("error", reject);
|
|
343
|
+
});
|
|
344
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(1);
|
|
345
|
+
const fileSizeMB = (downloadedBytes / 1024 / 1024).toFixed(1);
|
|
346
|
+
this.logger.log(`[${label}] Downloaded ${fileSizeMB} MB in ${duration}s`);
|
|
347
|
+
// Save metadata
|
|
348
|
+
const metadataPath = filePath + ".metadata";
|
|
349
|
+
fs.writeFileSync(metadataPath, JSON.stringify({
|
|
350
|
+
version: "1.0.0",
|
|
351
|
+
downloadedAt: new Date().toISOString(),
|
|
352
|
+
}));
|
|
353
|
+
}
|
|
354
|
+
catch (error) {
|
|
355
|
+
// Clean up partial download
|
|
356
|
+
if (fs.existsSync(filePath)) {
|
|
357
|
+
fs.unlinkSync(filePath);
|
|
358
|
+
}
|
|
359
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
360
|
+
throw new Error(`Download failed: ${message}`);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
verifyFileHash(filePath, expectedHash) {
|
|
364
|
+
const actualHash = this.computeHash(filePath);
|
|
365
|
+
const isValid = actualHash === expectedHash;
|
|
366
|
+
if (!isValid) {
|
|
367
|
+
this.logger.error(`Hash mismatch for ${filePath}`);
|
|
368
|
+
this.logger.error(` Expected: ${expectedHash}`);
|
|
369
|
+
this.logger.error(` Actual: ${actualHash}`);
|
|
370
|
+
}
|
|
371
|
+
return isValid;
|
|
372
|
+
}
|
|
373
|
+
computeHash(filePath) {
|
|
374
|
+
const fileBuffer = fs.readFileSync(filePath);
|
|
375
|
+
const hashSum = crypto.createHash("sha256");
|
|
376
|
+
hashSum.update(fileBuffer);
|
|
377
|
+
return "sha256:" + hashSum.digest("hex");
|
|
378
|
+
}
|
|
379
|
+
ensureCacheDir() {
|
|
380
|
+
if (!fs.existsSync(this.cacheDir)) {
|
|
381
|
+
fs.mkdirSync(this.cacheDir, { recursive: true });
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// Public API for accessing models
|
|
385
|
+
getOnnxSession(name) {
|
|
386
|
+
return this.onnxSessions.get(name) ?? null;
|
|
387
|
+
}
|
|
388
|
+
getTransformersModel(name, component) {
|
|
389
|
+
const modelCache = this.transformersModels.get(name);
|
|
390
|
+
if (!modelCache) {
|
|
391
|
+
return null;
|
|
392
|
+
}
|
|
393
|
+
if (component) {
|
|
394
|
+
return modelCache.get(component) ?? null;
|
|
395
|
+
}
|
|
396
|
+
return modelCache;
|
|
397
|
+
}
|
|
398
|
+
isModelLoaded(name, framework) {
|
|
399
|
+
if (framework === "onnx") {
|
|
400
|
+
return this.onnxSessions.has(name);
|
|
401
|
+
}
|
|
402
|
+
return this.transformersModels.has(name);
|
|
403
|
+
}
|
|
404
|
+
getLoadedModels() {
|
|
405
|
+
return {
|
|
406
|
+
onnx: Array.from(this.onnxSessions.keys()),
|
|
407
|
+
transformers: Array.from(this.transformersModels.keys()),
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
getLoadStatus() {
|
|
411
|
+
return [...this.loadStatus];
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Wait for all models to be loaded.
|
|
415
|
+
* Services that depend on models should call this before accessing them.
|
|
416
|
+
*/
|
|
417
|
+
async waitForReady() {
|
|
418
|
+
return this.readyPromise;
|
|
419
|
+
}
|
|
420
|
+
};
|
|
421
|
+
exports.ModelManagerService = ModelManagerService;
|
|
422
|
+
exports.ModelManagerService = ModelManagerService = ModelManagerService_1 = __decorate([
|
|
423
|
+
(0, common_1.Injectable)(),
|
|
424
|
+
__param(0, (0, common_1.Optional)()),
|
|
425
|
+
__param(0, (0, common_1.Inject)(conditional_service_decorator_1.APP_MODE_TOKEN)),
|
|
426
|
+
__metadata("design:paramtypes", [Object])
|
|
427
|
+
], ModelManagerService);
|
|
428
|
+
//# sourceMappingURL=model-manager.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-manager.service.js","sourceRoot":"","sources":["../../../src/core/model-manager/model-manager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { OnnxRuntimeModule } from "./onnx-runtime.module";
|
|
2
|
+
export { OnnxRuntimeService } from "./onnx-runtime.service";
|
|
3
|
+
export type { OnnxRuntimeModuleOptions } from "./onnx-runtime.config";
|
|
4
|
+
export { ONNX_RUNTIME_OPTIONS } from "./onnx-runtime.constants";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/onnx-runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAK5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ONNX_RUNTIME_OPTIONS = exports.OnnxRuntimeService = exports.OnnxRuntimeModule = void 0;
|
|
4
|
+
var onnx_runtime_module_1 = require("./onnx-runtime.module");
|
|
5
|
+
Object.defineProperty(exports, "OnnxRuntimeModule", { enumerable: true, get: function () { return onnx_runtime_module_1.OnnxRuntimeModule; } });
|
|
6
|
+
var onnx_runtime_service_1 = require("./onnx-runtime.service");
|
|
7
|
+
Object.defineProperty(exports, "OnnxRuntimeService", { enumerable: true, get: function () { return onnx_runtime_service_1.OnnxRuntimeService; } });
|
|
8
|
+
var onnx_runtime_constants_1 = require("./onnx-runtime.constants");
|
|
9
|
+
Object.defineProperty(exports, "ONNX_RUNTIME_OPTIONS", { enumerable: true, get: function () { return onnx_runtime_constants_1.ONNX_RUNTIME_OPTIONS; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/onnx-runtime/index.ts"],"names":[],"mappings":";;;AAAA,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAM3B,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for a single ONNX model to be loaded.
|
|
3
|
+
*/
|
|
4
|
+
export interface OnnxModelConfig {
|
|
5
|
+
/**
|
|
6
|
+
* Unique identifier for the model (e.g., 'yolo-pose', 'arcface').
|
|
7
|
+
* Used to retrieve the session via OnnxRuntimeService.getSession(name).
|
|
8
|
+
*/
|
|
9
|
+
name: string;
|
|
10
|
+
/**
|
|
11
|
+
* Path to the ONNX model file, relative to process.cwd().
|
|
12
|
+
* Example: 'models/yolo11l-pose.onnx'
|
|
13
|
+
*/
|
|
14
|
+
path: string;
|
|
15
|
+
/**
|
|
16
|
+
* URL to download the model from if not present locally.
|
|
17
|
+
* Typically a Hugging Face URL like:
|
|
18
|
+
* 'https://huggingface.co/<user>/<repo>/resolve/main/<filename>'
|
|
19
|
+
*/
|
|
20
|
+
downloadUrl?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Load priority. Lower numbers load first.
|
|
23
|
+
* Use to load smaller models first for faster initial availability.
|
|
24
|
+
*/
|
|
25
|
+
priority: number;
|
|
26
|
+
/**
|
|
27
|
+
* If true, failure to load this model won't prevent app startup.
|
|
28
|
+
* The model will be unavailable but other services can still function.
|
|
29
|
+
*/
|
|
30
|
+
optional: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Configuration options for the OnnxRuntimeModule.
|
|
34
|
+
*
|
|
35
|
+
* Note: The 'models' array is now optional since ModelManagerService
|
|
36
|
+
* handles model loading from models.config.yaml. This parameter is kept
|
|
37
|
+
* for backward compatibility but is no longer used.
|
|
38
|
+
*/
|
|
39
|
+
export interface OnnxRuntimeModuleOptions {
|
|
40
|
+
/**
|
|
41
|
+
* List of models to load during application bootstrap.
|
|
42
|
+
* DEPRECATED: ModelManagerService now handles this from models.config.yaml
|
|
43
|
+
* Kept for backward compatibility.
|
|
44
|
+
*/
|
|
45
|
+
models?: OnnxModelConfig[];
|
|
46
|
+
/**
|
|
47
|
+
* Number of threads for intra-operation parallelism.
|
|
48
|
+
* Controls parallelism within a single ONNX operation (e.g., matrix multiplication).
|
|
49
|
+
* Default: 2 (conservative to avoid contention with @huggingface/transformers)
|
|
50
|
+
*/
|
|
51
|
+
intraOpNumThreads?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Number of threads for inter-operation parallelism.
|
|
54
|
+
* Controls parallelism between independent operations in the graph.
|
|
55
|
+
* Default: 1 (sequential to avoid thread contention)
|
|
56
|
+
*/
|
|
57
|
+
interOpNumThreads?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Level of graph optimization to apply.
|
|
60
|
+
* - 'disabled': No optimizations
|
|
61
|
+
* - 'basic': Basic optimizations (constant folding)
|
|
62
|
+
* - 'extended': Extended optimizations (more aggressive)
|
|
63
|
+
* - 'all': All available optimizations
|
|
64
|
+
* Default: 'all'
|
|
65
|
+
*/
|
|
66
|
+
graphOptimizationLevel?: "disabled" | "basic" | "extended" | "all";
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Default options for OnnxRuntimeModule.
|
|
70
|
+
*/
|
|
71
|
+
export declare const DEFAULT_ONNX_RUNTIME_OPTIONS: Partial<OnnxRuntimeModuleOptions>;
|
|
72
|
+
//# sourceMappingURL=onnx-runtime.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-runtime.config.d.ts","sourceRoot":"","sources":["../../../src/core/onnx-runtime/onnx-runtime.config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAE3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,CAAC;CACpE;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,OAAO,CAAC,wBAAwB,CAI1E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ONNX_RUNTIME_OPTIONS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default options for OnnxRuntimeModule.
|
|
6
|
+
*/
|
|
7
|
+
exports.DEFAULT_ONNX_RUNTIME_OPTIONS = {
|
|
8
|
+
intraOpNumThreads: 2,
|
|
9
|
+
interOpNumThreads: 1,
|
|
10
|
+
graphOptimizationLevel: "all",
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=onnx-runtime.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-runtime.config.js","sourceRoot":"","sources":["../../../src/core/onnx-runtime/onnx-runtime.config.ts"],"names":[],"mappings":";;;AA4EA;;GAEG;AACU,QAAA,4BAA4B,GAAsC;IAC7E,iBAAiB,EAAE,CAAC;IACpB,iBAAiB,EAAE,CAAC;IACpB,sBAAsB,EAAE,KAAK;CAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-runtime.constants.d.ts","sourceRoot":"","sources":["../../../src/core/onnx-runtime/onnx-runtime.constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ONNX_RUNTIME_OPTIONS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Injection token for ONNX Runtime module options.
|
|
6
|
+
*/
|
|
7
|
+
exports.ONNX_RUNTIME_OPTIONS = Symbol("ONNX_RUNTIME_OPTIONS");
|
|
8
|
+
//# sourceMappingURL=onnx-runtime.constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onnx-runtime.constants.js","sourceRoot":"","sources":["../../../src/core/onnx-runtime/onnx-runtime.constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC"}
|