agentic-flow 2.0.1-alpha.14 → 2.0.1-alpha.15
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/CHANGELOG.md +35 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/intelligence/EmbeddingService.d.ts +89 -16
- package/dist/intelligence/EmbeddingService.d.ts.map +1 -1
- package/dist/intelligence/EmbeddingService.js +311 -82
- package/dist/intelligence/EmbeddingService.js.map +1 -1
- package/dist/intelligence/embedding-benchmark.js +6 -2
- package/dist/intelligence/embedding-benchmark.js.map +1 -1
- package/package.json +3 -3
- package/wasm/reasoningbank/reasoningbank_wasm_bg.js +2 -2
- package/wasm/reasoningbank/reasoningbank_wasm_bg.wasm +0 -0
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EmbeddingService - Unified embedding interface for agentic-flow
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
4
|
+
* Uses ruvector@0.1.61+ for ONNX embeddings with:
|
|
5
|
+
* - SIMD128 acceleration (6x faster)
|
|
6
|
+
* - Parallel worker threads (7 workers)
|
|
7
|
+
* - all-MiniLM-L6-v2 model (384 dimensions)
|
|
7
8
|
*
|
|
8
9
|
* Configure via:
|
|
9
|
-
* - AGENTIC_FLOW_EMBEDDINGS=simple|onnx (default:
|
|
10
|
+
* - AGENTIC_FLOW_EMBEDDINGS=simple|onnx|auto (default: auto)
|
|
10
11
|
* - AGENTIC_FLOW_EMBEDDING_MODEL=all-MiniLM-L6-v2 (default)
|
|
11
12
|
*/
|
|
12
|
-
export type EmbeddingBackend = 'simple' | 'onnx' | '
|
|
13
|
+
export type EmbeddingBackend = 'simple' | 'onnx' | 'auto';
|
|
13
14
|
export interface EmbeddingStats {
|
|
14
15
|
backend: EmbeddingBackend;
|
|
16
|
+
effectiveBackend: EmbeddingBackend;
|
|
15
17
|
dimension: number;
|
|
16
18
|
totalEmbeddings: number;
|
|
17
19
|
totalLatencyMs: number;
|
|
@@ -20,27 +22,50 @@ export interface EmbeddingStats {
|
|
|
20
22
|
modelLoaded: boolean;
|
|
21
23
|
modelName?: string;
|
|
22
24
|
simdAvailable?: boolean;
|
|
25
|
+
parallelWorkers?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface SimilarityResult {
|
|
28
|
+
similarity: number;
|
|
29
|
+
timeMs: number;
|
|
30
|
+
}
|
|
31
|
+
export interface SearchResult {
|
|
32
|
+
text: string;
|
|
33
|
+
index: number;
|
|
34
|
+
similarity: number;
|
|
35
|
+
}
|
|
36
|
+
export interface DuplicateGroup {
|
|
37
|
+
indices: number[];
|
|
38
|
+
texts: string[];
|
|
39
|
+
similarity: number;
|
|
23
40
|
}
|
|
24
41
|
export declare class EmbeddingService {
|
|
25
42
|
private static instance;
|
|
26
43
|
private backend;
|
|
44
|
+
private effectiveBackend;
|
|
27
45
|
private dimension;
|
|
28
46
|
private modelName;
|
|
29
|
-
private embedder;
|
|
30
|
-
private wasmModule;
|
|
31
|
-
private loadingPromise;
|
|
32
47
|
private modelLoaded;
|
|
48
|
+
private loadingPromise;
|
|
33
49
|
private totalEmbeddings;
|
|
34
50
|
private totalLatencyMs;
|
|
35
51
|
private cacheHits;
|
|
36
52
|
private cache;
|
|
37
53
|
private cacheEnabled;
|
|
54
|
+
private corpus;
|
|
38
55
|
private constructor();
|
|
39
56
|
static getInstance(): EmbeddingService;
|
|
40
57
|
/**
|
|
41
|
-
*
|
|
58
|
+
* Resolve the effective backend based on ONNX detection
|
|
59
|
+
*/
|
|
60
|
+
private resolveBackend;
|
|
61
|
+
/**
|
|
62
|
+
* Get configured backend (may be 'auto')
|
|
42
63
|
*/
|
|
43
64
|
getBackend(): EmbeddingBackend;
|
|
65
|
+
/**
|
|
66
|
+
* Get effective backend after detection
|
|
67
|
+
*/
|
|
68
|
+
getEffectiveBackend(): EmbeddingBackend;
|
|
44
69
|
/**
|
|
45
70
|
* Get embedding dimension
|
|
46
71
|
*/
|
|
@@ -49,23 +74,56 @@ export declare class EmbeddingService {
|
|
|
49
74
|
* Check if ONNX model is loaded
|
|
50
75
|
*/
|
|
51
76
|
isModelLoaded(): boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Initialize ONNX embedder (lazy load on first use)
|
|
54
|
-
*/
|
|
55
|
-
initOnnx(): Promise<void>;
|
|
56
|
-
private _loadOnnxModel;
|
|
57
77
|
/**
|
|
58
78
|
* Generate embedding for text
|
|
79
|
+
* Auto-detects ONNX and uses it if available (default behavior)
|
|
59
80
|
*/
|
|
60
81
|
embed(text: string): Promise<Float32Array>;
|
|
61
82
|
/**
|
|
62
|
-
* Generate embeddings for multiple texts
|
|
83
|
+
* Generate embeddings for multiple texts (batch processing with parallel workers)
|
|
84
|
+
* Batch processing provides significant speedup with parallel ONNX workers
|
|
63
85
|
*/
|
|
64
86
|
embedBatch(texts: string[]): Promise<Float32Array[]>;
|
|
65
87
|
/**
|
|
66
88
|
* Compute similarity between two texts
|
|
67
89
|
*/
|
|
68
90
|
similarity(text1: string, text2: string): Promise<number>;
|
|
91
|
+
/**
|
|
92
|
+
* Compute NxN similarity matrix for a list of texts
|
|
93
|
+
* Uses parallel workers for ONNX backend
|
|
94
|
+
*/
|
|
95
|
+
similarityMatrix(texts: string[]): Promise<number[][]>;
|
|
96
|
+
/**
|
|
97
|
+
* Build a corpus for semantic search
|
|
98
|
+
*/
|
|
99
|
+
buildCorpus(texts: string[]): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Semantic search against the corpus
|
|
102
|
+
* Returns top-k most similar texts
|
|
103
|
+
*/
|
|
104
|
+
semanticSearch(query: string, topK?: number): Promise<SearchResult[]>;
|
|
105
|
+
/**
|
|
106
|
+
* Find near-duplicate texts in a list
|
|
107
|
+
* Groups texts with similarity above threshold
|
|
108
|
+
*/
|
|
109
|
+
findDuplicates(texts: string[], threshold?: number): Promise<DuplicateGroup[]>;
|
|
110
|
+
/**
|
|
111
|
+
* K-means clustering of texts
|
|
112
|
+
* Returns cluster assignments and centroids
|
|
113
|
+
*/
|
|
114
|
+
clusterTexts(texts: string[], k?: number, maxIterations?: number): Promise<{
|
|
115
|
+
clusters: number[];
|
|
116
|
+
centroids: Float32Array[];
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Stream embeddings for large batches (memory efficient)
|
|
120
|
+
* Yields embeddings one at a time
|
|
121
|
+
*/
|
|
122
|
+
streamEmbed(texts: string[], batchSize?: number): AsyncGenerator<{
|
|
123
|
+
index: number;
|
|
124
|
+
text: string;
|
|
125
|
+
embedding: Float32Array;
|
|
126
|
+
}>;
|
|
69
127
|
/**
|
|
70
128
|
* Simple hash-based embedding (fast, not semantic)
|
|
71
129
|
*/
|
|
@@ -82,14 +140,29 @@ export declare class EmbeddingService {
|
|
|
82
140
|
* Clear cache
|
|
83
141
|
*/
|
|
84
142
|
clearCache(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Clear corpus
|
|
145
|
+
*/
|
|
146
|
+
clearCorpus(): void;
|
|
147
|
+
/**
|
|
148
|
+
* Shutdown (cleanup workers)
|
|
149
|
+
*/
|
|
150
|
+
shutdown(): Promise<void>;
|
|
85
151
|
/**
|
|
86
152
|
* Reset instance (for testing)
|
|
87
153
|
*/
|
|
88
|
-
static reset(): void
|
|
154
|
+
static reset(): Promise<void>;
|
|
89
155
|
}
|
|
90
156
|
export declare function getEmbeddingService(): EmbeddingService;
|
|
91
157
|
export declare function embed(text: string): Promise<Float32Array>;
|
|
92
158
|
export declare function embedBatch(texts: string[]): Promise<Float32Array[]>;
|
|
93
159
|
export declare function textSimilarity(text1: string, text2: string): Promise<number>;
|
|
94
160
|
export declare function simpleEmbed(text: string, dim?: number): Float32Array;
|
|
161
|
+
export declare function similarityMatrix(texts: string[]): Promise<number[][]>;
|
|
162
|
+
export declare function semanticSearch(query: string, topK?: number): Promise<SearchResult[]>;
|
|
163
|
+
export declare function findDuplicates(texts: string[], threshold?: number): Promise<DuplicateGroup[]>;
|
|
164
|
+
export declare function clusterTexts(texts: string[], k?: number): Promise<{
|
|
165
|
+
clusters: number[];
|
|
166
|
+
centroids: Float32Array[];
|
|
167
|
+
}>;
|
|
95
168
|
//# sourceMappingURL=EmbeddingService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/intelligence/EmbeddingService.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"EmbeddingService.d.ts","sourceRoot":"","sources":["../../src/intelligence/EmbeddingService.ts"],"names":[],"mappings":"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"}
|