mcp-local-rag 0.1.4 → 0.2.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/README.md +26 -6
- package/dist/embedder/index.d.ts +6 -0
- package/dist/embedder/index.d.ts.map +1 -1
- package/dist/embedder/index.js +34 -7
- package/dist/embedder/index.js.map +1 -1
- package/dist/index.js +0 -0
- package/dist/server/index.d.ts +16 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +49 -1
- package/dist/server/index.js.map +1 -1
- package/dist/vectordb/index.js +2 -2
- package/dist/vectordb/index.js.map +1 -1
- package/package.json +2 -4
- package/dist/chunker.d.ts +0 -42
- package/dist/chunker.d.ts.map +0 -1
- package/dist/chunker.js +0 -68
- package/dist/chunker.js.map +0 -1
- package/dist/embedder.d.ts +0 -48
- package/dist/embedder.d.ts.map +0 -1
- package/dist/embedder.js +0 -108
- package/dist/embedder.js.map +0 -1
- package/dist/parser.d.ts +0 -92
- package/dist/parser.d.ts.map +0 -1
- package/dist/parser.js +0 -186
- package/dist/parser.js.map +0 -1
- package/dist/server.d.ts +0 -125
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -300
- package/dist/server.js.map +0 -1
- package/dist/test-helpers/test-data.d.ts +0 -31
- package/dist/test-helpers/test-data.d.ts.map +0 -1
- package/dist/test-helpers/test-data.js +0 -53
- package/dist/test-helpers/test-data.js.map +0 -1
- package/dist/test-helpers/test-utils.d.ts +0 -21
- package/dist/test-helpers/test-utils.d.ts.map +0 -1
- package/dist/test-helpers/test-utils.js +0 -35
- package/dist/test-helpers/test-utils.js.map +0 -1
- package/dist/vectordb.d.ts +0 -121
- package/dist/vectordb.d.ts.map +0 -1
- package/dist/vectordb.js +0 -243
- package/dist/vectordb.js.map +0 -1
package/README.md
CHANGED
|
@@ -62,7 +62,7 @@ This project solves these problems by running everything locally. Documents neve
|
|
|
62
62
|
|
|
63
63
|
## What You Get
|
|
64
64
|
|
|
65
|
-
The server provides
|
|
65
|
+
The server provides five tools through MCP:
|
|
66
66
|
|
|
67
67
|
**Document ingestion** handles PDF, DOCX, TXT, and Markdown files. Point it at a file, and it extracts the text, splits it into searchable chunks, generates embeddings using a local model, and stores everything in a local vector database. If you ingest the same file again, it replaces the old version—no duplicate data.
|
|
68
68
|
|
|
@@ -70,6 +70,8 @@ The server provides four tools through MCP:
|
|
|
70
70
|
|
|
71
71
|
**File management** shows what you've ingested and when. You can see how many chunks each file produced and verify everything is indexed correctly.
|
|
72
72
|
|
|
73
|
+
**File deletion** removes ingested documents from the vector database. When you delete a file, all its chunks and embeddings are permanently removed. This is useful for removing outdated documents or sensitive data you no longer want indexed.
|
|
74
|
+
|
|
73
75
|
**System status** reports on your database—document count, total chunks, memory usage. Helpful for monitoring performance or debugging issues.
|
|
74
76
|
|
|
75
77
|
All of this uses:
|
|
@@ -82,14 +84,17 @@ The result: query responses typically under 3 seconds on a standard laptop, even
|
|
|
82
84
|
|
|
83
85
|
## First Run
|
|
84
86
|
|
|
85
|
-
|
|
87
|
+
The server starts instantly, but the embedding model downloads **on first use** (when you ingest or search for the first time):
|
|
86
88
|
- **Download size**: ~90MB (model files)
|
|
87
89
|
- **Disk usage after caching**: ~120MB (includes ONNX runtime cache)
|
|
88
90
|
- **Time**: 1-2 minutes on a decent connection
|
|
91
|
+
- **First operation delay**: Your initial ingest or search request will wait for the model download to complete
|
|
92
|
+
|
|
93
|
+
You'll see a message like "Initializing model (downloading ~90MB, may take 1-2 minutes)..." in the console. The model caches in `CACHE_DIR` (default: `./models/`) for offline use.
|
|
89
94
|
|
|
90
|
-
|
|
95
|
+
**Why lazy initialization?** This approach allows the server to start immediately without upfront model loading. You only download when actually needed, making the server more responsive for quick status checks or file management operations.
|
|
91
96
|
|
|
92
|
-
**Offline Mode**: After first
|
|
97
|
+
**Offline Mode**: After first download, works completely offline—no internet required.
|
|
93
98
|
|
|
94
99
|
## Security
|
|
95
100
|
|
|
@@ -174,7 +179,7 @@ claude mcp add local-rag --scope user \
|
|
|
174
179
|
| `BASE_DIR` | Current directory | Document root directory. Server only accesses files within this path (prevents accidental system file access). | Any valid path |
|
|
175
180
|
| `DB_PATH` | `./lancedb/` | Vector database storage location. Can grow large with many documents. | Any valid path |
|
|
176
181
|
| `CACHE_DIR` | `./models/` | Model cache directory. After first download, model stays here for offline use. | Any valid path |
|
|
177
|
-
| `MODEL_NAME` | `Xenova/all-MiniLM-L6-v2` | HuggingFace model identifier. Must be Transformers.js compatible. | HF model ID |
|
|
182
|
+
| `MODEL_NAME` | `Xenova/all-MiniLM-L6-v2` | HuggingFace model identifier. Must be Transformers.js compatible. See [available models](https://huggingface.co/models?library=transformers.js&pipeline_tag=feature-extraction&sort=trending). **Note:** Changing models requires re-ingesting all documents as embeddings from different models are incompatible. | HF model ID |
|
|
178
183
|
| `MAX_FILE_SIZE` | `104857600` (100MB) | Maximum file size in bytes. Larger files rejected to prevent memory issues. | 1MB - 500MB |
|
|
179
184
|
| `CHUNK_SIZE` | `512` | Characters per chunk. Larger = more context but slower processing. | 128 - 2048 |
|
|
180
185
|
| `CHUNK_OVERLAP` | `100` | Overlap between chunks. Preserves context across boundaries. | 0 - (CHUNK_SIZE/2) |
|
|
@@ -254,6 +259,14 @@ See what's indexed:
|
|
|
254
259
|
|
|
255
260
|
This shows each file's path, how many chunks it produced, and when it was ingested.
|
|
256
261
|
|
|
262
|
+
Delete a file from the database:
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
"Delete /Users/me/docs/old-spec.pdf from the RAG system"
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
This permanently removes the file and all its chunks from the vector database. The operation is idempotent—deleting a file that doesn't exist succeeds without error.
|
|
269
|
+
|
|
257
270
|
Check system status:
|
|
258
271
|
|
|
259
272
|
```
|
|
@@ -376,7 +389,14 @@ Each module has clear boundaries:
|
|
|
376
389
|
|
|
377
390
|
### "Model download failed"
|
|
378
391
|
|
|
379
|
-
The embedding model downloads from HuggingFace on first
|
|
392
|
+
The embedding model downloads from HuggingFace on first use (when you ingest or search for the first time). If you're behind a proxy or firewall, you might need to configure network settings.
|
|
393
|
+
|
|
394
|
+
**When it happens**: Your first ingest or search operation will trigger the download. If it fails, you'll see a detailed error message with troubleshooting guidance (network issues, disk space, cache corruption).
|
|
395
|
+
|
|
396
|
+
**What to do**: The error message provides specific recommendations. Common solutions:
|
|
397
|
+
1. Check your internet connection and retry the operation
|
|
398
|
+
2. Ensure you have sufficient disk space (~120MB needed)
|
|
399
|
+
3. If problems persist, delete the cache directory and try again
|
|
380
400
|
|
|
381
401
|
Alternatively, download the model manually:
|
|
382
402
|
1. Visit https://huggingface.co/Xenova/all-MiniLM-L6-v2
|
package/dist/embedder/index.d.ts
CHANGED
|
@@ -26,12 +26,18 @@ export declare class EmbeddingError extends Error {
|
|
|
26
26
|
*/
|
|
27
27
|
export declare class Embedder {
|
|
28
28
|
private model;
|
|
29
|
+
private initPromise;
|
|
29
30
|
private readonly config;
|
|
30
31
|
constructor(config: EmbedderConfig);
|
|
31
32
|
/**
|
|
32
33
|
* Initialize Transformers.js model
|
|
33
34
|
*/
|
|
34
35
|
initialize(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Ensure model is initialized (lazy initialization)
|
|
38
|
+
* This method is called automatically by embed() and embedBatch()
|
|
39
|
+
*/
|
|
40
|
+
private ensureInitialized;
|
|
35
41
|
/**
|
|
36
42
|
* Convert single text to embedding vector
|
|
37
43
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAMD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAMD;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAoD;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAMD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAMD;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAoD;IACjE,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;;OAGG;YACW,iBAAiB;IA+B/B;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8B5C;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CA0BvD"}
|
package/dist/embedder/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Embedder implementation with Transformers.js
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Embedder = exports.EmbeddingError = void 0;
|
|
5
|
-
const transformers_1 = require("@
|
|
5
|
+
const transformers_1 = require("@huggingface/transformers");
|
|
6
6
|
// ============================================
|
|
7
7
|
// Error Classes
|
|
8
8
|
// ============================================
|
|
@@ -31,12 +31,17 @@ exports.EmbeddingError = EmbeddingError;
|
|
|
31
31
|
class Embedder {
|
|
32
32
|
constructor(config) {
|
|
33
33
|
this.model = null;
|
|
34
|
+
this.initPromise = null;
|
|
34
35
|
this.config = config;
|
|
35
36
|
}
|
|
36
37
|
/**
|
|
37
38
|
* Initialize Transformers.js model
|
|
38
39
|
*/
|
|
39
40
|
async initialize() {
|
|
41
|
+
// Skip if already initialized
|
|
42
|
+
if (this.model) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
40
45
|
try {
|
|
41
46
|
// Set cache directory BEFORE creating pipeline
|
|
42
47
|
transformers_1.env.cacheDir = this.config.cacheDir;
|
|
@@ -49,6 +54,30 @@ class Embedder {
|
|
|
49
54
|
throw new EmbeddingError(`Failed to initialize Embedder: ${error.message}`, error);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Ensure model is initialized (lazy initialization)
|
|
59
|
+
* This method is called automatically by embed() and embedBatch()
|
|
60
|
+
*/
|
|
61
|
+
async ensureInitialized() {
|
|
62
|
+
// Already initialized
|
|
63
|
+
if (this.model) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
// Initialization already in progress, wait for it
|
|
67
|
+
if (this.initPromise) {
|
|
68
|
+
await this.initPromise;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Start initialization
|
|
72
|
+
console.log('Embedder: First use detected. Initializing model (downloading ~90MB, may take 1-2 minutes)...');
|
|
73
|
+
this.initPromise = this.initialize().catch((error) => {
|
|
74
|
+
// Clear initPromise on failure to allow retry
|
|
75
|
+
this.initPromise = null;
|
|
76
|
+
// Enhance error message with detailed guidance
|
|
77
|
+
throw new EmbeddingError(`Failed to initialize embedder on first use: ${error.message}\n\nPossible causes:\n • Network connectivity issues during model download\n • Insufficient disk space (need ~90MB)\n • Corrupted model cache\n\nRecommended actions:\n 1. Check your internet connection and try again\n 2. Ensure sufficient disk space is available\n 3. If problem persists, delete cache: ${this.config.cacheDir}\n 4. Then retry your query\n`, error);
|
|
78
|
+
});
|
|
79
|
+
await this.initPromise;
|
|
80
|
+
}
|
|
52
81
|
/**
|
|
53
82
|
* Convert single text to embedding vector
|
|
54
83
|
*
|
|
@@ -56,9 +85,8 @@ class Embedder {
|
|
|
56
85
|
* @returns 384-dimensional vector
|
|
57
86
|
*/
|
|
58
87
|
async embed(text) {
|
|
59
|
-
if
|
|
60
|
-
|
|
61
|
-
}
|
|
88
|
+
// Lazy initialization: initialize on first use if not already initialized
|
|
89
|
+
await this.ensureInitialized();
|
|
62
90
|
try {
|
|
63
91
|
// Return zero vector for empty string
|
|
64
92
|
if (text.length === 0) {
|
|
@@ -84,9 +112,8 @@ class Embedder {
|
|
|
84
112
|
* @returns Array of 384-dimensional vectors
|
|
85
113
|
*/
|
|
86
114
|
async embedBatch(texts) {
|
|
87
|
-
if
|
|
88
|
-
|
|
89
|
-
}
|
|
115
|
+
// Lazy initialization: initialize on first use if not already initialized
|
|
116
|
+
await this.ensureInitialized();
|
|
90
117
|
if (texts.length === 0) {
|
|
91
118
|
return [];
|
|
92
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAE/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedder/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;;;AAE/C,4DAAyD;AAkBzD,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,MAAa,cAAe,SAAQ,KAAK;IACvC,YACE,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAA;QAFE,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AARD,wCAQC;AAED,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C;AAE/C;;;;;;;GAOG;AACH,MAAa,QAAQ;IAKnB,YAAY,MAAsB;QAJ1B,UAAK,GAAgD,IAAI,CAAA;QACzD,gBAAW,GAAyB,IAAI,CAAA;QAI9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,8BAA8B;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,+CAA+C;YAC/C,kBAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAA;YAEnC,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;YAC7E,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,CAAA;YACpE,IAAI,CAAC,KAAK,GAAG,MAAM,IAAA,uBAAQ,EAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACxE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,cAAc,CACtB,kCAAmC,KAAe,CAAC,OAAO,EAAE,EAC5D,KAAc,CACf,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB;QAC7B,sBAAsB;QACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAM;QACR,CAAC;QAED,kDAAkD;QAClD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAA;YACtB,OAAM;QACR,CAAC;QAED,uBAAuB;QACvB,OAAO,CAAC,GAAG,CACT,+FAA+F,CAChG,CAAA;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnD,8CAA8C;YAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YAEvB,+CAA+C;YAC/C,MAAM,IAAI,cAAc,CACtB,+CAAgD,KAAe,CAAC,OAAO,wTAAwT,IAAI,CAAC,MAAM,CAAC,QAAQ,gCAAgC,EACnb,KAAc,CACf,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,WAAW,CAAA;IACxB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,0EAA0E;QAC1E,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,IAAI,CAAC;YACH,sCAAsC;YACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/B,CAAC;YAED,uEAAuE;YACvE,8FAA8F;YAC9F,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAGa,CAAA;YACpC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAE7C,qCAAqC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzC,OAAO,SAAS,CAAA;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,cAAc,CACtB,iCAAkC,KAAe,CAAC,OAAO,EAAE,EAC3D,KAAc,CACf,CAAA;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,0EAA0E;QAC1E,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAe,EAAE,CAAA;YAEjC,6CAA6C;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBACvD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBAChF,UAAU,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAA;YACrC,CAAC;YAED,OAAO,UAAU,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,cAAc,CACtB,wCAAyC,KAAe,CAAC,OAAO,EAAE,EAClE,KAAc,CACf,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAzID,4BAyIC"}
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/server/index.d.ts
CHANGED
|
@@ -33,6 +33,13 @@ export interface IngestFileInput {
|
|
|
33
33
|
/** File path */
|
|
34
34
|
filePath: string;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* delete_file tool input
|
|
38
|
+
*/
|
|
39
|
+
export interface DeleteFileInput {
|
|
40
|
+
/** File path */
|
|
41
|
+
filePath: string;
|
|
42
|
+
}
|
|
36
43
|
/**
|
|
37
44
|
* ingest_file tool output
|
|
38
45
|
*/
|
|
@@ -117,6 +124,15 @@ export declare class RAGServer {
|
|
|
117
124
|
text: string;
|
|
118
125
|
}];
|
|
119
126
|
}>;
|
|
127
|
+
/**
|
|
128
|
+
* delete_file tool handler
|
|
129
|
+
*/
|
|
130
|
+
handleDeleteFile(args: DeleteFileInput): Promise<{
|
|
131
|
+
content: [{
|
|
132
|
+
type: 'text';
|
|
133
|
+
text: string;
|
|
134
|
+
}];
|
|
135
|
+
}>;
|
|
120
136
|
/**
|
|
121
137
|
* Start the server
|
|
122
138
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;;;GAQG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,eAAe;IAyBnC;;OAEG;IACH,OAAO,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/server/index.js
CHANGED
|
@@ -81,6 +81,20 @@ class RAGServer {
|
|
|
81
81
|
required: ['filePath'],
|
|
82
82
|
},
|
|
83
83
|
},
|
|
84
|
+
{
|
|
85
|
+
name: 'delete_file',
|
|
86
|
+
description: 'Delete a previously ingested file from the vector database. Removes all chunks and embeddings associated with the specified file. File path must be an absolute path. This operation is idempotent - deleting a non-existent file completes without error.',
|
|
87
|
+
inputSchema: {
|
|
88
|
+
type: 'object',
|
|
89
|
+
properties: {
|
|
90
|
+
filePath: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
description: 'Absolute path to the file to delete from the database. Example: "/Users/user/documents/manual.pdf"',
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
required: ['filePath'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
84
98
|
{
|
|
85
99
|
name: 'list_files',
|
|
86
100
|
description: 'List all ingested files in the vector database. Returns file paths and chunk counts for each document.',
|
|
@@ -100,6 +114,8 @@ class RAGServer {
|
|
|
100
114
|
return await this.handleQueryDocuments(request.params.arguments);
|
|
101
115
|
case 'ingest_file':
|
|
102
116
|
return await this.handleIngestFile(request.params.arguments);
|
|
117
|
+
case 'delete_file':
|
|
118
|
+
return await this.handleDeleteFile(request.params.arguments);
|
|
103
119
|
case 'list_files':
|
|
104
120
|
return await this.handleListFiles();
|
|
105
121
|
case 'status':
|
|
@@ -114,7 +130,6 @@ class RAGServer {
|
|
|
114
130
|
*/
|
|
115
131
|
async initialize() {
|
|
116
132
|
await this.vectorStore.initialize();
|
|
117
|
-
await this.embedder.initialize();
|
|
118
133
|
await this.chunker.initialize();
|
|
119
134
|
console.log('RAGServer initialized');
|
|
120
135
|
}
|
|
@@ -298,6 +313,39 @@ class RAGServer {
|
|
|
298
313
|
throw error;
|
|
299
314
|
}
|
|
300
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* delete_file tool handler
|
|
318
|
+
*/
|
|
319
|
+
async handleDeleteFile(args) {
|
|
320
|
+
try {
|
|
321
|
+
// Validate and normalize file path (S-002 security requirement)
|
|
322
|
+
this.parser.validateFilePath(args.filePath);
|
|
323
|
+
// Delete chunks from vector database
|
|
324
|
+
await this.vectorStore.deleteChunks(args.filePath);
|
|
325
|
+
// Return success message
|
|
326
|
+
const result = {
|
|
327
|
+
filePath: args.filePath,
|
|
328
|
+
deleted: true,
|
|
329
|
+
timestamp: new Date().toISOString(),
|
|
330
|
+
};
|
|
331
|
+
return {
|
|
332
|
+
content: [
|
|
333
|
+
{
|
|
334
|
+
type: 'text',
|
|
335
|
+
text: JSON.stringify(result, null, 2),
|
|
336
|
+
},
|
|
337
|
+
],
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
catch (error) {
|
|
341
|
+
// Error handling: suppress stack trace in production
|
|
342
|
+
const errorMessage = process.env['NODE_ENV'] === 'production'
|
|
343
|
+
? error.message
|
|
344
|
+
: error.stack || error.message;
|
|
345
|
+
console.error('Failed to delete file:', errorMessage);
|
|
346
|
+
throw new Error(`Failed to delete file: ${errorMessage}`);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
301
349
|
/**
|
|
302
350
|
* Start the server
|
|
303
351
|
*/
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":";AAAA,0CAA0C;;;AAE1C,6CAAwC;AACxC,wEAAkE;AAClE,wEAAgF;AAChF,iEAAkG;AAClG,kDAAqD;AACrD,mDAA+C;AAC/C,iDAAmD;AACnD,mDAAoE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/vectordb/index.js
CHANGED
|
@@ -75,8 +75,8 @@ class VectorStore {
|
|
|
75
75
|
const escapedFilePath = filePath.replace(/'/g, "''");
|
|
76
76
|
// LanceDB's delete method doesn't throw errors if targets don't exist,
|
|
77
77
|
// so call delete directly
|
|
78
|
-
// Note: Field names are case-sensitive,
|
|
79
|
-
await this.table.delete(
|
|
78
|
+
// Note: Field names are case-sensitive, use backticks for camelCase fields
|
|
79
|
+
await this.table.delete(`\`filePath\` = '${escapedFilePath}'`);
|
|
80
80
|
console.log(`VectorStore: Deleted chunks for file "${filePath}"`);
|
|
81
81
|
}
|
|
82
82
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;;;AAEtD,8CAAuE;AAgEvE,+CAA+C;AAC/C,gBAAgB;AAChB,+CAA+C;AAE/C;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACC,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAA;QAFE,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AARD,sCAQC;AAED,+CAA+C;AAC/C,oBAAoB;AACpB,+CAA+C;AAE/C;;;;;;;GAOG;AACH,MAAa,WAAW;IAKtB,YAAY,MAAyB;QAJ7B,OAAE,GAAsB,IAAI,CAAA;QAC5B,UAAK,GAAiB,IAAI,CAAA;QAIhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,qBAAqB;YACrB,IAAI,CAAC,EAAE,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAE3C,6CAA6C;YAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAA;YAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/C,sBAAsB;gBACtB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;gBAC3D,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;YAC9E,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,OAAO,CAAC,GAAG,CACT,uBAAuB,IAAI,CAAC,MAAM,CAAC,SAAS,2CAA2C,CACxF,CAAA;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,aAAa,CAAC,kCAAkC,EAAE,KAAc,CAAC,CAAA;QAC7E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,+DAA+D;YAC/D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;YACrE,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,6DAA6D;YAC7D,gDAAgD;YAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAEpD,uEAAuE;YACvE,0BAA0B;YAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-local-rag",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Local RAG MCP Server - Easy-to-setup document search with minimal configuration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -33,7 +33,6 @@
|
|
|
33
33
|
"watch": "tsx watch src/index.ts",
|
|
34
34
|
"type-check": "tsc --noEmit",
|
|
35
35
|
"test": "vitest run",
|
|
36
|
-
"test:ui": "vitest --ui",
|
|
37
36
|
"test:coverage": "vitest run --coverage",
|
|
38
37
|
"test:coverage:summary": "node scripts/show-coverage.js",
|
|
39
38
|
"test:coverage:clean": "rm -rf coverage .vitest-cache",
|
|
@@ -55,10 +54,10 @@
|
|
|
55
54
|
"prepare": "husky"
|
|
56
55
|
},
|
|
57
56
|
"dependencies": {
|
|
57
|
+
"@huggingface/transformers": "^3.7.6",
|
|
58
58
|
"@lancedb/lancedb": "^0.22.2",
|
|
59
59
|
"@langchain/textsplitters": "^1.0.0",
|
|
60
60
|
"@modelcontextprotocol/sdk": "^1.20.2",
|
|
61
|
-
"@xenova/transformers": "^2.17.2",
|
|
62
61
|
"langchain": "^1.0.2",
|
|
63
62
|
"mammoth": "^1.11.0",
|
|
64
63
|
"pdf-parse": "^2.4.5"
|
|
@@ -67,7 +66,6 @@
|
|
|
67
66
|
"@biomejs/biome": "^1.9.4",
|
|
68
67
|
"@types/node": "^20.0.0",
|
|
69
68
|
"@vitest/coverage-v8": "^3.2.4",
|
|
70
|
-
"@vitest/ui": "^3.2.4",
|
|
71
69
|
"c8": "^10.1.3",
|
|
72
70
|
"husky": "^9.1.7",
|
|
73
71
|
"jsdom": "^25.0.0",
|
package/dist/chunker.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DocumentChunker設定
|
|
3
|
-
*/
|
|
4
|
-
export interface ChunkerConfig {
|
|
5
|
-
/** チャンクサイズ(文字数) */
|
|
6
|
-
chunkSize: number;
|
|
7
|
-
/** オーバーラップ(文字数) */
|
|
8
|
-
chunkOverlap: number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* テキストチャンク
|
|
12
|
-
*/
|
|
13
|
-
export interface TextChunk {
|
|
14
|
-
/** チャンクのテキスト */
|
|
15
|
-
text: string;
|
|
16
|
-
/** チャンクのインデックス(0始まり) */
|
|
17
|
-
index: number;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* RecursiveCharacterTextSplitterを活用したテキストチャンキングクラス
|
|
21
|
-
*
|
|
22
|
-
* 責務:
|
|
23
|
-
* - テキストをチャンク分割(chunkSize: 512、chunkOverlap: 100)
|
|
24
|
-
* - RecursiveCharacterTextSplitterラッパー
|
|
25
|
-
*/
|
|
26
|
-
export declare class DocumentChunker {
|
|
27
|
-
private splitter;
|
|
28
|
-
private readonly config;
|
|
29
|
-
constructor(config: ChunkerConfig);
|
|
30
|
-
/**
|
|
31
|
-
* RecursiveCharacterTextSplitterを初期化する
|
|
32
|
-
*/
|
|
33
|
-
initialize(): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* テキストをチャンクに分割する
|
|
36
|
-
*
|
|
37
|
-
* @param text - 分割対象のテキスト
|
|
38
|
-
* @returns チャンクの配列(各チャンクにインデックスが付与される)
|
|
39
|
-
*/
|
|
40
|
-
chunkText(text: string): Promise<TextChunk[]>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=chunker.d.ts.map
|
package/dist/chunker.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../src/chunker.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mBAAmB;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;AAMD;;;;;;GAMG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,aAAa;IAIjC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;;;;OAKG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAgCpD"}
|
package/dist/chunker.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// src/chunker.ts - DocumentChunker implementation with RecursiveCharacterTextSplitter
|
|
3
|
-
// Design Doc: rag-mcp-server-design.md (v1.1)
|
|
4
|
-
// Task: TASK-004
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DocumentChunker = void 0;
|
|
7
|
-
const textsplitters_1 = require("@langchain/textsplitters");
|
|
8
|
-
// ============================================
|
|
9
|
-
// DocumentChunkerクラス
|
|
10
|
-
// ============================================
|
|
11
|
-
/**
|
|
12
|
-
* RecursiveCharacterTextSplitterを活用したテキストチャンキングクラス
|
|
13
|
-
*
|
|
14
|
-
* 責務:
|
|
15
|
-
* - テキストをチャンク分割(chunkSize: 512、chunkOverlap: 100)
|
|
16
|
-
* - RecursiveCharacterTextSplitterラッパー
|
|
17
|
-
*/
|
|
18
|
-
class DocumentChunker {
|
|
19
|
-
constructor(config) {
|
|
20
|
-
this.splitter = null;
|
|
21
|
-
this.config = config;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* RecursiveCharacterTextSplitterを初期化する
|
|
25
|
-
*/
|
|
26
|
-
async initialize() {
|
|
27
|
-
this.splitter = new textsplitters_1.RecursiveCharacterTextSplitter({
|
|
28
|
-
chunkSize: this.config.chunkSize,
|
|
29
|
-
chunkOverlap: this.config.chunkOverlap,
|
|
30
|
-
});
|
|
31
|
-
console.log(`DocumentChunker initialized: chunkSize=${this.config.chunkSize}, chunkOverlap=${this.config.chunkOverlap}`);
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* テキストをチャンクに分割する
|
|
35
|
-
*
|
|
36
|
-
* @param text - 分割対象のテキスト
|
|
37
|
-
* @returns チャンクの配列(各チャンクにインデックスが付与される)
|
|
38
|
-
*/
|
|
39
|
-
async chunkText(text) {
|
|
40
|
-
if (!this.splitter) {
|
|
41
|
-
throw new Error('DocumentChunker not initialized');
|
|
42
|
-
}
|
|
43
|
-
// 空文字列処理: 空配列を返す(エラーなし)
|
|
44
|
-
if (text.length === 0) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
const startTime = Date.now();
|
|
49
|
-
// テキスト分割
|
|
50
|
-
const chunks = await this.splitter.splitText(text);
|
|
51
|
-
// チャンクインデックス付与
|
|
52
|
-
const result = chunks.map((chunk, index) => ({
|
|
53
|
-
text: chunk,
|
|
54
|
-
index,
|
|
55
|
-
}));
|
|
56
|
-
const duration = Date.now() - startTime;
|
|
57
|
-
console.log(`Chunked text into ${result.length} chunks in ${duration}ms`);
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.error('Failed to chunk text:', error);
|
|
62
|
-
// エラーでも空配列を返す(エラーなし)
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
exports.DocumentChunker = DocumentChunker;
|
|
68
|
-
//# sourceMappingURL=chunker.js.map
|
package/dist/chunker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chunker.js","sourceRoot":"","sources":["../src/chunker.ts"],"names":[],"mappings":";AAAA,sFAAsF;AACtF,8CAA8C;AAC9C,iBAAiB;;;AAEjB,4DAAyE;AA0BzE,+CAA+C;AAC/C,qBAAqB;AACrB,+CAA+C;AAE/C;;;;;;GAMG;AACH,MAAa,eAAe;IAI1B,YAAY,MAAqB;QAHzB,aAAQ,GAA0C,IAAI,CAAA;QAI5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,8CAA8B,CAAC;YACjD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SACvC,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CACT,0CAA0C,IAAI,CAAC,MAAM,CAAC,SAAS,kBAAkB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAC5G,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAE5B,SAAS;YACT,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAElD,eAAe;YACf,MAAM,MAAM,GAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxD,IAAI,EAAE,KAAK;gBACX,KAAK;aACN,CAAC,CAAC,CAAA;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;YACvC,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,cAAc,QAAQ,IAAI,CAAC,CAAA;YAEzE,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;YAC7C,qBAAqB;YACrB,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;CACF;AA5DD,0CA4DC"}
|
package/dist/embedder.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Embedder設定
|
|
3
|
-
*/
|
|
4
|
-
export interface EmbedderConfig {
|
|
5
|
-
/** HuggingFaceモデルパス */
|
|
6
|
-
modelPath: string;
|
|
7
|
-
/** バッチサイズ */
|
|
8
|
-
batchSize: number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* 埋め込み生成エラー
|
|
12
|
-
*/
|
|
13
|
-
export declare class EmbeddingError extends Error {
|
|
14
|
-
readonly cause?: Error | undefined;
|
|
15
|
-
constructor(message: string, cause?: Error | undefined);
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Transformers.jsを活用した埋め込み生成クラス
|
|
19
|
-
*
|
|
20
|
-
* 責務:
|
|
21
|
-
* - 埋め込みベクトル生成(384次元)
|
|
22
|
-
* - Transformers.jsラッパー
|
|
23
|
-
* - バッチ処理(サイズ8)
|
|
24
|
-
*/
|
|
25
|
-
export declare class Embedder {
|
|
26
|
-
private model;
|
|
27
|
-
private readonly config;
|
|
28
|
-
constructor(config: EmbedderConfig);
|
|
29
|
-
/**
|
|
30
|
-
* Transformers.jsモデルを初期化する
|
|
31
|
-
*/
|
|
32
|
-
initialize(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* 単一のテキストを埋め込みベクトルに変換する
|
|
35
|
-
*
|
|
36
|
-
* @param text - テキスト
|
|
37
|
-
* @returns 384次元のベクトル
|
|
38
|
-
*/
|
|
39
|
-
embed(text: string): Promise<number[]>;
|
|
40
|
-
/**
|
|
41
|
-
* 複数のテキストをバッチ処理で埋め込みベクトルに変換する
|
|
42
|
-
*
|
|
43
|
-
* @param texts - テキストの配列
|
|
44
|
-
* @returns 384次元のベクトルの配列
|
|
45
|
-
*/
|
|
46
|
-
embedBatch(texts: string[]): Promise<number[][]>;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=embedder.d.ts.map
|
package/dist/embedder.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"embedder.d.ts","sourceRoot":"","sources":["../src/embedder.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa;IACb,SAAS,EAAE,MAAM,CAAA;CAClB;AAMD;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;aAGrB,KAAK,CAAC,EAAE,KAAK;gBAD7B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAMD;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAAoD;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;gBAE3B,MAAM,EAAE,cAAc;IAIlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;;;;OAKG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA+B5C;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;CA2BvD"}
|