@mcampa/ai-context-core 0.0.2-beta.2250c7e → 0.0.2-beta.a9337db
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/README.md +47 -55
- package/dist/.tsbuildinfo +1 -1
- package/dist/context.d.ts +5 -30
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +16 -160
- package/dist/context.js.map +1 -1
- package/dist/embedding/base-embedding.d.ts.map +1 -1
- package/dist/embedding/base-embedding.js +0 -4
- package/dist/embedding/base-embedding.js.map +1 -1
- package/dist/embedding/gemini-embedding.d.ts +1 -43
- package/dist/embedding/gemini-embedding.d.ts.map +1 -1
- package/dist/embedding/gemini-embedding.js +26 -164
- package/dist/embedding/gemini-embedding.js.map +1 -1
- package/dist/embedding/index.d.ts +2 -3
- package/dist/embedding/index.d.ts.map +1 -1
- package/dist/embedding/index.js +2 -3
- package/dist/embedding/index.js.map +1 -1
- package/dist/embedding/ollama-embedding.d.ts +1 -2
- package/dist/embedding/ollama-embedding.d.ts.map +1 -1
- package/dist/embedding/ollama-embedding.js +3 -2
- package/dist/embedding/ollama-embedding.js.map +1 -1
- package/dist/embedding/openai-embedding.d.ts +1 -2
- package/dist/embedding/openai-embedding.d.ts.map +1 -1
- package/dist/embedding/openai-embedding.js +3 -3
- package/dist/embedding/openai-embedding.js.map +1 -1
- package/dist/embedding/voyageai-embedding.d.ts +1 -2
- package/dist/embedding/voyageai-embedding.d.ts.map +1 -1
- package/dist/embedding/voyageai-embedding.js +2 -2
- package/dist/embedding/voyageai-embedding.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/splitter/ast-splitter.d.ts +1 -1
- package/dist/splitter/ast-splitter.d.ts.map +1 -1
- package/dist/splitter/ast-splitter.js +7 -7
- package/dist/splitter/ast-splitter.js.map +1 -1
- package/dist/splitter/index.d.ts +4 -4
- package/dist/splitter/index.d.ts.map +1 -1
- package/dist/splitter/index.js +1 -1
- package/dist/splitter/index.js.map +1 -1
- package/dist/splitter/langchain-splitter.d.ts +1 -1
- package/dist/splitter/langchain-splitter.d.ts.map +1 -1
- package/dist/splitter/langchain-splitter.js +2 -2
- package/dist/splitter/langchain-splitter.js.map +1 -1
- package/dist/sync/merkle.js +1 -1
- package/dist/sync/merkle.js.map +1 -1
- package/dist/sync/synchronizer.js +6 -6
- package/dist/sync/synchronizer.js.map +1 -1
- package/dist/utils/env-manager.js +4 -4
- package/dist/utils/env-manager.js.map +1 -1
- package/dist/vectordb/index.d.ts +4 -13
- package/dist/vectordb/index.d.ts.map +1 -1
- package/dist/vectordb/index.js +5 -39
- package/dist/vectordb/index.js.map +1 -1
- package/dist/vectordb/milvus-restful-vectordb.d.ts +11 -12
- package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -1
- package/dist/vectordb/milvus-restful-vectordb.js +31 -29
- package/dist/vectordb/milvus-restful-vectordb.js.map +1 -1
- package/dist/vectordb/milvus-vectordb.d.ts +12 -12
- package/dist/vectordb/milvus-vectordb.d.ts.map +1 -1
- package/dist/vectordb/milvus-vectordb.js +28 -31
- package/dist/vectordb/milvus-vectordb.js.map +1 -1
- package/dist/vectordb/types.d.ts +16 -16
- package/dist/vectordb/types.d.ts.map +1 -1
- package/dist/vectordb/types.js.map +1 -1
- package/dist/vectordb/zilliz-utils.js +3 -3
- package/dist/vectordb/zilliz-utils.js.map +1 -1
- package/package.json +22 -32
- package/dist/embedding/huggingface-embedding.d.ts +0 -70
- package/dist/embedding/huggingface-embedding.d.ts.map +0 -1
- package/dist/embedding/huggingface-embedding.js +0 -270
- package/dist/embedding/huggingface-embedding.js.map +0 -1
- package/dist/vectordb/base/base-vector-database.d.ts +0 -58
- package/dist/vectordb/base/base-vector-database.d.ts.map +0 -1
- package/dist/vectordb/base/base-vector-database.js +0 -32
- package/dist/vectordb/base/base-vector-database.js.map +0 -1
- package/dist/vectordb/factory.d.ts +0 -113
- package/dist/vectordb/factory.d.ts.map +0 -1
- package/dist/vectordb/factory.js +0 -170
- package/dist/vectordb/factory.js.map +0 -1
- package/dist/vectordb/faiss-vectordb.d.ts +0 -162
- package/dist/vectordb/faiss-vectordb.d.ts.map +0 -1
- package/dist/vectordb/faiss-vectordb.js +0 -777
- package/dist/vectordb/faiss-vectordb.js.map +0 -1
- package/dist/vectordb/libsql-vectordb.d.ts +0 -170
- package/dist/vectordb/libsql-vectordb.d.ts.map +0 -1
- package/dist/vectordb/libsql-vectordb.js +0 -837
- package/dist/vectordb/libsql-vectordb.js.map +0 -1
- package/dist/vectordb/qdrant-vectordb.d.ts +0 -149
- package/dist/vectordb/qdrant-vectordb.d.ts.map +0 -1
- package/dist/vectordb/qdrant-vectordb.js +0 -856
- package/dist/vectordb/qdrant-vectordb.js.map +0 -1
- package/dist/vectordb/sparse/index.d.ts +0 -4
- package/dist/vectordb/sparse/index.d.ts.map +0 -1
- package/dist/vectordb/sparse/index.js +0 -23
- package/dist/vectordb/sparse/index.js.map +0 -1
- package/dist/vectordb/sparse/simple-bm25.d.ts +0 -115
- package/dist/vectordb/sparse/simple-bm25.d.ts.map +0 -1
- package/dist/vectordb/sparse/simple-bm25.js +0 -249
- package/dist/vectordb/sparse/simple-bm25.js.map +0 -1
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts +0 -54
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +0 -1
- package/dist/vectordb/sparse/sparse-vector-generator.js +0 -3
- package/dist/vectordb/sparse/sparse-vector-generator.js.map +0 -1
- package/dist/vectordb/sparse/types.d.ts +0 -38
- package/dist/vectordb/sparse/types.d.ts.map +0 -1
- package/dist/vectordb/sparse/types.js +0 -3
- package/dist/vectordb/sparse/types.js.map +0 -1
package/dist/vectordb/types.d.ts
CHANGED
|
@@ -6,18 +6,18 @@ export interface VectorDocument {
|
|
|
6
6
|
startLine: number;
|
|
7
7
|
endLine: number;
|
|
8
8
|
fileExtension: string;
|
|
9
|
-
metadata: Record<string,
|
|
9
|
+
metadata: Record<string, unknown>;
|
|
10
10
|
}
|
|
11
11
|
export interface SearchOptions {
|
|
12
12
|
topK?: number;
|
|
13
|
-
filter?: Record<string,
|
|
13
|
+
filter?: Record<string, unknown>;
|
|
14
14
|
threshold?: number;
|
|
15
15
|
filterExpr?: string;
|
|
16
16
|
}
|
|
17
17
|
export interface HybridSearchRequest {
|
|
18
18
|
data: number[] | string;
|
|
19
19
|
anns_field: string;
|
|
20
|
-
param: Record<string,
|
|
20
|
+
param: Record<string, unknown>;
|
|
21
21
|
limit: number;
|
|
22
22
|
}
|
|
23
23
|
export interface HybridSearchOptions {
|
|
@@ -27,7 +27,7 @@ export interface HybridSearchOptions {
|
|
|
27
27
|
}
|
|
28
28
|
export interface RerankStrategy {
|
|
29
29
|
strategy: "rrf" | "weighted";
|
|
30
|
-
params?: Record<string,
|
|
30
|
+
params?: Record<string, unknown>;
|
|
31
31
|
}
|
|
32
32
|
export interface VectorSearchResult {
|
|
33
33
|
document: VectorDocument;
|
|
@@ -44,60 +44,60 @@ export interface VectorDatabase {
|
|
|
44
44
|
* @param dimension Vector dimension
|
|
45
45
|
* @param description Collection description
|
|
46
46
|
*/
|
|
47
|
-
createCollection
|
|
47
|
+
createCollection(collectionName: string, dimension: number, description?: string): Promise<void>;
|
|
48
48
|
/**
|
|
49
49
|
* Create collection with hybrid search support
|
|
50
50
|
* @param collectionName Collection name
|
|
51
51
|
* @param dimension Dense vector dimension
|
|
52
52
|
* @param description Collection description
|
|
53
53
|
*/
|
|
54
|
-
createHybridCollection
|
|
54
|
+
createHybridCollection(collectionName: string, dimension: number, description?: string): Promise<void>;
|
|
55
55
|
/**
|
|
56
56
|
* Drop collection
|
|
57
57
|
* @param collectionName Collection name
|
|
58
58
|
*/
|
|
59
|
-
dropCollection
|
|
59
|
+
dropCollection(collectionName: string): Promise<void>;
|
|
60
60
|
/**
|
|
61
61
|
* Check if collection exists
|
|
62
62
|
* @param collectionName Collection name
|
|
63
63
|
*/
|
|
64
|
-
hasCollection
|
|
64
|
+
hasCollection(collectionName: string): Promise<boolean>;
|
|
65
65
|
/**
|
|
66
66
|
* List all collections
|
|
67
67
|
*/
|
|
68
|
-
listCollections
|
|
68
|
+
listCollections(): Promise<string[]>;
|
|
69
69
|
/**
|
|
70
70
|
* Insert vector documents
|
|
71
71
|
* @param collectionName Collection name
|
|
72
72
|
* @param documents Document array
|
|
73
73
|
*/
|
|
74
|
-
insert
|
|
74
|
+
insert(collectionName: string, documents: VectorDocument[]): Promise<void>;
|
|
75
75
|
/**
|
|
76
76
|
* Insert hybrid vector documents
|
|
77
77
|
* @param collectionName Collection name
|
|
78
78
|
* @param documents Document array
|
|
79
79
|
*/
|
|
80
|
-
insertHybrid
|
|
80
|
+
insertHybrid(collectionName: string, documents: VectorDocument[]): Promise<void>;
|
|
81
81
|
/**
|
|
82
82
|
* Search similar vectors
|
|
83
83
|
* @param collectionName Collection name
|
|
84
84
|
* @param queryVector Query vector
|
|
85
85
|
* @param options Search options
|
|
86
86
|
*/
|
|
87
|
-
search
|
|
87
|
+
search(collectionName: string, queryVector: number[], options?: SearchOptions): Promise<VectorSearchResult[]>;
|
|
88
88
|
/**
|
|
89
89
|
* Hybrid search with multiple vector fields
|
|
90
90
|
* @param collectionName Collection name
|
|
91
91
|
* @param searchRequests Array of search requests for different fields
|
|
92
92
|
* @param options Hybrid search options including reranking
|
|
93
93
|
*/
|
|
94
|
-
hybridSearch
|
|
94
|
+
hybridSearch(collectionName: string, searchRequests: HybridSearchRequest[], options?: HybridSearchOptions): Promise<HybridSearchResult[]>;
|
|
95
95
|
/**
|
|
96
96
|
* Delete documents
|
|
97
97
|
* @param collectionName Collection name
|
|
98
98
|
* @param ids Document ID array
|
|
99
99
|
*/
|
|
100
|
-
delete
|
|
100
|
+
delete(collectionName: string, ids: string[]): Promise<void>;
|
|
101
101
|
/**
|
|
102
102
|
* Query documents with filter conditions
|
|
103
103
|
* @param collectionName Collection name
|
|
@@ -105,12 +105,12 @@ export interface VectorDatabase {
|
|
|
105
105
|
* @param outputFields Fields to return
|
|
106
106
|
* @param limit Maximum number of results
|
|
107
107
|
*/
|
|
108
|
-
query
|
|
108
|
+
query(collectionName: string, filter: string, outputFields: string[], limit?: number): Promise<Record<string, unknown>[]>;
|
|
109
109
|
/**
|
|
110
110
|
* Check collection limit
|
|
111
111
|
* Returns true if collection can be created, false if limit exceeded
|
|
112
112
|
*/
|
|
113
|
-
checkCollectionLimit
|
|
113
|
+
checkCollectionLimit(): Promise<boolean>;
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
116
|
* Special error message for collection limit exceeded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vectordb/types.ts"],"names":[],"mappings":";;;AA+JA;;;GAGG;AACU,QAAA,wBAAwB,GACnC,mPAAmP,CAAC"}
|
|
@@ -58,7 +58,7 @@ class ClusterManager {
|
|
|
58
58
|
catch (error) {
|
|
59
59
|
// Log the original error for more details, especially for fetch errors
|
|
60
60
|
console.error("[ZillizUtils] ❌ Original error in makeRequest:", error);
|
|
61
|
-
throw new Error(`Zilliz API request failed: ${error
|
|
61
|
+
throw new Error(`Zilliz API request failed: ${String(error)}`);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
@@ -140,7 +140,7 @@ class ClusterManager {
|
|
|
140
140
|
catch (error) {
|
|
141
141
|
// If it's a describe cluster error, continue polling
|
|
142
142
|
// The cluster might not be immediately available for describe
|
|
143
|
-
if (error.
|
|
143
|
+
if (String(error).includes("Failed to describe cluster")) {
|
|
144
144
|
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
145
145
|
continue;
|
|
146
146
|
}
|
|
@@ -189,7 +189,7 @@ class ClusterManager {
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
catch (error) {
|
|
192
|
-
throw new Error(`Failed to get address from token: ${error
|
|
192
|
+
throw new Error(`Failed to get address from token: ${String(error)}`);
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zilliz-utils.js","sourceRoot":"","sources":["../../src/vectordb/zilliz-utils.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AA8FlD;;;;GAIG;AACH,MAAa,cAAc;IAIzB,YAAY,MAAqB;QAC/B,2EAA2E;QAC3E,IAAI,CAAC,OAAO;YACV,wBAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC;gBACjC,MAAM,EAAE,OAAO;gBACf,8BAA8B,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,wBAAU,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QAEnE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,QAAgB,EAChB,SAAyB,KAAK,EAC9B,
|
|
1
|
+
{"version":3,"file":"zilliz-utils.js","sourceRoot":"","sources":["../../src/vectordb/zilliz-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcampa/ai-context-core",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
4
|
-
"description": "Core indexing engine for
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"repository": {
|
|
7
|
-
"type": "git",
|
|
8
|
-
"url": "https://github.com/mcampa/ai-context.git",
|
|
9
|
-
"directory": "packages/core"
|
|
10
|
-
},
|
|
3
|
+
"version": "0.0.2-beta.a9337db",
|
|
4
|
+
"description": "Core indexing engine for Claude Context",
|
|
11
5
|
"main": "dist/index.js",
|
|
12
6
|
"types": "dist/index.d.ts",
|
|
13
|
-
"files": [
|
|
14
|
-
"README.md",
|
|
15
|
-
"dist"
|
|
16
|
-
],
|
|
17
7
|
"dependencies": {
|
|
18
8
|
"@google/genai": "^1.9.0",
|
|
19
|
-
"@huggingface/transformers": "^3.0.0",
|
|
20
|
-
"@libsql/client": "^0.15.15",
|
|
21
|
-
"@qdrant/js-client-grpc": "^1.15.1",
|
|
22
|
-
"@qdrant/js-client-rest": "^1.15.1",
|
|
23
9
|
"@zilliz/milvus2-sdk-node": "^2.5.10",
|
|
24
|
-
"es-toolkit": "^1.41.0",
|
|
25
10
|
"faiss-node": "^0.5.1",
|
|
26
11
|
"fs-extra": "^11.0.0",
|
|
27
12
|
"glob": "^10.0.0",
|
|
@@ -29,25 +14,36 @@
|
|
|
29
14
|
"ollama": "^0.5.16",
|
|
30
15
|
"openai": "^5.1.1",
|
|
31
16
|
"tree-sitter": "^0.21.1",
|
|
32
|
-
"tree-sitter-c-sharp": "^0.21.0",
|
|
33
17
|
"tree-sitter-cpp": "^0.22.0",
|
|
34
18
|
"tree-sitter-go": "^0.21.0",
|
|
35
19
|
"tree-sitter-java": "^0.21.0",
|
|
36
20
|
"tree-sitter-javascript": "^0.21.0",
|
|
37
21
|
"tree-sitter-python": "^0.21.0",
|
|
22
|
+
"tree-sitter-c-sharp": "^0.21.0",
|
|
38
23
|
"tree-sitter-rust": "^0.21.0",
|
|
39
|
-
"tree-sitter-scala": "^0.24.0",
|
|
40
24
|
"tree-sitter-typescript": "^0.21.0",
|
|
25
|
+
"tree-sitter-scala": "^0.24.0",
|
|
41
26
|
"typescript": "^5.0.0",
|
|
42
27
|
"voyageai": "^0.0.4"
|
|
43
28
|
},
|
|
44
29
|
"devDependencies": {
|
|
45
30
|
"@types/fs-extra": "^11.0.0",
|
|
46
|
-
"@types/
|
|
47
|
-
"@
|
|
48
|
-
"
|
|
49
|
-
"
|
|
31
|
+
"@types/jest": "^30.0.0",
|
|
32
|
+
"@types/mock-fs": "^4.13.4",
|
|
33
|
+
"jest": "^30.0.0",
|
|
34
|
+
"mock-fs": "^5.5.0",
|
|
35
|
+
"ts-jest": "^29.4.0"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist",
|
|
39
|
+
"README.md"
|
|
40
|
+
],
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "https://github.com/mcampa/ai-context.git",
|
|
44
|
+
"directory": "packages/core"
|
|
50
45
|
},
|
|
46
|
+
"license": "MIT",
|
|
51
47
|
"publishConfig": {
|
|
52
48
|
"access": "public"
|
|
53
49
|
},
|
|
@@ -55,14 +51,8 @@
|
|
|
55
51
|
"build": "pnpm clean && tsc --build --force",
|
|
56
52
|
"dev": "tsc --watch",
|
|
57
53
|
"clean": "rimraf dist",
|
|
58
|
-
"lint": "eslint
|
|
59
|
-
"lint:fix": "eslint
|
|
60
|
-
"typecheck": "tsc --noEmit
|
|
61
|
-
"test": "vitest run",
|
|
62
|
-
"test:watch": "vitest",
|
|
63
|
-
"test:coverage": "vitest run --coverage",
|
|
64
|
-
"test:unit": "vitest run --exclude 'test/integration/**/*.integration.test.ts'",
|
|
65
|
-
"test:integration": "vitest run --config vitest.config.integration.ts",
|
|
66
|
-
"test:all": "pnpm test:unit && pnpm test:integration"
|
|
54
|
+
"lint": "eslint src",
|
|
55
|
+
"lint:fix": "eslint src --fix",
|
|
56
|
+
"typecheck": "tsc --noEmit"
|
|
67
57
|
}
|
|
68
58
|
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import type { EmbeddingVector } from "./base-embedding";
|
|
2
|
-
import { Embedding } from "./base-embedding";
|
|
3
|
-
export type HuggingFaceDtype = "fp32" | "fp16" | "q8" | "q4" | "q4f16";
|
|
4
|
-
export interface HuggingFaceEmbeddingConfig {
|
|
5
|
-
model?: string;
|
|
6
|
-
dtype?: HuggingFaceDtype;
|
|
7
|
-
queryPrefix?: string;
|
|
8
|
-
cacheDir?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare class HuggingFaceEmbedding extends Embedding {
|
|
11
|
-
protected maxTokens: number;
|
|
12
|
-
private model;
|
|
13
|
-
private tokenizer;
|
|
14
|
-
private dimension;
|
|
15
|
-
private config;
|
|
16
|
-
private modelLoading;
|
|
17
|
-
private transformersModule;
|
|
18
|
-
constructor(config?: HuggingFaceEmbeddingConfig);
|
|
19
|
-
/**
|
|
20
|
-
* Get list of supported LEAF models
|
|
21
|
-
*/
|
|
22
|
-
static getSupportedModels(): Record<string, {
|
|
23
|
-
dimension: number;
|
|
24
|
-
maxTokens: number;
|
|
25
|
-
description: string;
|
|
26
|
-
queryPrefix?: string;
|
|
27
|
-
}>;
|
|
28
|
-
/**
|
|
29
|
-
* Lazy load transformers module
|
|
30
|
-
*/
|
|
31
|
-
private getTransformersModule;
|
|
32
|
-
/**
|
|
33
|
-
* Lazy load model and tokenizer on first use
|
|
34
|
-
*/
|
|
35
|
-
private ensureModel;
|
|
36
|
-
/**
|
|
37
|
-
* Actually load the model and tokenizer
|
|
38
|
-
*/
|
|
39
|
-
private loadModel;
|
|
40
|
-
/**
|
|
41
|
-
* Apply query prefix if configured (for IR models)
|
|
42
|
-
*/
|
|
43
|
-
private applyQueryPrefix;
|
|
44
|
-
detectDimension(): Promise<number>;
|
|
45
|
-
embed(text: string): Promise<EmbeddingVector>;
|
|
46
|
-
embedBatch(texts: string[]): Promise<EmbeddingVector[]>;
|
|
47
|
-
getDimension(): number;
|
|
48
|
-
getProvider(): string;
|
|
49
|
-
/**
|
|
50
|
-
* Get the current model ID
|
|
51
|
-
*/
|
|
52
|
-
getModel(): string;
|
|
53
|
-
/**
|
|
54
|
-
* Get the current dtype setting
|
|
55
|
-
*/
|
|
56
|
-
getDtype(): HuggingFaceDtype;
|
|
57
|
-
/**
|
|
58
|
-
* Get the query prefix (if any)
|
|
59
|
-
*/
|
|
60
|
-
getQueryPrefix(): string | undefined;
|
|
61
|
-
/**
|
|
62
|
-
* Check if model is loaded
|
|
63
|
-
*/
|
|
64
|
-
isModelLoaded(): boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Preload the model (optional, for eager loading)
|
|
67
|
-
*/
|
|
68
|
-
preload(): Promise<void>;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=huggingface-embedding.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-embedding.d.ts","sourceRoot":"","sources":["../../src/embedding/huggingface-embedding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,CAAO;IAClC,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,kBAAkB,CAAmC;gBAEjD,MAAM,GAAE,0BAA+B;IAsBnD;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,CACjC,MAAM,EACN;QACE,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CACF;IAoBD;;OAEG;YACW,qBAAqB;IAYnC;;OAEG;YACW,WAAW;IAiBzB;;OAEG;YACW,SAAS;IAiCvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOlB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAKlC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA0C7C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA2D7D,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.HuggingFaceEmbedding = void 0;
|
|
37
|
-
const base_embedding_1 = require("./base-embedding");
|
|
38
|
-
class HuggingFaceEmbedding extends base_embedding_1.Embedding {
|
|
39
|
-
constructor(config = {}) {
|
|
40
|
-
super();
|
|
41
|
-
this.maxTokens = 512;
|
|
42
|
-
this.model = null;
|
|
43
|
-
this.tokenizer = null;
|
|
44
|
-
this.dimension = 768;
|
|
45
|
-
this.modelLoading = null;
|
|
46
|
-
this.transformersModule = null;
|
|
47
|
-
this.config = {
|
|
48
|
-
model: config.model ?? "MongoDB/mdbr-leaf-ir",
|
|
49
|
-
dtype: config.dtype ?? "fp32",
|
|
50
|
-
queryPrefix: config.queryPrefix,
|
|
51
|
-
cacheDir: config.cacheDir,
|
|
52
|
-
};
|
|
53
|
-
// Set dimension and query prefix based on model
|
|
54
|
-
const modelId = this.config.model ?? "MongoDB/mdbr-leaf-ir";
|
|
55
|
-
const modelInfo = HuggingFaceEmbedding.getSupportedModels()[modelId];
|
|
56
|
-
if (modelInfo) {
|
|
57
|
-
this.dimension = modelInfo.dimension;
|
|
58
|
-
this.maxTokens = modelInfo.maxTokens;
|
|
59
|
-
// Use model-specific query prefix if not overridden
|
|
60
|
-
if (this.config.queryPrefix === undefined) {
|
|
61
|
-
this.config.queryPrefix = modelInfo.queryPrefix;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get list of supported LEAF models
|
|
67
|
-
*/
|
|
68
|
-
static getSupportedModels() {
|
|
69
|
-
return {
|
|
70
|
-
"MongoDB/mdbr-leaf-ir": {
|
|
71
|
-
dimension: 768,
|
|
72
|
-
maxTokens: 512,
|
|
73
|
-
description: "LEAF model optimized for information retrieval and semantic search (DEFAULT)",
|
|
74
|
-
queryPrefix: "Represent this sentence for searching relevant passages: ",
|
|
75
|
-
},
|
|
76
|
-
"MongoDB/mdbr-leaf-mt": {
|
|
77
|
-
dimension: 768,
|
|
78
|
-
maxTokens: 512,
|
|
79
|
-
description: "LEAF multi-task model for classification, clustering, and sentence similarity",
|
|
80
|
-
queryPrefix: undefined, // MT model doesn't use query prefix
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Lazy load transformers module
|
|
86
|
-
*/
|
|
87
|
-
async getTransformersModule() {
|
|
88
|
-
if (!this.transformersModule) {
|
|
89
|
-
this.transformersModule = await Promise.resolve().then(() => __importStar(require("@huggingface/transformers")));
|
|
90
|
-
// Configure cache directory if specified
|
|
91
|
-
if (this.config.cacheDir) {
|
|
92
|
-
this.transformersModule.env.cacheDir = this.config.cacheDir;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return this.transformersModule;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Lazy load model and tokenizer on first use
|
|
99
|
-
*/
|
|
100
|
-
async ensureModel() {
|
|
101
|
-
// If already loaded, return immediately
|
|
102
|
-
if (this.model && this.tokenizer) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
// If loading is in progress, wait for it
|
|
106
|
-
if (this.modelLoading) {
|
|
107
|
-
await this.modelLoading;
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// Start loading
|
|
111
|
-
this.modelLoading = this.loadModel();
|
|
112
|
-
await this.modelLoading;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Actually load the model and tokenizer
|
|
116
|
-
*/
|
|
117
|
-
async loadModel() {
|
|
118
|
-
try {
|
|
119
|
-
const transformers = await this.getTransformersModule();
|
|
120
|
-
const modelId = this.config.model ?? "MongoDB/mdbr-leaf-ir";
|
|
121
|
-
console.log(`[HuggingFace] Loading model: ${modelId} (dtype: ${this.config.dtype})`);
|
|
122
|
-
// Load tokenizer and model in parallel
|
|
123
|
-
const [tokenizer, model] = await Promise.all([
|
|
124
|
-
transformers.AutoTokenizer.from_pretrained(modelId),
|
|
125
|
-
transformers.AutoModel.from_pretrained(modelId, {
|
|
126
|
-
dtype: this.config.dtype,
|
|
127
|
-
}),
|
|
128
|
-
]);
|
|
129
|
-
this.tokenizer = tokenizer;
|
|
130
|
-
this.model = model;
|
|
131
|
-
console.log(`[HuggingFace] Model loaded successfully: ${modelId}`);
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
this.modelLoading = null; // Reset so it can be retried
|
|
135
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
136
|
-
const err = new Error(`Failed to load HuggingFace model ${this.config.model}: ${errorMessage}`);
|
|
137
|
-
err.cause = error;
|
|
138
|
-
throw err;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Apply query prefix if configured (for IR models)
|
|
143
|
-
*/
|
|
144
|
-
applyQueryPrefix(text) {
|
|
145
|
-
if (this.config.queryPrefix) {
|
|
146
|
-
return this.config.queryPrefix + text;
|
|
147
|
-
}
|
|
148
|
-
return text;
|
|
149
|
-
}
|
|
150
|
-
async detectDimension() {
|
|
151
|
-
// LEAF models have fixed dimensions, no dynamic detection needed
|
|
152
|
-
return this.dimension;
|
|
153
|
-
}
|
|
154
|
-
async embed(text) {
|
|
155
|
-
await this.ensureModel();
|
|
156
|
-
if (!this.model || !this.tokenizer) {
|
|
157
|
-
throw new Error("Model or tokenizer failed to initialize");
|
|
158
|
-
}
|
|
159
|
-
const processedText = this.preprocessText(text);
|
|
160
|
-
const prefixedText = this.applyQueryPrefix(processedText);
|
|
161
|
-
try {
|
|
162
|
-
// Tokenize with truncation to handle texts longer than maxTokens
|
|
163
|
-
const inputs = await this.tokenizer([prefixedText], {
|
|
164
|
-
padding: true,
|
|
165
|
-
truncation: true,
|
|
166
|
-
max_length: this.maxTokens,
|
|
167
|
-
});
|
|
168
|
-
// Get embeddings
|
|
169
|
-
const outputs = await this.model(inputs);
|
|
170
|
-
// Extract sentence embedding
|
|
171
|
-
if (!outputs.sentence_embedding) {
|
|
172
|
-
throw new Error("Model did not return sentence_embedding");
|
|
173
|
-
}
|
|
174
|
-
// Convert tensor to array
|
|
175
|
-
const embedding = outputs.sentence_embedding.tolist()[0];
|
|
176
|
-
return {
|
|
177
|
-
vector: embedding,
|
|
178
|
-
dimension: embedding.length,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
183
|
-
const err = new Error(`HuggingFace embedding failed: ${errorMessage}`);
|
|
184
|
-
err.cause = error;
|
|
185
|
-
throw err;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
async embedBatch(texts) {
|
|
189
|
-
if (texts.length === 0) {
|
|
190
|
-
return [];
|
|
191
|
-
}
|
|
192
|
-
await this.ensureModel();
|
|
193
|
-
if (!this.model || !this.tokenizer) {
|
|
194
|
-
throw new Error("Model or tokenizer failed to initialize");
|
|
195
|
-
}
|
|
196
|
-
const processedTexts = this.preprocessTexts(texts);
|
|
197
|
-
const prefixedTexts = processedTexts.map((text) => this.applyQueryPrefix(text));
|
|
198
|
-
try {
|
|
199
|
-
// Tokenize batch with truncation to handle texts longer than maxTokens
|
|
200
|
-
const inputs = await this.tokenizer(prefixedTexts, {
|
|
201
|
-
padding: true,
|
|
202
|
-
truncation: true,
|
|
203
|
-
max_length: this.maxTokens,
|
|
204
|
-
});
|
|
205
|
-
// Get embeddings
|
|
206
|
-
const outputs = await this.model(inputs);
|
|
207
|
-
// Extract sentence embeddings
|
|
208
|
-
if (!outputs.sentence_embedding) {
|
|
209
|
-
throw new Error("Model did not return sentence_embedding");
|
|
210
|
-
}
|
|
211
|
-
// Convert tensor to array
|
|
212
|
-
const embeddings = outputs.sentence_embedding.tolist();
|
|
213
|
-
return embeddings.map((embedding) => ({
|
|
214
|
-
vector: embedding,
|
|
215
|
-
dimension: embedding.length,
|
|
216
|
-
}));
|
|
217
|
-
}
|
|
218
|
-
catch (error) {
|
|
219
|
-
// Fallback: process individually in parallel if batch fails
|
|
220
|
-
const batchErrorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
221
|
-
console.warn(`[HuggingFace] Batch embedding failed: ${batchErrorMessage}, falling back to parallel individual processing`);
|
|
222
|
-
try {
|
|
223
|
-
return await Promise.all(texts.map((text) => this.embed(text)));
|
|
224
|
-
}
|
|
225
|
-
catch (individualError) {
|
|
226
|
-
const err = new Error(`HuggingFace batch embedding failed (both batch and individual attempts failed): ${batchErrorMessage}`);
|
|
227
|
-
err.cause = individualError;
|
|
228
|
-
throw err;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
getDimension() {
|
|
233
|
-
return this.dimension;
|
|
234
|
-
}
|
|
235
|
-
getProvider() {
|
|
236
|
-
return "HuggingFace";
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Get the current model ID
|
|
240
|
-
*/
|
|
241
|
-
getModel() {
|
|
242
|
-
return this.config.model ?? "MongoDB/mdbr-leaf-ir";
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Get the current dtype setting
|
|
246
|
-
*/
|
|
247
|
-
getDtype() {
|
|
248
|
-
return this.config.dtype ?? "fp32";
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Get the query prefix (if any)
|
|
252
|
-
*/
|
|
253
|
-
getQueryPrefix() {
|
|
254
|
-
return this.config.queryPrefix;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Check if model is loaded
|
|
258
|
-
*/
|
|
259
|
-
isModelLoaded() {
|
|
260
|
-
return this.model !== null && this.tokenizer !== null;
|
|
261
|
-
}
|
|
262
|
-
/**
|
|
263
|
-
* Preload the model (optional, for eager loading)
|
|
264
|
-
*/
|
|
265
|
-
async preload() {
|
|
266
|
-
await this.ensureModel();
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
exports.HuggingFaceEmbedding = HuggingFaceEmbedding;
|
|
270
|
-
//# sourceMappingURL=huggingface-embedding.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"huggingface-embedding.js","sourceRoot":"","sources":["../../src/embedding/huggingface-embedding.ts"],"names":[],"mappings":"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"}
|