@mcampa/ai-context-core 0.0.1 → 0.0.2-beta.2250c7e

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.
Files changed (109) hide show
  1. package/README.md +55 -47
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/context.d.ts +30 -5
  4. package/dist/context.d.ts.map +1 -1
  5. package/dist/context.js +160 -16
  6. package/dist/context.js.map +1 -1
  7. package/dist/embedding/base-embedding.d.ts.map +1 -1
  8. package/dist/embedding/base-embedding.js +4 -0
  9. package/dist/embedding/base-embedding.js.map +1 -1
  10. package/dist/embedding/gemini-embedding.d.ts +43 -1
  11. package/dist/embedding/gemini-embedding.d.ts.map +1 -1
  12. package/dist/embedding/gemini-embedding.js +164 -26
  13. package/dist/embedding/gemini-embedding.js.map +1 -1
  14. package/dist/embedding/huggingface-embedding.d.ts +70 -0
  15. package/dist/embedding/huggingface-embedding.d.ts.map +1 -0
  16. package/dist/embedding/huggingface-embedding.js +270 -0
  17. package/dist/embedding/huggingface-embedding.js.map +1 -0
  18. package/dist/embedding/index.d.ts +3 -2
  19. package/dist/embedding/index.d.ts.map +1 -1
  20. package/dist/embedding/index.js +3 -2
  21. package/dist/embedding/index.js.map +1 -1
  22. package/dist/embedding/ollama-embedding.d.ts +2 -1
  23. package/dist/embedding/ollama-embedding.d.ts.map +1 -1
  24. package/dist/embedding/ollama-embedding.js +2 -3
  25. package/dist/embedding/ollama-embedding.js.map +1 -1
  26. package/dist/embedding/openai-embedding.d.ts +2 -1
  27. package/dist/embedding/openai-embedding.d.ts.map +1 -1
  28. package/dist/embedding/openai-embedding.js +3 -3
  29. package/dist/embedding/openai-embedding.js.map +1 -1
  30. package/dist/embedding/voyageai-embedding.d.ts +2 -1
  31. package/dist/embedding/voyageai-embedding.d.ts.map +1 -1
  32. package/dist/embedding/voyageai-embedding.js +2 -2
  33. package/dist/embedding/voyageai-embedding.js.map +1 -1
  34. package/dist/index.d.ts +4 -4
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +4 -4
  37. package/dist/index.js.map +1 -1
  38. package/dist/splitter/ast-splitter.d.ts +1 -1
  39. package/dist/splitter/ast-splitter.d.ts.map +1 -1
  40. package/dist/splitter/ast-splitter.js +7 -7
  41. package/dist/splitter/ast-splitter.js.map +1 -1
  42. package/dist/splitter/index.d.ts +4 -4
  43. package/dist/splitter/index.d.ts.map +1 -1
  44. package/dist/splitter/index.js +1 -1
  45. package/dist/splitter/index.js.map +1 -1
  46. package/dist/splitter/langchain-splitter.d.ts +1 -1
  47. package/dist/splitter/langchain-splitter.d.ts.map +1 -1
  48. package/dist/splitter/langchain-splitter.js +2 -2
  49. package/dist/splitter/langchain-splitter.js.map +1 -1
  50. package/dist/sync/merkle.js +1 -1
  51. package/dist/sync/merkle.js.map +1 -1
  52. package/dist/sync/synchronizer.js +6 -6
  53. package/dist/sync/synchronizer.js.map +1 -1
  54. package/dist/utils/env-manager.js +4 -4
  55. package/dist/utils/env-manager.js.map +1 -1
  56. package/dist/vectordb/base/base-vector-database.d.ts +58 -0
  57. package/dist/vectordb/base/base-vector-database.d.ts.map +1 -0
  58. package/dist/vectordb/base/base-vector-database.js +32 -0
  59. package/dist/vectordb/base/base-vector-database.js.map +1 -0
  60. package/dist/vectordb/factory.d.ts +113 -0
  61. package/dist/vectordb/factory.d.ts.map +1 -0
  62. package/dist/vectordb/factory.js +170 -0
  63. package/dist/vectordb/factory.js.map +1 -0
  64. package/dist/vectordb/faiss-vectordb.d.ts +162 -0
  65. package/dist/vectordb/faiss-vectordb.d.ts.map +1 -0
  66. package/dist/vectordb/faiss-vectordb.js +777 -0
  67. package/dist/vectordb/faiss-vectordb.js.map +1 -0
  68. package/dist/vectordb/index.d.ts +13 -4
  69. package/dist/vectordb/index.d.ts.map +1 -1
  70. package/dist/vectordb/index.js +39 -5
  71. package/dist/vectordb/index.js.map +1 -1
  72. package/dist/vectordb/libsql-vectordb.d.ts +170 -0
  73. package/dist/vectordb/libsql-vectordb.d.ts.map +1 -0
  74. package/dist/vectordb/libsql-vectordb.js +837 -0
  75. package/dist/vectordb/libsql-vectordb.js.map +1 -0
  76. package/dist/vectordb/milvus-restful-vectordb.d.ts +12 -11
  77. package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -1
  78. package/dist/vectordb/milvus-restful-vectordb.js +29 -31
  79. package/dist/vectordb/milvus-restful-vectordb.js.map +1 -1
  80. package/dist/vectordb/milvus-vectordb.d.ts +12 -12
  81. package/dist/vectordb/milvus-vectordb.d.ts.map +1 -1
  82. package/dist/vectordb/milvus-vectordb.js +31 -28
  83. package/dist/vectordb/milvus-vectordb.js.map +1 -1
  84. package/dist/vectordb/qdrant-vectordb.d.ts +149 -0
  85. package/dist/vectordb/qdrant-vectordb.d.ts.map +1 -0
  86. package/dist/vectordb/qdrant-vectordb.js +856 -0
  87. package/dist/vectordb/qdrant-vectordb.js.map +1 -0
  88. package/dist/vectordb/sparse/index.d.ts +4 -0
  89. package/dist/vectordb/sparse/index.d.ts.map +1 -0
  90. package/dist/vectordb/sparse/index.js +23 -0
  91. package/dist/vectordb/sparse/index.js.map +1 -0
  92. package/dist/vectordb/sparse/simple-bm25.d.ts +115 -0
  93. package/dist/vectordb/sparse/simple-bm25.d.ts.map +1 -0
  94. package/dist/vectordb/sparse/simple-bm25.js +249 -0
  95. package/dist/vectordb/sparse/simple-bm25.js.map +1 -0
  96. package/dist/vectordb/sparse/sparse-vector-generator.d.ts +54 -0
  97. package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +1 -0
  98. package/dist/vectordb/sparse/sparse-vector-generator.js +3 -0
  99. package/dist/vectordb/sparse/sparse-vector-generator.js.map +1 -0
  100. package/dist/vectordb/sparse/types.d.ts +38 -0
  101. package/dist/vectordb/sparse/types.d.ts.map +1 -0
  102. package/dist/vectordb/sparse/types.js +3 -0
  103. package/dist/vectordb/sparse/types.js.map +1 -0
  104. package/dist/vectordb/types.d.ts +16 -16
  105. package/dist/vectordb/types.d.ts.map +1 -1
  106. package/dist/vectordb/types.js.map +1 -1
  107. package/dist/vectordb/zilliz-utils.js +3 -3
  108. package/dist/vectordb/zilliz-utils.js.map +1 -1
  109. package/package.json +32 -22
