ruvector 0.2.27 → 0.2.28
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"onnx-embedder.d.ts","sourceRoot":"","sources":["../../src/core/onnx-embedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,kBAAkB,EAAE,WAAW,GAAG,SAAS,CAAC;CACjD;AAuBD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAMD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAsBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAOzC;
|
|
1
|
+
{"version":3,"file":"onnx-embedder.d.ts","sourceRoot":"","sources":["../../src/core/onnx-embedder.ts"],"names":[],"mappings":"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"}
|
|
@@ -127,13 +127,17 @@ function isOnnxAvailable() {
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
|
-
* Check
|
|
130
|
+
* Check whether the bundled parallel worker pool can be loaded — i.e. the
|
|
131
|
+
* `onnx/bundled-parallel.mjs` file ships in the package. This reflects the
|
|
132
|
+
* *bundled* pool (the only parallel implementation), NOT the unpublished
|
|
133
|
+
* external `ruvector-onnx-embeddings-wasm/parallel` package, which was rejected
|
|
134
|
+
* in ADR-194. See https://github.com/ruvnet/RuVector/issues/531.
|
|
131
135
|
*/
|
|
132
|
-
|
|
136
|
+
function detectParallelAvailable() {
|
|
133
137
|
try {
|
|
134
|
-
|
|
135
|
-
parallelAvailable =
|
|
136
|
-
return
|
|
138
|
+
const poolPath = path.join(__dirname, 'onnx', 'bundled-parallel.mjs');
|
|
139
|
+
parallelAvailable = fs.existsSync(poolPath);
|
|
140
|
+
return parallelAvailable;
|
|
137
141
|
}
|
|
138
142
|
catch {
|
|
139
143
|
parallelAvailable = false;
|
|
@@ -154,37 +158,27 @@ function detectSimd() {
|
|
|
154
158
|
return false;
|
|
155
159
|
}
|
|
156
160
|
/**
|
|
157
|
-
*
|
|
161
|
+
* Initialize the bundled, zero-dependency worker pool for batch throughput.
|
|
162
|
+
*
|
|
163
|
+
* Opt-in only (`enableParallel === true`) so the default/'auto' path does not
|
|
164
|
+
* silently spawn worker threads for existing callers. Output vectors are
|
|
165
|
+
* bit-identical to the single-thread path (issue #523).
|
|
166
|
+
*
|
|
167
|
+
* The previously-referenced external package
|
|
168
|
+
* `ruvector-onnx-embeddings-wasm/parallel` was never published and was rejected
|
|
169
|
+
* in ADR-194; the bundled pool (`onnx/bundled-parallel.mjs`) is the only
|
|
170
|
+
* parallel implementation. See https://github.com/ruvnet/RuVector/issues/531.
|
|
158
171
|
*/
|
|
159
172
|
async function tryInitParallel(config) {
|
|
160
|
-
// Skip
|
|
161
|
-
if (config.enableParallel === false)
|
|
162
|
-
return false;
|
|
163
|
-
// 1) Optional external package (back-compat). Absent by default.
|
|
164
|
-
try {
|
|
165
|
-
const parallelModule = await dynamicImport('ruvector-onnx-embeddings-wasm/parallel');
|
|
166
|
-
const { ParallelEmbedder } = parallelModule;
|
|
167
|
-
parallelEmbedder = new ParallelEmbedder({
|
|
168
|
-
numWorkers: config.numWorkers,
|
|
169
|
-
});
|
|
170
|
-
await parallelEmbedder.init(config.modelId || DEFAULT_MODEL);
|
|
171
|
-
parallelThreshold = config.parallelThreshold || 4;
|
|
172
|
-
parallelEnabled = true;
|
|
173
|
-
parallelAvailable = true;
|
|
174
|
-
console.error(`Parallel embedder ready (external): ${parallelEmbedder.numWorkers} workers, SIMD: ${simdAvailable}`);
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
catch {
|
|
178
|
-
// External package not installed — fall through to the bundled pool.
|
|
179
|
-
}
|
|
180
|
-
// 2) Bundled, zero-dependency worker pool over the already-loaded model bytes.
|
|
181
|
-
// Opt-in only (enableParallel === true) so the default/'auto' path does not
|
|
182
|
-
// silently spawn worker threads for existing callers. Vectors are identical
|
|
183
|
-
// to the single-thread path (issue #523).
|
|
173
|
+
// Skip unless parallelism is explicitly requested (covers false and 'auto').
|
|
184
174
|
if (config.enableParallel !== true) {
|
|
185
175
|
parallelAvailable = false;
|
|
186
176
|
return false;
|
|
187
177
|
}
|
|
178
|
+
if (!detectParallelAvailable()) {
|
|
179
|
+
console.error('Parallel embedder not available: bundled worker pool (onnx/bundled-parallel.mjs) missing');
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
188
182
|
try {
|
|
189
183
|
if (!loadedModelBytes || !loadedTokenizerJson) {
|
|
190
184
|
throw new Error('model bytes unavailable for bundled pool');
|
package/package.json
CHANGED