vectra 0.12.2 → 0.14.0
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/LICENSE +1 -1
- package/README.md +92 -100
- package/bin/vectra.js +3 -0
- package/lib/BrowserWebFetcher.d.ts +75 -0
- package/lib/BrowserWebFetcher.d.ts.map +1 -0
- package/lib/BrowserWebFetcher.js +290 -0
- package/lib/BrowserWebFetcher.js.map +1 -0
- package/lib/FileFetcher.d.ts +5 -0
- package/lib/FileFetcher.d.ts.map +1 -0
- package/lib/FileFetcher.js +89 -0
- package/lib/FileFetcher.js.map +1 -0
- package/lib/FileFetcher.spec.d.ts +2 -0
- package/lib/FileFetcher.spec.d.ts.map +1 -0
- package/lib/FileFetcher.spec.js +244 -0
- package/lib/FileFetcher.spec.js.map +1 -0
- package/lib/FolderWatcher.d.ts +91 -0
- package/lib/FolderWatcher.d.ts.map +1 -0
- package/lib/FolderWatcher.js +304 -0
- package/lib/FolderWatcher.js.map +1 -0
- package/lib/FolderWatcher.spec.d.ts +2 -0
- package/lib/FolderWatcher.spec.d.ts.map +1 -0
- package/lib/FolderWatcher.spec.js +308 -0
- package/lib/FolderWatcher.spec.js.map +1 -0
- package/lib/GPT3Tokenizer.d.ts +9 -0
- package/lib/GPT3Tokenizer.spec.d.ts +2 -0
- package/lib/GPT3Tokenizer.spec.d.ts.map +1 -0
- package/lib/GPT3Tokenizer.spec.js +45 -0
- package/lib/GPT3Tokenizer.spec.js.map +1 -0
- package/lib/ItemSelector.d.ts +41 -0
- package/lib/ItemSelector.d.ts.map +1 -0
- package/lib/ItemSelector.js +179 -0
- package/lib/ItemSelector.js.map +1 -0
- package/lib/ItemSelector.spec.d.ts +2 -0
- package/lib/ItemSelector.spec.d.ts.map +1 -0
- package/lib/ItemSelector.spec.js +204 -0
- package/lib/ItemSelector.spec.js.map +1 -0
- package/lib/LocalDocument.d.ts +54 -0
- package/lib/LocalDocument.d.ts.map +1 -1
- package/lib/LocalDocument.js +116 -0
- package/lib/LocalDocument.js.map +1 -0
- package/lib/LocalDocument.spec.d.ts +2 -0
- package/lib/LocalDocument.spec.d.ts.map +1 -0
- package/lib/LocalDocument.spec.js +214 -0
- package/lib/LocalDocument.spec.js.map +1 -0
- package/lib/LocalDocumentIndex.d.ts +152 -0
- package/lib/LocalDocumentIndex.d.ts.map +1 -1
- package/lib/LocalDocumentIndex.js +420 -0
- package/lib/LocalDocumentIndex.js.map +1 -0
- package/lib/LocalDocumentIndex.spec.d.ts +2 -0
- package/lib/LocalDocumentIndex.spec.d.ts.map +1 -0
- package/lib/LocalDocumentIndex.spec.js +494 -0
- package/lib/LocalDocumentIndex.spec.js.map +1 -0
- package/lib/LocalDocumentResult.d.ts +66 -0
- package/lib/LocalDocumentResult.d.ts.map +1 -1
- package/lib/LocalDocumentResult.js +376 -0
- package/lib/LocalDocumentResult.js.map +1 -0
- package/lib/LocalDocumentResult.spec.d.ts +2 -0
- package/lib/LocalDocumentResult.spec.d.ts.map +1 -0
- package/lib/LocalDocumentResult.spec.js +373 -0
- package/lib/LocalDocumentResult.spec.js.map +1 -0
- package/lib/LocalEmbeddings.d.ts +59 -0
- package/lib/LocalEmbeddings.d.ts.map +1 -0
- package/lib/LocalEmbeddings.js +101 -0
- package/lib/LocalEmbeddings.js.map +1 -0
- package/lib/LocalEmbeddings.spec.d.ts +2 -0
- package/lib/LocalEmbeddings.spec.d.ts.map +1 -0
- package/lib/LocalEmbeddings.spec.js +155 -0
- package/lib/LocalEmbeddings.spec.js.map +1 -0
- package/lib/LocalIndex.d.ts +159 -0
- package/lib/LocalIndex.d.ts.map +1 -1
- package/lib/LocalIndex.js +519 -0
- package/lib/LocalIndex.js.map +1 -0
- package/lib/LocalIndex.spec.d.ts +2 -0
- package/lib/LocalIndex.spec.js +611 -9
- package/lib/LocalIndex.spec.js.map +1 -1
- package/lib/OpenAIEmbeddings.d.ts +124 -0
- package/lib/OpenAIEmbeddings.d.ts.map +1 -0
- package/lib/OpenAIEmbeddings.js +166 -0
- package/lib/OpenAIEmbeddings.js.map +1 -0
- package/lib/OpenAIEmbeddings.spec.d.ts +2 -0
- package/lib/OpenAIEmbeddings.spec.d.ts.map +1 -0
- package/lib/OpenAIEmbeddings.spec.js +298 -0
- package/lib/OpenAIEmbeddings.spec.js.map +1 -0
- package/lib/TextSplitter.d.ts +21 -0
- package/lib/TextSplitter.d.ts.map +1 -1
- package/lib/TextSplitter.js +500 -0
- package/lib/TextSplitter.js.map +1 -0
- package/lib/TextSplitter.spec.d.ts +2 -0
- package/lib/TextSplitter.spec.d.ts.map +1 -0
- package/lib/TextSplitter.spec.js +337 -0
- package/lib/TextSplitter.spec.js.map +1 -0
- package/lib/TransformersEmbeddings.d.ts +121 -0
- package/lib/TransformersEmbeddings.d.ts.map +1 -0
- package/lib/TransformersEmbeddings.js +176 -0
- package/lib/TransformersEmbeddings.js.map +1 -0
- package/lib/TransformersEmbeddings.spec.d.ts +2 -0
- package/lib/TransformersEmbeddings.spec.d.ts.map +1 -0
- package/lib/TransformersEmbeddings.spec.js +198 -0
- package/lib/TransformersEmbeddings.spec.js.map +1 -0
- package/lib/TransformersTokenizer.d.ts +33 -0
- package/lib/TransformersTokenizer.d.ts.map +1 -0
- package/lib/TransformersTokenizer.js +44 -0
- package/lib/TransformersTokenizer.js.map +1 -0
- package/lib/TransformersTokenizer.spec.d.ts +2 -0
- package/lib/TransformersTokenizer.spec.d.ts.map +1 -0
- package/lib/TransformersTokenizer.spec.js +112 -0
- package/lib/TransformersTokenizer.spec.js.map +1 -0
- package/lib/WebFetcher.d.ts +14 -0
- package/lib/WebFetcher.d.ts.map +1 -0
- package/lib/WebFetcher.js +238 -0
- package/lib/WebFetcher.js.map +1 -0
- package/lib/WebFetcher.spec.d.ts +2 -0
- package/lib/WebFetcher.spec.d.ts.map +1 -0
- package/lib/WebFetcher.spec.js +263 -0
- package/lib/WebFetcher.spec.js.map +1 -0
- package/lib/browser.d.ts +30 -0
- package/lib/browser.d.ts.map +1 -0
- package/lib/browser.js +52 -0
- package/lib/browser.js.map +1 -0
- package/lib/codecs/IndexCodec.d.ts +37 -0
- package/lib/codecs/IndexCodec.d.ts.map +1 -0
- package/lib/codecs/IndexCodec.js +3 -0
- package/lib/codecs/IndexCodec.js.map +1 -0
- package/lib/codecs/JsonCodec.d.ts +19 -0
- package/lib/codecs/JsonCodec.d.ts.map +1 -0
- package/lib/codecs/JsonCodec.js +35 -0
- package/lib/codecs/JsonCodec.js.map +1 -0
- package/lib/codecs/JsonCodec.spec.d.ts +2 -0
- package/lib/codecs/JsonCodec.spec.d.ts.map +1 -0
- package/lib/codecs/JsonCodec.spec.js +66 -0
- package/lib/codecs/JsonCodec.spec.js.map +1 -0
- package/lib/codecs/LocalIndex.protobuf.spec.d.ts +2 -0
- package/lib/codecs/LocalIndex.protobuf.spec.d.ts.map +1 -0
- package/lib/codecs/LocalIndex.protobuf.spec.js +108 -0
- package/lib/codecs/LocalIndex.protobuf.spec.js.map +1 -0
- package/lib/codecs/ProtobufCodec.d.ts +20 -0
- package/lib/codecs/ProtobufCodec.d.ts.map +1 -0
- package/lib/codecs/ProtobufCodec.js +225 -0
- package/lib/codecs/ProtobufCodec.js.map +1 -0
- package/lib/codecs/ProtobufCodec.spec.d.ts +2 -0
- package/lib/codecs/ProtobufCodec.spec.d.ts.map +1 -0
- package/lib/codecs/ProtobufCodec.spec.js +155 -0
- package/lib/codecs/ProtobufCodec.spec.js.map +1 -0
- package/lib/codecs/index.d.ts +5 -0
- package/lib/codecs/index.d.ts.map +1 -0
- package/lib/codecs/index.js +21 -0
- package/lib/codecs/index.js.map +1 -0
- package/lib/codecs/migrateIndex.d.ts +24 -0
- package/lib/codecs/migrateIndex.d.ts.map +1 -0
- package/lib/codecs/migrateIndex.js +119 -0
- package/lib/codecs/migrateIndex.js.map +1 -0
- package/lib/codecs/migrateIndex.spec.d.ts +2 -0
- package/lib/codecs/migrateIndex.spec.d.ts.map +1 -0
- package/lib/codecs/migrateIndex.spec.js +151 -0
- package/lib/codecs/migrateIndex.spec.js.map +1 -0
- package/lib/codecs/schemas/index.proto +34 -0
- package/lib/index.d.ts +20 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +36 -0
- package/lib/index.js.map +1 -0
- package/lib/internals/Colorize.d.ts +14 -0
- package/lib/internals/Colorize.d.ts.map +1 -0
- package/lib/internals/Colorize.js +69 -0
- package/lib/internals/Colorize.js.map +1 -0
- package/lib/internals/index.d.ts +3 -0
- package/lib/internals/index.d.ts.map +1 -0
- package/lib/internals/index.js +19 -0
- package/lib/internals/index.js.map +1 -0
- package/lib/internals/types.d.ts +43 -0
- package/lib/internals/types.d.ts.map +1 -0
- package/lib/internals/types.js +3 -0
- package/lib/internals/types.js.map +1 -0
- package/lib/server/IndexManager.d.ts +78 -0
- package/lib/server/IndexManager.d.ts.map +1 -0
- package/lib/server/IndexManager.js +259 -0
- package/lib/server/IndexManager.js.map +1 -0
- package/lib/server/VectraServer.d.ts +40 -0
- package/lib/server/VectraServer.d.ts.map +1 -0
- package/lib/server/VectraServer.js +151 -0
- package/lib/server/VectraServer.js.map +1 -0
- package/lib/server/VectraServer.spec.d.ts +2 -0
- package/lib/server/VectraServer.spec.d.ts.map +1 -0
- package/lib/server/VectraServer.spec.js +322 -0
- package/lib/server/VectraServer.spec.js.map +1 -0
- package/lib/server/handlers/documentHandlers.d.ts +15 -0
- package/lib/server/handlers/documentHandlers.d.ts.map +1 -0
- package/lib/server/handlers/documentHandlers.js +95 -0
- package/lib/server/handlers/documentHandlers.js.map +1 -0
- package/lib/server/handlers/helpers.d.ts +23 -0
- package/lib/server/handlers/helpers.d.ts.map +1 -0
- package/lib/server/handlers/helpers.js +138 -0
- package/lib/server/handlers/helpers.js.map +1 -0
- package/lib/server/handlers/index.d.ts +8 -0
- package/lib/server/handlers/index.d.ts.map +1 -0
- package/lib/server/handlers/index.js +22 -0
- package/lib/server/handlers/index.js.map +1 -0
- package/lib/server/handlers/indexHandlers.d.ts +14 -0
- package/lib/server/handlers/indexHandlers.d.ts.map +1 -0
- package/lib/server/handlers/indexHandlers.js +85 -0
- package/lib/server/handlers/indexHandlers.js.map +1 -0
- package/lib/server/handlers/itemHandlers.d.ts +34 -0
- package/lib/server/handlers/itemHandlers.d.ts.map +1 -0
- package/lib/server/handlers/itemHandlers.js +166 -0
- package/lib/server/handlers/itemHandlers.js.map +1 -0
- package/lib/server/handlers/lifecycleHandlers.d.ts +11 -0
- package/lib/server/handlers/lifecycleHandlers.d.ts.map +1 -0
- package/lib/server/handlers/lifecycleHandlers.js +31 -0
- package/lib/server/handlers/lifecycleHandlers.js.map +1 -0
- package/lib/server/handlers/queryHandlers.d.ts +27 -0
- package/lib/server/handlers/queryHandlers.d.ts.map +1 -0
- package/lib/server/handlers/queryHandlers.js +135 -0
- package/lib/server/handlers/queryHandlers.js.map +1 -0
- package/lib/server/handlers/statsHandlers.d.ts +17 -0
- package/lib/server/handlers/statsHandlers.d.ts.map +1 -0
- package/lib/server/handlers/statsHandlers.js +81 -0
- package/lib/server/handlers/statsHandlers.js.map +1 -0
- package/lib/server/index.d.ts +4 -0
- package/lib/server/index.d.ts.map +1 -0
- package/lib/server/index.js +23 -0
- package/lib/server/index.js.map +1 -0
- package/lib/storage/FileStorage.d.ts +92 -0
- package/lib/storage/FileStorage.d.ts.map +1 -0
- package/lib/storage/FileStorage.js +3 -0
- package/lib/storage/FileStorage.js.map +1 -0
- package/lib/storage/FileStorageUtilities.d.ts +36 -0
- package/lib/storage/FileStorageUtilities.d.ts.map +1 -0
- package/lib/storage/FileStorageUtilities.js +91 -0
- package/lib/storage/FileStorageUtilities.js.map +1 -0
- package/lib/storage/FileStorageUtilities.spec.d.ts +2 -0
- package/lib/storage/FileStorageUtilities.spec.d.ts.map +1 -0
- package/lib/storage/FileStorageUtilities.spec.js +98 -0
- package/lib/storage/FileStorageUtilities.spec.js.map +1 -0
- package/lib/storage/FileType.d.ts +29 -0
- package/lib/storage/FileType.d.ts.map +1 -0
- package/lib/storage/FileType.js +38 -0
- package/lib/storage/FileType.js.map +1 -0
- package/lib/storage/IndexedDBStorage.d.ts +47 -0
- package/lib/storage/IndexedDBStorage.d.ts.map +1 -0
- package/lib/storage/IndexedDBStorage.js +347 -0
- package/lib/storage/IndexedDBStorage.js.map +1 -0
- package/lib/storage/LocalFileStorage.browser.d.ts +19 -0
- package/lib/storage/LocalFileStorage.browser.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.browser.js +43 -0
- package/lib/storage/LocalFileStorage.browser.js.map +1 -0
- package/lib/storage/LocalFileStorage.d.ts +23 -0
- package/lib/storage/LocalFileStorage.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.js +152 -0
- package/lib/storage/LocalFileStorage.js.map +1 -0
- package/lib/storage/LocalFileStorage.spec.d.ts +2 -0
- package/lib/storage/LocalFileStorage.spec.d.ts.map +1 -0
- package/lib/storage/LocalFileStorage.spec.js +249 -0
- package/lib/storage/LocalFileStorage.spec.js.map +1 -0
- package/lib/storage/VirtualFileStorage.d.ts +18 -0
- package/lib/storage/VirtualFileStorage.d.ts.map +1 -0
- package/lib/storage/VirtualFileStorage.js +178 -0
- package/lib/storage/VirtualFileStorage.js.map +1 -0
- package/lib/storage/VirtualFileStorage.spec.d.ts +2 -0
- package/lib/storage/VirtualFileStorage.spec.d.ts.map +1 -0
- package/lib/storage/VirtualFileStorage.spec.js +302 -0
- package/lib/storage/VirtualFileStorage.spec.js.map +1 -0
- package/lib/storage/index.d.ts +6 -0
- package/lib/storage/index.d.ts.map +1 -0
- package/lib/storage/index.js +22 -0
- package/lib/storage/index.js.map +1 -0
- package/lib/templates/templates/csharp/README.md +48 -0
- package/lib/templates/templates/csharp/VectraClient.cs +234 -0
- package/lib/templates/templates/go/README.md +71 -0
- package/lib/templates/templates/go/vectra_client.go +322 -0
- package/lib/templates/templates/java/README.md +81 -0
- package/lib/templates/templates/java/VectraClient.java +232 -0
- package/lib/templates/templates/python/README.md +37 -0
- package/lib/templates/templates/python/vectra_client.py +279 -0
- package/lib/templates/templates/rust/Cargo.toml +14 -0
- package/lib/templates/templates/rust/README.md +39 -0
- package/lib/templates/templates/rust/build.rs +4 -0
- package/lib/templates/templates/rust/lib.rs +284 -0
- package/lib/templates/templates/typescript/README.md +96 -0
- package/lib/templates/templates/typescript/VectraClient.ts +374 -0
- package/lib/templates/typescript/VectraClient.d.ts +114 -0
- package/lib/templates/typescript/VectraClient.d.ts.map +1 -0
- package/lib/templates/typescript/VectraClient.js +328 -0
- package/lib/templates/typescript/VectraClient.js.map +1 -0
- package/lib/types.d.ts +153 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +18 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/pathUtils.d.ts +40 -0
- package/lib/utils/pathUtils.d.ts.map +1 -0
- package/lib/utils/pathUtils.js +98 -0
- package/lib/utils/pathUtils.js.map +1 -0
- package/lib/vectra-cli.d.ts +2 -0
- package/lib/vectra-cli.d.ts.map +1 -1
- package/lib/vectra-cli.generate.spec.d.ts +2 -0
- package/lib/vectra-cli.generate.spec.d.ts.map +1 -0
- package/lib/vectra-cli.generate.spec.js +112 -0
- package/lib/vectra-cli.generate.spec.js.map +1 -0
- package/lib/vectra-cli.js +760 -0
- package/lib/vectra-cli.js.map +1 -0
- package/lib/vectra-cli.spec.d.ts +1 -0
- package/lib/vectra-cli.spec.d.ts.map +1 -0
- package/lib/vectra-cli.spec.js +2 -0
- package/lib/vectra-cli.spec.js.map +1 -0
- package/package.json +91 -16
- package/proto/vectra_service.proto +276 -0
- package/src/BrowserWebFetcher.ts +345 -0
- package/src/FileFetcher.spec.ts +234 -0
- package/src/FileFetcher.ts +37 -25
- package/src/FolderWatcher.spec.ts +288 -0
- package/src/FolderWatcher.ts +304 -0
- package/src/GPT3Tokenizer.spec.ts +50 -0
- package/src/ItemSelector.spec.ts +252 -0
- package/src/ItemSelector.ts +163 -150
- package/src/LocalDocument.spec.ts +211 -0
- package/src/LocalDocument.ts +88 -94
- package/src/LocalDocumentIndex.spec.ts +481 -0
- package/src/LocalDocumentIndex.ts +39 -40
- package/src/LocalDocumentResult.spec.ts +373 -0
- package/src/LocalDocumentResult.ts +489 -319
- package/src/LocalEmbeddings.spec.ts +138 -0
- package/src/LocalEmbeddings.ts +120 -0
- package/src/LocalIndex.spec.ts +808 -66
- package/src/LocalIndex.ts +479 -429
- package/src/OpenAIEmbeddings.spec.ts +354 -0
- package/src/OpenAIEmbeddings.ts +26 -27
- package/src/TextSplitter.spec.ts +342 -0
- package/src/TextSplitter.ts +517 -532
- package/src/TransformersEmbeddings.spec.ts +188 -0
- package/src/TransformersEmbeddings.ts +232 -0
- package/src/TransformersTokenizer.spec.ts +143 -0
- package/src/TransformersTokenizer.ts +45 -0
- package/src/WebFetcher.spec.ts +288 -0
- package/src/WebFetcher.ts +184 -186
- package/src/browser.ts +69 -0
- package/src/codecs/IndexCodec.ts +40 -0
- package/src/codecs/JsonCodec.spec.ts +70 -0
- package/src/codecs/JsonCodec.ts +37 -0
- package/src/codecs/LocalIndex.protobuf.spec.ts +115 -0
- package/src/codecs/ProtobufCodec.spec.ts +166 -0
- package/src/codecs/ProtobufCodec.ts +193 -0
- package/src/codecs/index.ts +4 -0
- package/src/codecs/migrateIndex.spec.ts +176 -0
- package/src/codecs/migrateIndex.ts +125 -0
- package/src/codecs/schemas/index.proto +34 -0
- package/src/index.ts +9 -1
- package/src/internals/Colorize.ts +19 -16
- package/src/server/IndexManager.ts +243 -0
- package/src/server/VectraServer.spec.ts +303 -0
- package/src/server/VectraServer.ts +156 -0
- package/src/server/handlers/documentHandlers.ts +59 -0
- package/src/server/handlers/helpers.ts +93 -0
- package/src/server/handlers/index.ts +7 -0
- package/src/server/handlers/indexHandlers.ts +44 -0
- package/src/server/handlers/itemHandlers.ts +140 -0
- package/src/server/handlers/lifecycleHandlers.ts +26 -0
- package/src/server/handlers/queryHandlers.ts +96 -0
- package/src/server/handlers/statsHandlers.ts +38 -0
- package/src/server/index.ts +3 -0
- package/src/storage/FileStorage.ts +105 -0
- package/src/storage/FileStorageUtilities.spec.ts +106 -0
- package/src/storage/FileStorageUtilities.ts +77 -0
- package/src/storage/FileType.ts +61 -0
- package/src/storage/IndexedDBStorage.ts +365 -0
- package/src/storage/LocalFileStorage.browser.ts +52 -0
- package/src/storage/LocalFileStorage.spec.ts +292 -0
- package/src/storage/LocalFileStorage.ts +98 -0
- package/src/storage/VirtualFileStorage.spec.ts +307 -0
- package/src/storage/VirtualFileStorage.ts +169 -0
- package/src/storage/index.ts +5 -0
- package/src/templates/csharp/README.md +48 -0
- package/src/templates/csharp/VectraClient.cs +234 -0
- package/src/templates/go/README.md +71 -0
- package/src/templates/go/vectra_client.go +322 -0
- package/src/templates/java/README.md +81 -0
- package/src/templates/java/VectraClient.java +232 -0
- package/src/templates/python/README.md +37 -0
- package/src/templates/python/vectra_client.py +279 -0
- package/src/templates/rust/Cargo.toml +14 -0
- package/src/templates/rust/README.md +39 -0
- package/src/templates/rust/build.rs +4 -0
- package/src/templates/rust/lib.rs +284 -0
- package/src/templates/typescript/README.md +96 -0
- package/src/templates/typescript/VectraClient.ts +374 -0
- package/src/types.ts +131 -123
- package/src/utils/index.ts +1 -0
- package/src/utils/pathUtils.ts +106 -0
- package/src/vectra-cli.generate.spec.ts +72 -0
- package/src/vectra-cli.spec.ts +0 -0
- package/src/vectra-cli.ts +687 -246
|
@@ -0,0 +1,337 @@
|
|
|
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
|
+
const mocha_1 = require("mocha");
|
|
37
|
+
const assert = __importStar(require("node:assert"));
|
|
38
|
+
const TextSplitter_1 = require("./TextSplitter");
|
|
39
|
+
const charTokenizer = {
|
|
40
|
+
encode(text) {
|
|
41
|
+
return Array.from(text).map(c => c.codePointAt(0));
|
|
42
|
+
},
|
|
43
|
+
decode(tokens) {
|
|
44
|
+
return String.fromCodePoint(...tokens);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
const makeSplitter = (opts) => new TextSplitter_1.TextSplitter(Object.assign({ chunkSize: 16, chunkOverlap: 0, tokenizer: charTokenizer }, opts));
|
|
48
|
+
function joinTexts(chunks, sep = '') {
|
|
49
|
+
return chunks.map(c => c.text).join(sep);
|
|
50
|
+
}
|
|
51
|
+
(0, mocha_1.describe)('TextSplitter - full coverage suite', () => {
|
|
52
|
+
(0, mocha_1.describe)('constructor validation and defaults', () => {
|
|
53
|
+
(0, mocha_1.it)('throws when chunkSize < 1', () => {
|
|
54
|
+
assert.throws(() => new TextSplitter_1.TextSplitter({ chunkSize: 0 }), /chunkSize must be >= 1/);
|
|
55
|
+
});
|
|
56
|
+
(0, mocha_1.it)('throws when chunkOverlap < 0', () => {
|
|
57
|
+
assert.throws(() => new TextSplitter_1.TextSplitter({ chunkSize: 10, chunkOverlap: -1 }), /chunkOverlap must be >= 0/);
|
|
58
|
+
});
|
|
59
|
+
(0, mocha_1.it)('throws when chunkOverlap > chunkSize', () => {
|
|
60
|
+
assert.throws(() => new TextSplitter_1.TextSplitter({ chunkSize: 5, chunkOverlap: 6 }), /chunkOverlap must be <= chunkSize/);
|
|
61
|
+
});
|
|
62
|
+
(0, mocha_1.it)('works with default constructor and simple text', () => {
|
|
63
|
+
const splitter = new TextSplitter_1.TextSplitter();
|
|
64
|
+
const chunks = splitter.split('Hello world');
|
|
65
|
+
assert.ok(Array.isArray(chunks) && chunks.length > 0);
|
|
66
|
+
});
|
|
67
|
+
(0, mocha_1.it)('returns [] for empty input', () => {
|
|
68
|
+
const splitter = makeSplitter();
|
|
69
|
+
const chunks = splitter.split('');
|
|
70
|
+
assert.strictEqual(chunks.length, 0);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
(0, mocha_1.describe)('basic splitting, whitespace handling, and punctuation preservation', () => {
|
|
74
|
+
(0, mocha_1.it)('drops pure whitespace-only input', () => {
|
|
75
|
+
const splitter = makeSplitter();
|
|
76
|
+
assert.strictEqual(splitter.split(' \t ').length, 0);
|
|
77
|
+
assert.strictEqual(splitter.split('\n\n').length, 0);
|
|
78
|
+
assert.strictEqual(splitter.split(' \n \n ').length, 0);
|
|
79
|
+
});
|
|
80
|
+
(0, mocha_1.it)('keeps leading punctuation-only chunk ("---")', () => {
|
|
81
|
+
const splitter = makeSplitter({ chunkSize: 3 });
|
|
82
|
+
const chunks = splitter.split('---');
|
|
83
|
+
assert.deepStrictEqual(chunks.map(c => c.text), ['---']);
|
|
84
|
+
});
|
|
85
|
+
(0, mocha_1.it)('keeps punctuation-only separators (---, ***, ====) at start, middle, end', () => {
|
|
86
|
+
const splitter = makeSplitter({ chunkSize: 4 });
|
|
87
|
+
const text = ['---', 'Hello world', '***', 'Middle', '===='].join('\n');
|
|
88
|
+
const chunks = splitter.split(text);
|
|
89
|
+
const got = chunks.map(c => c.text).join('\n');
|
|
90
|
+
assert.ok(got.includes('---'));
|
|
91
|
+
assert.ok(got.includes('***'));
|
|
92
|
+
assert.ok(got.includes('===='));
|
|
93
|
+
});
|
|
94
|
+
(0, mocha_1.it)('preserves frontmatter delimiters (---) with small chunkSize and zero overlap', () => {
|
|
95
|
+
var _a;
|
|
96
|
+
const splitter = makeSplitter({ chunkSize: 12 });
|
|
97
|
+
const md = [
|
|
98
|
+
'---',
|
|
99
|
+
'title: Test',
|
|
100
|
+
'tags: [a, b]',
|
|
101
|
+
'---',
|
|
102
|
+
'# Heading',
|
|
103
|
+
'Body text goes here.',
|
|
104
|
+
].join('\n');
|
|
105
|
+
const chunks = splitter.split(md);
|
|
106
|
+
const joined = joinTexts(chunks, '\n');
|
|
107
|
+
const delimiterCount = ((_a = joined.match(/^---$/gm)) !== null && _a !== void 0 ? _a : []).length;
|
|
108
|
+
assert.strictEqual(delimiterCount, 2);
|
|
109
|
+
});
|
|
110
|
+
(0, mocha_1.it)('keeps trailing punctuation-only chunk', () => {
|
|
111
|
+
const splitter = makeSplitter({ chunkSize: 4 });
|
|
112
|
+
const chunks = splitter.split('Content\n---');
|
|
113
|
+
assert.ok(chunks.some(c => c.text.includes('---')));
|
|
114
|
+
});
|
|
115
|
+
(0, mocha_1.it)('still returns alphanumeric chunks normally', () => {
|
|
116
|
+
const splitter = makeSplitter({ chunkSize: 5 });
|
|
117
|
+
const chunks = splitter.split('abcde fghij');
|
|
118
|
+
const joined = joinTexts(chunks, ' ');
|
|
119
|
+
assert.ok(joined.includes('abcde'));
|
|
120
|
+
assert.ok(joined.includes('fghij'));
|
|
121
|
+
});
|
|
122
|
+
(0, mocha_1.it)('does not regress with non-zero overlap and preserves punctuation-only chunk', () => {
|
|
123
|
+
const splitter = makeSplitter({ chunkSize: 5, chunkOverlap: 2 });
|
|
124
|
+
const chunks = splitter.split('---\nabcdef');
|
|
125
|
+
assert.ok(chunks.some(c => c.text.includes('---')));
|
|
126
|
+
});
|
|
127
|
+
(0, mocha_1.it)('handles multiple punctuation-only separators interleaved with content', () => {
|
|
128
|
+
const splitter = makeSplitter({ chunkSize: 8 });
|
|
129
|
+
const text = ['***', 'A', '---', 'B', '====', 'C'].join('\n');
|
|
130
|
+
const chunks = splitter.split(text);
|
|
131
|
+
const joined = joinTexts(chunks, '\n');
|
|
132
|
+
assert.ok(joined.includes('***'));
|
|
133
|
+
assert.ok(joined.includes('---'));
|
|
134
|
+
assert.ok(joined.includes('===='));
|
|
135
|
+
assert.ok(joined.includes('\nA\n'));
|
|
136
|
+
assert.ok(joined.includes('\nB\n'));
|
|
137
|
+
assert.ok(joined.includes('\nC'));
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
(0, mocha_1.describe)('keepSeparators vs joiner behavior and merging', () => {
|
|
141
|
+
(0, mocha_1.it)('when keepSeparators=false, merges adjacent content with a space joiner across newline separator', () => {
|
|
142
|
+
const splitter = makeSplitter({ keepSeparators: false, chunkSize: 50 });
|
|
143
|
+
const text = 'Hello\nWorld';
|
|
144
|
+
const chunks = splitter.split(text);
|
|
145
|
+
// Should merge into a single chunk with a space instead of newline
|
|
146
|
+
assert.strictEqual(chunks.length, 1);
|
|
147
|
+
assert.strictEqual(chunks[0].text, 'Hello World');
|
|
148
|
+
// startPos/endPos should reflect original indices
|
|
149
|
+
assert.strictEqual(chunks[0].startPos, 0);
|
|
150
|
+
assert.strictEqual(chunks[0].endPos, text.length - 1);
|
|
151
|
+
});
|
|
152
|
+
(0, mocha_1.it)('when keepSeparators=true, retains separators inline', () => {
|
|
153
|
+
const splitter = makeSplitter({ keepSeparators: true, chunkSize: 50 });
|
|
154
|
+
const text = 'Hello\nWorld\n';
|
|
155
|
+
const chunks = splitter.split(text);
|
|
156
|
+
const joined = joinTexts(chunks, '');
|
|
157
|
+
// Newlines should be preserved in output
|
|
158
|
+
assert.ok(joined.includes('Hello\n'));
|
|
159
|
+
assert.ok(joined.includes('World\n'));
|
|
160
|
+
});
|
|
161
|
+
(0, mocha_1.it)('does not merge when token budget would be exceeded', () => {
|
|
162
|
+
// Very small chunkSize to force non-merge
|
|
163
|
+
const splitter = makeSplitter({ chunkSize: 3, keepSeparators: false });
|
|
164
|
+
const text = 'ABCD\nEFG';
|
|
165
|
+
const chunks = splitter.split(text);
|
|
166
|
+
// Expect multiple chunks due to budget
|
|
167
|
+
assert.ok(chunks.length >= 2);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
(0, mocha_1.describe)('custom separators and precedence over docType', () => {
|
|
171
|
+
(0, mocha_1.it)('custom separators override docType separators (keepSeparators=false)', () => {
|
|
172
|
+
const splitter = makeSplitter({ docType: 'markdown', separators: ['||'], keepSeparators: false });
|
|
173
|
+
const chunks = splitter.split('A||B||C');
|
|
174
|
+
const joined = joinTexts(chunks, '');
|
|
175
|
+
assert.ok(!joined.includes('||'), 'custom separator should be removed');
|
|
176
|
+
assert.ok(joined.includes('ABC'));
|
|
177
|
+
});
|
|
178
|
+
(0, mocha_1.it)('custom separators can be preserved with keepSeparators=true', () => {
|
|
179
|
+
const splitter = makeSplitter({ separators: ['||'], keepSeparators: true });
|
|
180
|
+
const chunks = splitter.split('A||B||C');
|
|
181
|
+
const joined = joinTexts(chunks, '');
|
|
182
|
+
assert.ok(joined.includes('A||'));
|
|
183
|
+
assert.ok(joined.includes('B||'));
|
|
184
|
+
assert.ok(joined.endsWith('C'));
|
|
185
|
+
});
|
|
186
|
+
(0, mocha_1.it)('inline separators with no surrounding whitespace are preserved/dropped based on config', () => {
|
|
187
|
+
const inline = '---Hello---World---';
|
|
188
|
+
const keep = makeSplitter({ keepSeparators: true, chunkSize: 64 });
|
|
189
|
+
const kept = joinTexts(keep.split(inline), '');
|
|
190
|
+
assert.ok(kept.includes('---Hello---World---'));
|
|
191
|
+
const drop = makeSplitter({ keepSeparators: false, chunkSize: 64 });
|
|
192
|
+
const dropped = joinTexts(drop.split(inline), '');
|
|
193
|
+
assert.ok(!dropped.includes('---'));
|
|
194
|
+
assert.ok(dropped.includes('Hello') && dropped.includes('World'));
|
|
195
|
+
});
|
|
196
|
+
(0, mocha_1.it)('multiple consecutive separators do not produce empty chunks', () => {
|
|
197
|
+
const splitter = makeSplitter({ keepSeparators: true, chunkSize: 64 });
|
|
198
|
+
const text = ['---', '***', '===='].join('\n');
|
|
199
|
+
const chunks = splitter.split(text);
|
|
200
|
+
assert.ok(chunks.length >= 3);
|
|
201
|
+
assert.ok(chunks.some(c => c.text.includes('---')));
|
|
202
|
+
assert.ok(chunks.some(c => c.text.includes('***')));
|
|
203
|
+
assert.ok(chunks.some(c => c.text.includes('====')));
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
(0, mocha_1.describe)('splitBySpaces coverage (sep === " ")', () => {
|
|
207
|
+
(0, mocha_1.it)('token window path: tokens.length <= chunkSize triggers single part then break', () => {
|
|
208
|
+
const splitter = makeSplitter({ separators: [' '], chunkSize: 100 });
|
|
209
|
+
const text = 'a b c';
|
|
210
|
+
const chunks = splitter.split(text);
|
|
211
|
+
// With large chunkSize and only space separator, it should come out as one chunk
|
|
212
|
+
assert.strictEqual(chunks.length, 1);
|
|
213
|
+
assert.strictEqual(chunks[0].text, text);
|
|
214
|
+
});
|
|
215
|
+
(0, mocha_1.it)('token window path: tokens.length > chunkSize triggers multiple parts', () => {
|
|
216
|
+
const splitter = makeSplitter({ separators: [' '], chunkSize: 4 }); // small window
|
|
217
|
+
const text = 'abcdefghij'; // 10 chars -> 3 parts
|
|
218
|
+
const chunks = splitter.split(text);
|
|
219
|
+
assert.ok(chunks.length >= 3, 'should produce multiple chunks from token windows');
|
|
220
|
+
assert.strictEqual(joinTexts(chunks, ''), text);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
(0, mocha_1.describe)('base case path (no separators) and cutting in half', () => {
|
|
224
|
+
(0, mocha_1.it)('with separators: [] uses cut-in-half strategy and merges back under budget', () => {
|
|
225
|
+
const splitter = makeSplitter({ separators: [], chunkSize: 100, keepSeparators: false });
|
|
226
|
+
const text = 'HelloWorld';
|
|
227
|
+
const chunks = splitter.split(text);
|
|
228
|
+
// Expect merged single chunk but with a space joiner introduced by combineChunks
|
|
229
|
+
assert.strictEqual(chunks.length, 1);
|
|
230
|
+
assert.strictEqual(chunks[0].text.replace(/\s/g, ''), text);
|
|
231
|
+
});
|
|
232
|
+
(0, mocha_1.it)('optimization branch: chunk.length/6 > chunkSize triggers deeper recursion', () => {
|
|
233
|
+
const splitter = makeSplitter({ separators: ['\n'], chunkSize: 1 });
|
|
234
|
+
const text = 'x'.repeat(20); // 20/6 > 1 -> triggers optimization
|
|
235
|
+
const chunks = splitter.split(text);
|
|
236
|
+
assert.ok(chunks.length > 1, 'should split into multiple chunks under heavy optimization');
|
|
237
|
+
assert.strictEqual(joinTexts(chunks, ''), text);
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
(0, mocha_1.describe)('overlap behavior', () => {
|
|
241
|
+
(0, mocha_1.it)('adds startOverlap and endOverlap tokens between adjacent chunks', () => {
|
|
242
|
+
const chunkSize = 3;
|
|
243
|
+
const overlap = 2;
|
|
244
|
+
const splitter = makeSplitter({ chunkSize, chunkOverlap: overlap, separators: [], keepSeparators: false });
|
|
245
|
+
const text = 'abcdefghi'; // will be split by halves recursively then sized by budget
|
|
246
|
+
const chunks = splitter.split(text);
|
|
247
|
+
assert.ok(chunks.length >= 2);
|
|
248
|
+
for (let i = 1; i < chunks.length; i++) {
|
|
249
|
+
const prev = chunks[i - 1];
|
|
250
|
+
const curr = chunks[i];
|
|
251
|
+
const next = chunks[i + 1];
|
|
252
|
+
// startOverlap should match last 'overlap' tokens of prev
|
|
253
|
+
const prevTail = prev.tokens.slice(-overlap);
|
|
254
|
+
assert.deepStrictEqual(curr.startOverlap, prevTail.slice(0, curr.startOverlap.length));
|
|
255
|
+
// endOverlap should match first 'overlap' tokens of next (or [])
|
|
256
|
+
if (next) {
|
|
257
|
+
const nextHead = next.tokens.slice(0, overlap);
|
|
258
|
+
assert.deepStrictEqual(curr.endOverlap, nextHead.slice(0, curr.endOverlap.length));
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
assert.deepStrictEqual(curr.endOverlap, []);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
(0, mocha_1.it)('handles maximal overlap (chunkOverlap = chunkSize)', () => {
|
|
266
|
+
const chunkSize = 4;
|
|
267
|
+
const overlap = 4;
|
|
268
|
+
const splitter = makeSplitter({ chunkSize, chunkOverlap: overlap, separators: [], keepSeparators: false });
|
|
269
|
+
const text = 'abcdefgh';
|
|
270
|
+
const chunks = splitter.split(text);
|
|
271
|
+
assert.ok(chunks.length >= 2);
|
|
272
|
+
for (let i = 1; i < chunks.length; i++) {
|
|
273
|
+
const prevTail = chunks[i - 1].tokens.slice(-overlap);
|
|
274
|
+
assert.deepStrictEqual(chunks[i].startOverlap, prevTail.slice(0, chunks[i].startOverlap.length));
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
});
|
|
278
|
+
(0, mocha_1.describe)('docType-specific separators coverage', () => {
|
|
279
|
+
const docTypes = [
|
|
280
|
+
'cpp',
|
|
281
|
+
'go',
|
|
282
|
+
'typescript', // covers java/c#/cs/ts/tsx/typescript grouped case
|
|
283
|
+
'javascript',
|
|
284
|
+
'php',
|
|
285
|
+
'proto',
|
|
286
|
+
'python',
|
|
287
|
+
'rst',
|
|
288
|
+
'ruby',
|
|
289
|
+
'rust',
|
|
290
|
+
'scala',
|
|
291
|
+
'swift',
|
|
292
|
+
'markdown',
|
|
293
|
+
'latex',
|
|
294
|
+
'html',
|
|
295
|
+
'sol',
|
|
296
|
+
// default/fallback
|
|
297
|
+
'__default__',
|
|
298
|
+
];
|
|
299
|
+
for (const dt of docTypes) {
|
|
300
|
+
(0, mocha_1.it)(`constructs with docType: ${dt}`, () => {
|
|
301
|
+
const opts = dt === '__default__' ? {} : { docType: dt };
|
|
302
|
+
const splitter = new TextSplitter_1.TextSplitter(Object.assign({ chunkSize: 64, chunkOverlap: 0, tokenizer: charTokenizer }, opts));
|
|
303
|
+
const chunks = splitter.split('sample');
|
|
304
|
+
assert.ok(chunks.length >= 1);
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
(0, mocha_1.describe)('tokenizer injection behavior', () => {
|
|
309
|
+
(0, mocha_1.it)('respects a custom tokenizer that alters token counts', () => {
|
|
310
|
+
// Tokenizer that treats every character as two tokens (simulate heavier tokenization)
|
|
311
|
+
const heavyTokenizer = {
|
|
312
|
+
encode(text) {
|
|
313
|
+
const out = [];
|
|
314
|
+
for (const c of Array.from(text)) {
|
|
315
|
+
const code = c.codePointAt(0);
|
|
316
|
+
out.push(code, code + 1); // 2 tokens per char
|
|
317
|
+
}
|
|
318
|
+
return out;
|
|
319
|
+
},
|
|
320
|
+
decode(tokens) {
|
|
321
|
+
// Decode by taking every other token
|
|
322
|
+
const chars = [];
|
|
323
|
+
for (let i = 0; i < tokens.length; i += 2) {
|
|
324
|
+
chars.push(tokens[i]);
|
|
325
|
+
}
|
|
326
|
+
return String.fromCodePoint(...chars);
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
const splitter = new TextSplitter_1.TextSplitter({ chunkSize: 6, chunkOverlap: 0, tokenizer: heavyTokenizer });
|
|
330
|
+
const text = 'abcdef'; // 6 chars -> 12 tokens -> will require splitting
|
|
331
|
+
const chunks = splitter.split(text);
|
|
332
|
+
assert.ok(chunks.length > 1, 'heavier tokenization should force more chunks');
|
|
333
|
+
assert.strictEqual(joinTexts(chunks, ''), text);
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
});
|
|
337
|
+
//# sourceMappingURL=TextSplitter.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextSplitter.spec.js","sourceRoot":"","sources":["../src/TextSplitter.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { EmbeddingsModel, EmbeddingsResponse } from "./types";
|
|
2
|
+
import { TransformersTokenizer } from "./TransformersTokenizer";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for TransformersEmbeddings.
|
|
5
|
+
*/
|
|
6
|
+
export interface TransformersEmbeddingsOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Optional. Model name/path to use for embeddings.
|
|
9
|
+
* @remarks
|
|
10
|
+
* Common models:
|
|
11
|
+
* - 'Xenova/all-MiniLM-L6-v2' (384 dimensions, fast, good quality)
|
|
12
|
+
* - 'Xenova/bge-small-en-v1.5' (384 dimensions, better quality)
|
|
13
|
+
* - 'Xenova/bge-base-en-v1.5' (768 dimensions, best quality)
|
|
14
|
+
* @default 'Xenova/all-MiniLM-L6-v2'
|
|
15
|
+
*/
|
|
16
|
+
model?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Optional. Maximum number of tokens that can be sent to the embedding model.
|
|
19
|
+
* @remarks
|
|
20
|
+
* This affects batching behavior in LocalDocumentIndex.
|
|
21
|
+
* Most small models support 512 tokens.
|
|
22
|
+
* @default 512
|
|
23
|
+
*/
|
|
24
|
+
maxTokens?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Optional. Device to run inference on.
|
|
27
|
+
* @remarks
|
|
28
|
+
* - 'auto': Automatically select the best available device
|
|
29
|
+
* - 'gpu': Use GPU (WebGPU in browser, CUDA in Node.js if available)
|
|
30
|
+
* - 'cpu': Use CPU (most compatible)
|
|
31
|
+
* - 'wasm': Use WebAssembly
|
|
32
|
+
* @default 'auto'
|
|
33
|
+
*/
|
|
34
|
+
device?: 'auto' | 'gpu' | 'cpu' | 'wasm';
|
|
35
|
+
/**
|
|
36
|
+
* Optional. Data type for model weights.
|
|
37
|
+
* @remarks
|
|
38
|
+
* - 'fp32': Full precision (best quality, largest size)
|
|
39
|
+
* - 'fp16': Half precision (good quality, smaller)
|
|
40
|
+
* - 'q8': 8-bit quantization (good quality, smaller)
|
|
41
|
+
* - 'q4': 4-bit quantization (fastest, smallest, lower quality)
|
|
42
|
+
* @default 'fp32'
|
|
43
|
+
*/
|
|
44
|
+
dtype?: 'fp32' | 'fp16' | 'q8' | 'q4';
|
|
45
|
+
/**
|
|
46
|
+
* Optional. Whether to normalize embeddings to unit length.
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
49
|
+
normalize?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Optional. Pooling strategy for token embeddings.
|
|
52
|
+
* @remarks
|
|
53
|
+
* - 'mean': Mean pooling (default, recommended)
|
|
54
|
+
* - 'cls': Use [CLS] token embedding
|
|
55
|
+
* @default 'mean'
|
|
56
|
+
*/
|
|
57
|
+
pooling?: 'mean' | 'cls';
|
|
58
|
+
/**
|
|
59
|
+
* Optional. Callback for tracking model download/load progress.
|
|
60
|
+
*/
|
|
61
|
+
progressCallback?: (progress: {
|
|
62
|
+
status: string;
|
|
63
|
+
progress?: number;
|
|
64
|
+
file?: string;
|
|
65
|
+
}) => void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* An embeddings model using Transformers.js for local, offline inference.
|
|
69
|
+
* @remarks
|
|
70
|
+
* Requires @huggingface/transformers as a peer dependency.
|
|
71
|
+
* Use the static `create()` method to instantiate.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const embeddings = await TransformersEmbeddings.create({
|
|
76
|
+
* model: 'Xenova/all-MiniLM-L6-v2'
|
|
77
|
+
* });
|
|
78
|
+
*
|
|
79
|
+
* const index = new LocalDocumentIndex({
|
|
80
|
+
* folderPath: 'my-index',
|
|
81
|
+
* embeddings: embeddings,
|
|
82
|
+
* tokenizer: embeddings.getTokenizer()
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare class TransformersEmbeddings implements EmbeddingsModel {
|
|
87
|
+
private readonly _extractor;
|
|
88
|
+
private readonly _tokenizer;
|
|
89
|
+
private readonly _options;
|
|
90
|
+
readonly maxTokens: number;
|
|
91
|
+
/**
|
|
92
|
+
* Private constructor - use TransformersEmbeddings.create() instead.
|
|
93
|
+
*/
|
|
94
|
+
private constructor();
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new TransformersEmbeddings instance.
|
|
97
|
+
* @param options Configuration options.
|
|
98
|
+
* @returns Promise resolving to initialized TransformersEmbeddings instance.
|
|
99
|
+
* @throws Error if @huggingface/transformers is not installed.
|
|
100
|
+
*/
|
|
101
|
+
static create(options?: TransformersEmbeddingsOptions): Promise<TransformersEmbeddings>;
|
|
102
|
+
/**
|
|
103
|
+
* Returns a tokenizer that uses the same tokenization as this embedding model.
|
|
104
|
+
* @remarks
|
|
105
|
+
* Use this tokenizer with LocalDocumentIndex to ensure text chunking
|
|
106
|
+
* aligns with the embedding model's token boundaries.
|
|
107
|
+
* @returns TransformersTokenizer instance.
|
|
108
|
+
*/
|
|
109
|
+
getTokenizer(): TransformersTokenizer;
|
|
110
|
+
/**
|
|
111
|
+
* Creates embeddings for the given inputs.
|
|
112
|
+
* @param inputs Text inputs to create embeddings for.
|
|
113
|
+
* @returns EmbeddingsResponse with status and generated embeddings.
|
|
114
|
+
*/
|
|
115
|
+
createEmbeddings(inputs: string | string[]): Promise<EmbeddingsResponse>;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the model name being used.
|
|
118
|
+
*/
|
|
119
|
+
get model(): string;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=TransformersEmbeddings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformersEmbeddings.d.ts","sourceRoot":"","sources":["../src/TransformersEmbeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAYhE;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAEzC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8H;IAEvJ,SAAgB,SAAS,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAO;IAWP;;;;;OAKG;WACiB,MAAM,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiDpG;;;;;;OAMG;IACI,YAAY,IAAI,qBAAqB;IAI5C;;;;OAIG;IACU,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkCrF;;OAEG;IACH,IAAW,KAAK,IAAI,MAAM,CAEzB;CACJ"}
|