@@ -9,6 +9,8 @@ class GeminiEmbedding extends base_embedding_1.Embedding {
9
9
  this.dimension = 3072; // Default dimension for gemini-embedding-001
10
10
  this.maxTokens = 2048; // Maximum tokens for Gemini embedding models
11
11
  this.config = config;
12
+ this.maxRetries = config.maxRetries ?? 3;
13
+ this.baseDelay = config.baseDelay ?? 1000;
12
14
  this.client = new genai_1.GoogleGenAI({
13
15
  apiKey: config.apiKey,
14
16
  ...(config.baseURL && {
@@ -37,6 +39,91 @@ class GeminiEmbedding extends base_embedding_1.Embedding {
37
39
  this.maxTokens = 2048;
38
40
  }
39
41
  }
42
+ /**
43
+ * Determine if an error is retryable
44
+ * @param error Error object to check
45
+ * @returns True if error is retryable
46
+ */
47
+ isRetryableError(error) {
48
+ if (typeof error !== "object" || error === null) {
49
+ return false;
50
+ }
51
+ // Network errors
52
+ const networkErrorCodes = [
53
+ "ECONNREFUSED",
54
+ "ETIMEDOUT",
55
+ "ENOTFOUND",
56
+ "EAI_AGAIN",
57
+ ];
58
+ if ("code" in error &&
59
+ typeof error.code === "string" &&
60
+ networkErrorCodes.includes(error.code)) {
61
+ return true;
62
+ }
63
+ // HTTP status codes
64
+ const retryableStatusCodes = [429, 500, 502, 503, 504];
65
+ if ("status" in error &&
66
+ typeof error.status === "number" &&
67
+ retryableStatusCodes.includes(error.status)) {
68
+ return true;
69
+ }
70
+ // Error message patterns
71
+ const errorMessage = "message" in error && typeof error.message === "string"
72
+ ? error.message.toLowerCase()
73
+ : "";
74
+ const retryablePatterns = [
75
+ "rate limit",
76
+ "quota exceeded",
77
+ "service unavailable",
78
+ "timeout",
79
+ "connection",
80
+ ];
81
+ return retryablePatterns.some((pattern) => errorMessage.includes(pattern));
82
+ }
83
+ /**
84
+ * Sleep for specified milliseconds
85
+ * @param ms Milliseconds to sleep
86
+ */
87
+ async sleep(ms) {
88
+ return new Promise((resolve) => setTimeout(resolve, ms));
89
+ }
90
+ /**
91
+ * Execute operation with retry logic
92
+ * Only retries on retryable errors (network errors, rate limits, server errors)
93
+ * @param operation Operation to execute
94
+ * @param context Context string for error messages
95
+ * @returns Operation result
96
+ */
97
+ async executeWithRetry(operation, context) {
98
+ let lastError;
99
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
100
+ try {
101
+ return await operation();
102
+ }
103
+ catch (error) {
104
+ lastError = error;
105
+ // If error is not retryable, fail immediately
106
+ if (!this.isRetryableError(error)) {
107
+ const err = new Error(`${context}: ${error instanceof Error ? error.message : "Unknown error"}`);
108
+ err.cause = error;
109
+ throw err;
110
+ }
111
+ // If we've exhausted all retries, throw the error
112
+ if (attempt === this.maxRetries) {
113
+ const err = new Error(`${context}: ${error instanceof Error ? error.message : "Unknown error"}`);
114
+ err.cause = error;
115
+ throw err;
116
+ }
117
+ // Calculate delay with exponential backoff (capped at 10s)
118
+ const delay = Math.min(this.baseDelay * 2 ** attempt, 10000);
119
+ await this.sleep(delay);
120
+ }
121
+ }
122
+ // This should never be reached, but TypeScript needs it
123
+ const err = new Error(`${context}: ${lastError instanceof Error ? lastError.message : "Unknown error"}`);
124
+ err.cause = lastError;
125
+ throw err;
126
+ }
40
127
  async detectDimension() {
41
128
  // Gemini doesn't need dynamic detection, return configured dimension
42
129
  return this.dimension;
@@ -44,9 +131,9 @@ class GeminiEmbedding extends base_embedding_1.Embedding {
44
131
  async embed(text) {
45
132
  const processedText = this.preprocessText(text);
46
133
  const model = this.config.model || "gemini-embedding-001";
47
- try {
134
+ return this.executeWithRetry(async () => {
48
135
  const response = await this.client.models.embedContent({
49
- model: model,
136
+ model,
50
137
  contents: processedText,
51
138
  config: {
52
139
  outputDimensionality: this.config.outputDimensionality || this.dimension,
@@ -61,37 +148,58 @@ class GeminiEmbedding extends base_embedding_1.Embedding {
61
148
  vector: response.embeddings[0].values,
62
149
  dimension: response.embeddings[0].values.length,
63
150
  };
64
- }
65
- catch (error) {
66
- throw new Error(`Gemini embedding failed: ${error instanceof Error ? error.message : "Unknown error"}`);
67
- }
151
+ }, "Gemini embedding failed");
68
152
  }
69
153
  async embedBatch(texts) {
70
154
  const processedTexts = this.preprocessTexts(texts);
71
155
  const model = this.config.model || "gemini-embedding-001";
156
+ // Try batch processing with retry logic
72
157
  try {
73
- const response = await this.client.models.embedContent({
74
- model: model,
75
- contents: processedTexts,
76
- config: {
77
- outputDimensionality: this.config.outputDimensionality || this.dimension,
78
- },
79
- });
80
- if (!response.embeddings) {
81
- throw new Error("Gemini API returned invalid response");
82
- }
83
- return response.embeddings.map((embedding) => {
84
- if (!embedding.values) {
85
- throw new Error("Gemini API returned invalid embedding data");
158
+ return await this.executeWithRetry(async () => {
159
+ const response = await this.client.models.embedContent({
160
+ model,
161
+ contents: processedTexts,
162
+ config: {
163
+ outputDimensionality: this.config.outputDimensionality || this.dimension,
164
+ },
165
+ });
166
+ if (!response.embeddings) {
167
+ throw new Error("Gemini API returned invalid response");
86
168
  }
87
- return {
88
- vector: embedding.values,
89
- dimension: embedding.values.length,
90
- };
91
- });
169
+ return response.embeddings.map((embedding) => {
170
+ if (!embedding.values) {
171
+ throw new Error("Gemini API returned invalid embedding data");
172
+ }
173
+ return {
174
+ vector: embedding.values,
175
+ dimension: embedding.values.length,
176
+ };
177
+ });
178
+ }, "Gemini batch embedding failed");
92
179
  }
93
- catch (error) {
94
- throw new Error(`Gemini batch embedding failed: ${error instanceof Error ? error.message : "Unknown error"}`);
180
+ catch {
181
+ // Fallback: Process individually if batch fails after all retries
182
+ // Add delay between requests to avoid rate limiting
183
+ const results = [];
184
+ const FALLBACK_DELAY_MS = 100; // Delay between individual requests
185
+ for (let i = 0; i < processedTexts.length; i++) {
186
+ const text = processedTexts[i];
187
+ try {
188
+ // Add delay between requests (except for first)
189
+ if (i > 0) {
190
+ await new Promise((resolve) => setTimeout(resolve, FALLBACK_DELAY_MS));
191
+ }
192
+ const result = await this.embed(text);
193
+ results.push(result);
194
+ }
195
+ catch (individualError) {
196
+ // If individual request also fails, re-throw the error with cause
197
+ const error = new Error("Gemini batch embedding failed (both batch and individual attempts failed)");
198
+ error.cause = individualError;
199
+ throw error;
200
+ }
201
+ }
202
+ return results;
95
203
  }
96
204
  }
97
205
  getDimension() {
@@ -149,6 +257,36 @@ class GeminiEmbedding extends base_embedding_1.Embedding {
149
257
  const supportedDimensions = this.getSupportedDimensions();
150
258
  return supportedDimensions.includes(dimension);
151
259
  }
260
+ /**
261
+ * Get current retry configuration
262
+ * @returns Object containing maxRetries and baseDelay
263
+ */
264
+ getRetryConfig() {
265
+ return {
266
+ maxRetries: this.maxRetries,
267
+ baseDelay: this.baseDelay,
268
+ };
269
+ }
270
+ /**
271
+ * Set maximum number of retry attempts
272
+ * @param maxRetries Maximum retry attempts
273
+ */
274
+ setMaxRetries(maxRetries) {
275
+ if (maxRetries < 0) {
276
+ throw new Error("maxRetries must be non-negative");
277
+ }
278
+ this.maxRetries = maxRetries;
279
+ }
280
+ /**
281
+ * Set base delay for exponential backoff
282
+ * @param baseDelay Base delay in milliseconds
283
+ */
284
+ setBaseDelay(baseDelay) {
285
+ if (baseDelay <= 0) {
286
+ throw new Error("baseDelay must be positive");
287
+ }
288
+ this.baseDelay = baseDelay;
289
+ }
152
290
  }
153
291
  exports.GeminiEmbedding = GeminiEmbedding;
154
292
  //# sourceMappingURL=gemini-embedding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-embedding.js","sourceRoot":"","sources":["../../src/embedding/gemini-embedding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-embedding.js","sourceRoot":"","sources":["../../src/embedding/gemini-embedding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,270 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"huggingface-embedding.js","sourceRoot":"","sources":["../../src/embedding/huggingface-embedding.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from "./base-embedding";
2
+ export * from "./gemini-embedding";
3
+ export * from "./huggingface-embedding";
4
+ export * from "./ollama-embedding";
2
5
  export * from "./openai-embedding";
3
6
  export * from "./voyageai-embedding";
4
- export * from "./ollama-embedding";
5
- export * from "./gemini-embedding";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAGjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -16,9 +16,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Export base classes and interfaces
18
18
  __exportStar(require("./base-embedding"), exports);
19
+ __exportStar(require("./gemini-embedding"), exports);
20
+ __exportStar(require("./huggingface-embedding"), exports);
21
+ __exportStar(require("./ollama-embedding"), exports);
19
22
  // Implementation class exports
20
23
  __exportStar(require("./openai-embedding"), exports);
21
24
  __exportStar(require("./voyageai-embedding"), exports);
22
- __exportStar(require("./ollama-embedding"), exports);
23
- __exportStar(require("./gemini-embedding"), exports);
24
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,mDAAiC;AAEjC,+BAA+B;AAC/B,qDAAmC;AACnC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,mDAAiC;AAEjC,qDAAmC;AACnC,0DAAwC;AACxC,qDAAmC;AACnC,+BAA+B;AAC/B,qDAAmC;AACnC,uDAAqC"}
@@ -1,5 +1,6 @@
1
+ import type { EmbeddingVector } from "./base-embedding";
1
2
  import { Ollama } from "ollama";
2
- import { Embedding, EmbeddingVector } from "./base-embedding";
3
+ import { Embedding } from "./base-embedding";
3
4
  export interface OllamaEmbeddingConfig {
4
5
  model: string;
5
6
  host?: string;