ruvector 0.1.82 → 0.1.84
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/bin/cli.js +105 -0
- package/dist/core/adaptive-embedder.d.ts +8 -0
- package/dist/core/adaptive-embedder.d.ts.map +1 -1
- package/dist/core/adaptive-embedder.js +334 -91
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -1
- package/dist/core/onnx-optimized.d.ts +109 -0
- package/dist/core/onnx-optimized.d.ts.map +1 -0
- package/dist/core/onnx-optimized.js +419 -0
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -2108,6 +2108,111 @@ embedCmd
|
|
|
2108
2108
|
}
|
|
2109
2109
|
});
|
|
2110
2110
|
|
|
2111
|
+
embedCmd
|
|
2112
|
+
.command('optimized')
|
|
2113
|
+
.description('Use optimized ONNX embedder with LRU caching')
|
|
2114
|
+
.argument('[text]', 'Text to embed (optional)')
|
|
2115
|
+
.option('--cache-size <n>', 'Embedding cache size', '512')
|
|
2116
|
+
.option('--stats', 'Show cache statistics')
|
|
2117
|
+
.option('--clear-cache', 'Clear all caches')
|
|
2118
|
+
.option('--benchmark', 'Run cache benchmark')
|
|
2119
|
+
.action(async (text, opts) => {
|
|
2120
|
+
try {
|
|
2121
|
+
const { performance } = require('perf_hooks');
|
|
2122
|
+
const { OptimizedOnnxEmbedder } = require('../dist/core/onnx-optimized.js');
|
|
2123
|
+
|
|
2124
|
+
const embedder = new OptimizedOnnxEmbedder({
|
|
2125
|
+
cacheSize: parseInt(opts.cacheSize) || 512,
|
|
2126
|
+
lazyInit: false,
|
|
2127
|
+
});
|
|
2128
|
+
|
|
2129
|
+
await embedder.init();
|
|
2130
|
+
|
|
2131
|
+
if (opts.clearCache) {
|
|
2132
|
+
embedder.clearCache();
|
|
2133
|
+
console.log(chalk.green('✓ Caches cleared'));
|
|
2134
|
+
return;
|
|
2135
|
+
}
|
|
2136
|
+
|
|
2137
|
+
if (opts.benchmark) {
|
|
2138
|
+
console.log(chalk.cyan('\n⚡ Optimized ONNX Cache Benchmark\n'));
|
|
2139
|
+
|
|
2140
|
+
const testTexts = [
|
|
2141
|
+
'Machine learning algorithms optimize model parameters',
|
|
2142
|
+
'Vector databases enable semantic search capabilities',
|
|
2143
|
+
'Neural networks learn hierarchical representations',
|
|
2144
|
+
'Code embeddings capture syntax and semantic patterns',
|
|
2145
|
+
'Transformer models use attention mechanisms',
|
|
2146
|
+
];
|
|
2147
|
+
|
|
2148
|
+
// Cold benchmark
|
|
2149
|
+
embedder.clearCache();
|
|
2150
|
+
const coldStart = performance.now();
|
|
2151
|
+
for (const t of testTexts) await embedder.embed(t);
|
|
2152
|
+
const coldTime = performance.now() - coldStart;
|
|
2153
|
+
|
|
2154
|
+
// Warm benchmark
|
|
2155
|
+
const warmStart = performance.now();
|
|
2156
|
+
for (let i = 0; i < 100; i++) {
|
|
2157
|
+
for (const t of testTexts) await embedder.embed(t);
|
|
2158
|
+
}
|
|
2159
|
+
const warmTime = performance.now() - warmStart;
|
|
2160
|
+
|
|
2161
|
+
const stats = embedder.getCacheStats();
|
|
2162
|
+
|
|
2163
|
+
console.log(chalk.yellow('Performance:'));
|
|
2164
|
+
console.log(chalk.dim(' Cold (5 unique texts):'), chalk.white(coldTime.toFixed(2) + 'ms'));
|
|
2165
|
+
console.log(chalk.dim(' Warm (500 cached):'), chalk.white(warmTime.toFixed(2) + 'ms'));
|
|
2166
|
+
console.log(chalk.dim(' Cache speedup:'), chalk.green((coldTime / warmTime * 100).toFixed(0) + 'x'));
|
|
2167
|
+
console.log();
|
|
2168
|
+
console.log(chalk.yellow('Cache Stats:'));
|
|
2169
|
+
console.log(chalk.dim(' Hit rate:'), chalk.white((stats.embedding.hitRate * 100).toFixed(1) + '%'));
|
|
2170
|
+
console.log(chalk.dim(' Cache size:'), chalk.white(stats.embedding.size));
|
|
2171
|
+
console.log(chalk.dim(' Total embeds:'), chalk.white(stats.totalEmbeds));
|
|
2172
|
+
console.log();
|
|
2173
|
+
return;
|
|
2174
|
+
}
|
|
2175
|
+
|
|
2176
|
+
if (opts.stats) {
|
|
2177
|
+
const stats = embedder.getCacheStats();
|
|
2178
|
+
console.log(chalk.cyan('\n📊 Optimized ONNX Embedder Stats\n'));
|
|
2179
|
+
console.log(chalk.white('Embedding Cache:'));
|
|
2180
|
+
console.log(chalk.dim(' Size:'), stats.embedding.size);
|
|
2181
|
+
console.log(chalk.dim(' Hits:'), stats.embedding.hits);
|
|
2182
|
+
console.log(chalk.dim(' Misses:'), stats.embedding.misses);
|
|
2183
|
+
console.log(chalk.dim(' Hit Rate:'), (stats.embedding.hitRate * 100).toFixed(1) + '%');
|
|
2184
|
+
console.log();
|
|
2185
|
+
console.log(chalk.white('Performance:'));
|
|
2186
|
+
console.log(chalk.dim(' Avg Time:'), stats.avgTimeMs.toFixed(2) + 'ms');
|
|
2187
|
+
console.log(chalk.dim(' Total Embeds:'), stats.totalEmbeds);
|
|
2188
|
+
console.log();
|
|
2189
|
+
return;
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
if (text) {
|
|
2193
|
+
const start = performance.now();
|
|
2194
|
+
const embedding = await embedder.embed(text);
|
|
2195
|
+
const elapsed = performance.now() - start;
|
|
2196
|
+
const stats = embedder.getCacheStats();
|
|
2197
|
+
|
|
2198
|
+
console.log(chalk.cyan('\n⚡ Optimized ONNX Embedding\n'));
|
|
2199
|
+
console.log(chalk.dim(`Text: "${text.slice(0, 60)}${text.length > 60 ? '...' : ''}"`));
|
|
2200
|
+
console.log(chalk.dim(`Dimension: ${embedding.length}`));
|
|
2201
|
+
console.log(chalk.dim(`Time: ${elapsed.toFixed(2)}ms`));
|
|
2202
|
+
console.log(chalk.dim(`Cache hit rate: ${(stats.embedding.hitRate * 100).toFixed(1)}%`));
|
|
2203
|
+
console.log();
|
|
2204
|
+
} else {
|
|
2205
|
+
console.log(chalk.yellow('Usage: ruvector embed optimized <text>'));
|
|
2206
|
+
console.log(chalk.dim(' --stats Show cache statistics'));
|
|
2207
|
+
console.log(chalk.dim(' --benchmark Run cache benchmark'));
|
|
2208
|
+
console.log(chalk.dim(' --clear-cache Clear all caches'));
|
|
2209
|
+
console.log(chalk.dim(' --cache-size Set cache size (default: 512)'));
|
|
2210
|
+
}
|
|
2211
|
+
} catch (e) {
|
|
2212
|
+
console.error(chalk.red('Error:'), e.message);
|
|
2213
|
+
}
|
|
2214
|
+
});
|
|
2215
|
+
|
|
2111
2216
|
// =============================================================================
|
|
2112
2217
|
// Demo Command - Interactive tutorial
|
|
2113
2218
|
// =============================================================================
|
|
@@ -111,6 +111,7 @@ export declare class AdaptiveEmbedder {
|
|
|
111
111
|
learnFromOutcome(context: string, action: string, success: boolean, quality?: number): Promise<void>;
|
|
112
112
|
/**
|
|
113
113
|
* EWC consolidation - prevent forgetting important adaptations
|
|
114
|
+
* OPTIMIZED: Works with Float32Array episodic entries
|
|
114
115
|
*/
|
|
115
116
|
consolidate(): Promise<void>;
|
|
116
117
|
/**
|
|
@@ -141,6 +142,13 @@ export declare class AdaptiveEmbedder {
|
|
|
141
142
|
* Reset adaptations
|
|
142
143
|
*/
|
|
143
144
|
reset(): void;
|
|
145
|
+
/**
|
|
146
|
+
* Get LoRA cache statistics
|
|
147
|
+
*/
|
|
148
|
+
getCacheStats(): {
|
|
149
|
+
size: number;
|
|
150
|
+
maxSize: number;
|
|
151
|
+
};
|
|
144
152
|
}
|
|
145
153
|
export declare function getAdaptiveEmbedder(config?: AdaptiveConfig): AdaptiveEmbedder;
|
|
146
154
|
export declare function initAdaptiveEmbedder(config?: AdaptiveConfig): Promise<AdaptiveEmbedder>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive-embedder.d.ts","sourceRoot":"","sources":["../../src/core/adaptive-embedder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAQH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"adaptive-embedder.d.ts","sourceRoot":"","sources":["../../src/core/adaptive-embedder.ts"],"names":[],"mappings":"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"}
|