@pleaseai/context-please-core 0.1.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 +24 -0
- package/README.md +287 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/context.d.ts +276 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +1072 -0
- package/dist/context.js.map +1 -0
- package/dist/embedding/base-embedding.d.ts +51 -0
- package/dist/embedding/base-embedding.d.ts.map +1 -0
- package/dist/embedding/base-embedding.js +36 -0
- package/dist/embedding/base-embedding.js.map +1 -0
- package/dist/embedding/gemini-embedding.d.ts +53 -0
- package/dist/embedding/gemini-embedding.d.ts.map +1 -0
- package/dist/embedding/gemini-embedding.js +152 -0
- package/dist/embedding/gemini-embedding.js.map +1 -0
- package/dist/embedding/index.d.ts +6 -0
- package/dist/embedding/index.d.ts.map +1 -0
- package/dist/embedding/index.js +24 -0
- package/dist/embedding/index.js.map +1 -0
- package/dist/embedding/ollama-embedding.d.ts +55 -0
- package/dist/embedding/ollama-embedding.d.ts.map +1 -0
- package/dist/embedding/ollama-embedding.js +192 -0
- package/dist/embedding/ollama-embedding.js.map +1 -0
- package/dist/embedding/openai-embedding.d.ts +36 -0
- package/dist/embedding/openai-embedding.d.ts.map +1 -0
- package/dist/embedding/openai-embedding.js +159 -0
- package/dist/embedding/openai-embedding.js.map +1 -0
- package/dist/embedding/voyageai-embedding.d.ts +44 -0
- package/dist/embedding/voyageai-embedding.d.ts.map +1 -0
- package/dist/embedding/voyageai-embedding.js +227 -0
- package/dist/embedding/voyageai-embedding.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/splitter/ast-splitter.d.ts +22 -0
- package/dist/splitter/ast-splitter.d.ts.map +1 -0
- package/dist/splitter/ast-splitter.js +234 -0
- package/dist/splitter/ast-splitter.js.map +1 -0
- package/dist/splitter/index.d.ts +41 -0
- package/dist/splitter/index.d.ts.map +1 -0
- package/dist/splitter/index.js +27 -0
- package/dist/splitter/index.js.map +1 -0
- package/dist/splitter/langchain-splitter.d.ts +13 -0
- package/dist/splitter/langchain-splitter.d.ts.map +1 -0
- package/dist/splitter/langchain-splitter.js +118 -0
- package/dist/splitter/langchain-splitter.js.map +1 -0
- package/dist/sync/merkle.d.ts +26 -0
- package/dist/sync/merkle.d.ts.map +1 -0
- package/dist/sync/merkle.js +112 -0
- package/dist/sync/merkle.js.map +1 -0
- package/dist/sync/synchronizer.d.ts +30 -0
- package/dist/sync/synchronizer.d.ts.map +1 -0
- package/dist/sync/synchronizer.js +339 -0
- package/dist/sync/synchronizer.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/env-manager.d.ts +19 -0
- package/dist/utils/env-manager.d.ts.map +1 -0
- package/dist/utils/env-manager.js +125 -0
- package/dist/utils/env-manager.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/vectordb/base/base-vector-database.d.ts +58 -0
- package/dist/vectordb/base/base-vector-database.d.ts.map +1 -0
- package/dist/vectordb/base/base-vector-database.js +32 -0
- package/dist/vectordb/base/base-vector-database.js.map +1 -0
- package/dist/vectordb/factory.d.ts +80 -0
- package/dist/vectordb/factory.d.ts.map +1 -0
- package/dist/vectordb/factory.js +89 -0
- package/dist/vectordb/factory.js.map +1 -0
- package/dist/vectordb/index.d.ts +12 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +27 -0
- package/dist/vectordb/index.js.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts +75 -0
- package/dist/vectordb/milvus-restful-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-restful-vectordb.js +707 -0
- package/dist/vectordb/milvus-restful-vectordb.js.map +1 -0
- package/dist/vectordb/milvus-vectordb.d.ts +59 -0
- package/dist/vectordb/milvus-vectordb.d.ts.map +1 -0
- package/dist/vectordb/milvus-vectordb.js +641 -0
- package/dist/vectordb/milvus-vectordb.js.map +1 -0
- package/dist/vectordb/qdrant-vectordb.d.ts +124 -0
- package/dist/vectordb/qdrant-vectordb.d.ts.map +1 -0
- package/dist/vectordb/qdrant-vectordb.js +582 -0
- package/dist/vectordb/qdrant-vectordb.js.map +1 -0
- package/dist/vectordb/sparse/index.d.ts +4 -0
- package/dist/vectordb/sparse/index.d.ts.map +1 -0
- package/dist/vectordb/sparse/index.js +23 -0
- package/dist/vectordb/sparse/index.js.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts +104 -0
- package/dist/vectordb/sparse/simple-bm25.d.ts.map +1 -0
- package/dist/vectordb/sparse/simple-bm25.js +189 -0
- package/dist/vectordb/sparse/simple-bm25.js.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts +54 -0
- package/dist/vectordb/sparse/sparse-vector-generator.d.ts.map +1 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js +3 -0
- package/dist/vectordb/sparse/sparse-vector-generator.js.map +1 -0
- package/dist/vectordb/sparse/types.d.ts +38 -0
- package/dist/vectordb/sparse/types.d.ts.map +1 -0
- package/dist/vectordb/sparse/types.js +3 -0
- package/dist/vectordb/sparse/types.js.map +1 -0
- package/dist/vectordb/types.d.ts +120 -0
- package/dist/vectordb/types.d.ts.map +1 -0
- package/dist/vectordb/types.js +9 -0
- package/dist/vectordb/types.js.map +1 -0
- package/dist/vectordb/zilliz-utils.d.ts +135 -0
- package/dist/vectordb/zilliz-utils.d.ts.map +1 -0
- package/dist/vectordb/zilliz-utils.js +192 -0
- package/dist/vectordb/zilliz-utils.js.map +1 -0
- package/package.json +61 -0
@@ -0,0 +1,582 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.QdrantVectorDatabase = void 0;
|
4
|
+
const js_client_grpc_1 = require("@qdrant/js-client-grpc");
|
5
|
+
const base_vector_database_1 = require("./base/base-vector-database");
|
6
|
+
const simple_bm25_1 = require("./sparse/simple-bm25");
|
7
|
+
/**
|
8
|
+
* Qdrant Vector Database implementation using gRPC client
|
9
|
+
*
|
10
|
+
* Features:
|
11
|
+
* - Named vectors (dense + sparse)
|
12
|
+
* - Hybrid search with RRF fusion
|
13
|
+
* - BM25 sparse vector generation
|
14
|
+
* - Self-hosted and cloud support
|
15
|
+
*
|
16
|
+
* Architecture:
|
17
|
+
* - Dense vectors: From embedding providers (OpenAI, VoyageAI, etc.)
|
18
|
+
* - Sparse vectors: Generated using SimpleBM25 for keyword matching
|
19
|
+
* - Hybrid search: Combines both using Qdrant's prefetch + RRF
|
20
|
+
*/
|
21
|
+
class QdrantVectorDatabase extends base_vector_database_1.BaseVectorDatabase {
|
22
|
+
constructor(config) {
|
23
|
+
super(config);
|
24
|
+
this.client = null;
|
25
|
+
// Named vector configurations
|
26
|
+
this.DENSE_VECTOR_NAME = 'dense';
|
27
|
+
this.SPARSE_VECTOR_NAME = 'sparse';
|
28
|
+
this.bm25Generator = new simple_bm25_1.SimpleBM25(config.bm25Config);
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Initialize Qdrant client connection
|
32
|
+
*/
|
33
|
+
async initialize() {
|
34
|
+
const resolvedAddress = await this.resolveAddress();
|
35
|
+
await this.initializeClient(resolvedAddress);
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Create Qdrant client instance
|
39
|
+
*/
|
40
|
+
async initializeClient(address) {
|
41
|
+
console.log('[QdrantDB] 🔌 Connecting to Qdrant at:', address);
|
42
|
+
// Parse address to extract host and port
|
43
|
+
const url = new URL(address.startsWith('http') ? address : `http://${address}`);
|
44
|
+
const host = url.hostname;
|
45
|
+
const port = url.port ? parseInt(url.port) : 6334;
|
46
|
+
this.client = new js_client_grpc_1.QdrantClient({
|
47
|
+
host,
|
48
|
+
port,
|
49
|
+
apiKey: this.config.apiKey,
|
50
|
+
timeout: this.config.timeout || 10000,
|
51
|
+
});
|
52
|
+
console.log('[QdrantDB] ✅ Connected to Qdrant successfully');
|
53
|
+
}
|
54
|
+
/**
|
55
|
+
* Resolve address from config
|
56
|
+
* Unlike Milvus, Qdrant doesn't have auto-provisioning
|
57
|
+
*/
|
58
|
+
async resolveAddress() {
|
59
|
+
if (!this.config.address) {
|
60
|
+
throw new Error('Qdrant address is required. Set QDRANT_URL environment variable.');
|
61
|
+
}
|
62
|
+
return this.config.address;
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Override to add client null check
|
66
|
+
*/
|
67
|
+
async ensureInitialized() {
|
68
|
+
await super.ensureInitialized();
|
69
|
+
if (!this.client) {
|
70
|
+
throw new Error('QdrantClient is not initialized');
|
71
|
+
}
|
72
|
+
}
|
73
|
+
/**
|
74
|
+
* Qdrant doesn't require explicit collection loading
|
75
|
+
* Collections are loaded on-demand automatically
|
76
|
+
*/
|
77
|
+
async ensureLoaded(collectionName) {
|
78
|
+
// No-op for Qdrant - collections are loaded automatically
|
79
|
+
return Promise.resolve();
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Create collection with dense vectors only
|
83
|
+
*/
|
84
|
+
async createCollection(collectionName, dimension, description) {
|
85
|
+
await this.ensureInitialized();
|
86
|
+
console.log('[QdrantDB] 🔧 Creating collection:', collectionName);
|
87
|
+
console.log('[QdrantDB] 📏 Vector dimension:', dimension);
|
88
|
+
await this.client.api('collections').create({
|
89
|
+
collectionName,
|
90
|
+
vectorsConfig: {
|
91
|
+
config: {
|
92
|
+
case: 'paramsMap',
|
93
|
+
value: {
|
94
|
+
map: {
|
95
|
+
[this.DENSE_VECTOR_NAME]: {
|
96
|
+
size: BigInt(dimension),
|
97
|
+
distance: 1, // Cosine = 1
|
98
|
+
},
|
99
|
+
},
|
100
|
+
},
|
101
|
+
},
|
102
|
+
},
|
103
|
+
});
|
104
|
+
console.log('[QdrantDB] ✅ Collection created successfully');
|
105
|
+
}
|
106
|
+
/**
|
107
|
+
* Create collection with hybrid search support (dense + sparse vectors)
|
108
|
+
*/
|
109
|
+
async createHybridCollection(collectionName, dimension, description) {
|
110
|
+
await this.ensureInitialized();
|
111
|
+
console.log('[QdrantDB] 🔧 Creating hybrid collection:', collectionName);
|
112
|
+
console.log('[QdrantDB] 📏 Dense vector dimension:', dimension);
|
113
|
+
await this.client.api('collections').create({
|
114
|
+
collectionName,
|
115
|
+
vectorsConfig: {
|
116
|
+
config: {
|
117
|
+
case: 'paramsMap',
|
118
|
+
value: {
|
119
|
+
map: {
|
120
|
+
[this.DENSE_VECTOR_NAME]: {
|
121
|
+
size: BigInt(dimension),
|
122
|
+
distance: 1, // Cosine = 1
|
123
|
+
},
|
124
|
+
},
|
125
|
+
},
|
126
|
+
},
|
127
|
+
},
|
128
|
+
sparseVectorsConfig: {
|
129
|
+
map: {
|
130
|
+
[this.SPARSE_VECTOR_NAME]: {
|
131
|
+
modifier: js_client_grpc_1.Modifier.Idf,
|
132
|
+
},
|
133
|
+
},
|
134
|
+
},
|
135
|
+
});
|
136
|
+
console.log('[QdrantDB] ✅ Hybrid collection created successfully');
|
137
|
+
}
|
138
|
+
/**
|
139
|
+
* Drop collection
|
140
|
+
*/
|
141
|
+
async dropCollection(collectionName) {
|
142
|
+
await this.ensureInitialized();
|
143
|
+
console.log('[QdrantDB] 🗑️ Dropping collection:', collectionName);
|
144
|
+
await this.client.api('collections').delete({
|
145
|
+
collectionName,
|
146
|
+
});
|
147
|
+
console.log('[QdrantDB] ✅ Collection dropped successfully');
|
148
|
+
}
|
149
|
+
/**
|
150
|
+
* Check if collection exists
|
151
|
+
*/
|
152
|
+
async hasCollection(collectionName) {
|
153
|
+
await this.ensureInitialized();
|
154
|
+
try {
|
155
|
+
const response = await this.client.api('collections').get({
|
156
|
+
collectionName,
|
157
|
+
});
|
158
|
+
return response.result !== undefined;
|
159
|
+
}
|
160
|
+
catch (error) {
|
161
|
+
if (error.message?.includes('not found') || error.message?.includes('does not exist')) {
|
162
|
+
return false;
|
163
|
+
}
|
164
|
+
throw error;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
/**
|
168
|
+
* List all collections
|
169
|
+
*/
|
170
|
+
async listCollections() {
|
171
|
+
await this.ensureInitialized();
|
172
|
+
const response = await this.client.api('collections').list({});
|
173
|
+
return response.collections.map((c) => c.name);
|
174
|
+
}
|
175
|
+
/**
|
176
|
+
* Insert documents with dense vectors only
|
177
|
+
*/
|
178
|
+
async insert(collectionName, documents) {
|
179
|
+
await this.ensureInitialized();
|
180
|
+
await this.ensureLoaded(collectionName);
|
181
|
+
console.log('[QdrantDB] 📝 Inserting', documents.length, 'documents into:', collectionName);
|
182
|
+
const points = documents.map(doc => ({
|
183
|
+
id: {
|
184
|
+
pointIdOptions: {
|
185
|
+
case: 'uuid',
|
186
|
+
value: doc.id,
|
187
|
+
},
|
188
|
+
},
|
189
|
+
vectors: {
|
190
|
+
vectorsOptions: {
|
191
|
+
case: 'vectors',
|
192
|
+
value: {
|
193
|
+
vectors: {
|
194
|
+
[this.DENSE_VECTOR_NAME]: {
|
195
|
+
vector: {
|
196
|
+
case: 'dense',
|
197
|
+
value: {
|
198
|
+
data: doc.vector,
|
199
|
+
},
|
200
|
+
},
|
201
|
+
},
|
202
|
+
},
|
203
|
+
},
|
204
|
+
},
|
205
|
+
},
|
206
|
+
payload: {
|
207
|
+
content: { kind: { case: 'stringValue', value: doc.content } },
|
208
|
+
relativePath: { kind: { case: 'stringValue', value: doc.relativePath } },
|
209
|
+
startLine: { kind: { case: 'integerValue', value: BigInt(doc.startLine) } },
|
210
|
+
endLine: { kind: { case: 'integerValue', value: BigInt(doc.endLine) } },
|
211
|
+
fileExtension: { kind: { case: 'stringValue', value: doc.fileExtension } },
|
212
|
+
metadata: { kind: { case: 'stringValue', value: JSON.stringify(doc.metadata) } },
|
213
|
+
},
|
214
|
+
}));
|
215
|
+
await this.client.api('points').upsert({
|
216
|
+
collectionName,
|
217
|
+
wait: true,
|
218
|
+
points,
|
219
|
+
});
|
220
|
+
console.log('[QdrantDB] ✅ Documents inserted successfully');
|
221
|
+
}
|
222
|
+
/**
|
223
|
+
* Insert documents with hybrid vectors (dense + sparse)
|
224
|
+
*/
|
225
|
+
async insertHybrid(collectionName, documents) {
|
226
|
+
await this.ensureInitialized();
|
227
|
+
await this.ensureLoaded(collectionName);
|
228
|
+
console.log('[QdrantDB] 📝 Inserting', documents.length, 'hybrid documents into:', collectionName);
|
229
|
+
// Ensure BM25 is trained before insertion
|
230
|
+
if (!this.bm25Generator.isTrained()) {
|
231
|
+
// The BM25 model must be trained on the full corpus before insertion for accurate sparse vectors.
|
232
|
+
// Training on a single batch leads to incorrect IDF scores and poor search quality.
|
233
|
+
throw new Error('BM25 generator is not trained. The caller must explicitly train it via `getBM25Generator().learn(corpus)` before calling `insertHybrid`.');
|
234
|
+
}
|
235
|
+
// Generate sparse vectors for all documents
|
236
|
+
const sparseVectors = documents.map(doc => this.bm25Generator.generate(doc.content));
|
237
|
+
const points = documents.map((doc, index) => ({
|
238
|
+
id: {
|
239
|
+
pointIdOptions: {
|
240
|
+
case: 'uuid',
|
241
|
+
value: doc.id,
|
242
|
+
},
|
243
|
+
},
|
244
|
+
vectors: {
|
245
|
+
vectorsOptions: {
|
246
|
+
case: 'vectors',
|
247
|
+
value: {
|
248
|
+
vectors: {
|
249
|
+
[this.DENSE_VECTOR_NAME]: {
|
250
|
+
vector: {
|
251
|
+
case: 'dense',
|
252
|
+
value: {
|
253
|
+
data: doc.vector,
|
254
|
+
},
|
255
|
+
},
|
256
|
+
},
|
257
|
+
[this.SPARSE_VECTOR_NAME]: {
|
258
|
+
vector: {
|
259
|
+
case: 'sparse',
|
260
|
+
value: {
|
261
|
+
indices: sparseVectors[index].indices,
|
262
|
+
values: sparseVectors[index].values,
|
263
|
+
},
|
264
|
+
},
|
265
|
+
},
|
266
|
+
},
|
267
|
+
},
|
268
|
+
},
|
269
|
+
},
|
270
|
+
payload: {
|
271
|
+
content: { kind: { case: 'stringValue', value: doc.content } },
|
272
|
+
relativePath: { kind: { case: 'stringValue', value: doc.relativePath } },
|
273
|
+
startLine: { kind: { case: 'integerValue', value: BigInt(doc.startLine) } },
|
274
|
+
endLine: { kind: { case: 'integerValue', value: BigInt(doc.endLine) } },
|
275
|
+
fileExtension: { kind: { case: 'stringValue', value: doc.fileExtension } },
|
276
|
+
metadata: { kind: { case: 'stringValue', value: JSON.stringify(doc.metadata) } },
|
277
|
+
},
|
278
|
+
}));
|
279
|
+
await this.client.api('points').upsert({
|
280
|
+
collectionName,
|
281
|
+
wait: true,
|
282
|
+
points,
|
283
|
+
});
|
284
|
+
console.log('[QdrantDB] ✅ Hybrid documents inserted successfully');
|
285
|
+
}
|
286
|
+
/**
|
287
|
+
* Search with dense vectors only
|
288
|
+
*/
|
289
|
+
async search(collectionName, queryVector, options) {
|
290
|
+
await this.ensureInitialized();
|
291
|
+
await this.ensureLoaded(collectionName);
|
292
|
+
console.log('[QdrantDB] 🔍 Searching in collection:', collectionName);
|
293
|
+
const searchParams = {
|
294
|
+
collectionName,
|
295
|
+
vector: {
|
296
|
+
name: this.DENSE_VECTOR_NAME,
|
297
|
+
data: queryVector,
|
298
|
+
},
|
299
|
+
limit: BigInt(options?.topK || 10),
|
300
|
+
withPayload: { enable: true },
|
301
|
+
};
|
302
|
+
// Apply filter if provided
|
303
|
+
if (options?.filterExpr && options.filterExpr.trim().length > 0) {
|
304
|
+
searchParams.filter = this.parseFilterExpression(options.filterExpr);
|
305
|
+
}
|
306
|
+
const results = await this.client.api('points').search(searchParams);
|
307
|
+
return results.result.map((result) => ({
|
308
|
+
document: {
|
309
|
+
id: result.id?.str || result.id?.num?.toString() || '',
|
310
|
+
vector: queryVector,
|
311
|
+
content: result.payload?.content?.stringValue || '',
|
312
|
+
relativePath: result.payload?.relativePath?.stringValue || '',
|
313
|
+
startLine: Number(result.payload?.startLine?.integerValue || 0),
|
314
|
+
endLine: Number(result.payload?.endLine?.integerValue || 0),
|
315
|
+
fileExtension: result.payload?.fileExtension?.stringValue || '',
|
316
|
+
metadata: JSON.parse(result.payload?.metadata?.stringValue || '{}'),
|
317
|
+
},
|
318
|
+
score: result.score,
|
319
|
+
}));
|
320
|
+
}
|
321
|
+
/**
|
322
|
+
* Hybrid search with dense + sparse vectors using RRF fusion
|
323
|
+
*/
|
324
|
+
async hybridSearch(collectionName, searchRequests, options) {
|
325
|
+
await this.ensureInitialized();
|
326
|
+
await this.ensureLoaded(collectionName);
|
327
|
+
console.log('[QdrantDB] 🔍 Performing hybrid search in collection:', collectionName);
|
328
|
+
// Extract dense vector and query text from search requests by inspecting data types
|
329
|
+
const denseQueryReq = searchRequests.find(req => Array.isArray(req.data));
|
330
|
+
const textQueryReq = searchRequests.find(req => typeof req.data === 'string');
|
331
|
+
if (!denseQueryReq || !textQueryReq) {
|
332
|
+
throw new Error('Hybrid search requires one dense vector request (number[] data) and one text request (string data).');
|
333
|
+
}
|
334
|
+
const denseQuery = denseQueryReq.data;
|
335
|
+
const textQuery = textQueryReq.data;
|
336
|
+
// Generate sparse vector using BM25
|
337
|
+
if (!this.bm25Generator.isTrained()) {
|
338
|
+
console.warn('[QdrantDB] ⚠️ BM25 generator not trained. Hybrid search may have reduced quality.');
|
339
|
+
}
|
340
|
+
const sparseQuery = this.bm25Generator.isTrained()
|
341
|
+
? this.bm25Generator.generate(textQuery)
|
342
|
+
: { indices: [], values: [] };
|
343
|
+
console.log('[QdrantDB] 🔍 Dense query vector length:', denseQuery.length);
|
344
|
+
console.log('[QdrantDB] 🔍 Sparse query terms:', sparseQuery.indices.length);
|
345
|
+
// Qdrant query API with prefetch for hybrid search
|
346
|
+
const queryParams = {
|
347
|
+
collectionName,
|
348
|
+
prefetch: [
|
349
|
+
{
|
350
|
+
query: {
|
351
|
+
query: {
|
352
|
+
case: 'sparseIndices',
|
353
|
+
value: {
|
354
|
+
indices: {
|
355
|
+
data: sparseQuery.indices.map(i => BigInt(i)),
|
356
|
+
},
|
357
|
+
values: {
|
358
|
+
data: sparseQuery.values,
|
359
|
+
},
|
360
|
+
},
|
361
|
+
},
|
362
|
+
},
|
363
|
+
using: this.SPARSE_VECTOR_NAME,
|
364
|
+
limit: BigInt(textQueryReq.limit || 20),
|
365
|
+
},
|
366
|
+
{
|
367
|
+
query: {
|
368
|
+
query: {
|
369
|
+
case: 'nearest',
|
370
|
+
value: {
|
371
|
+
vector: {
|
372
|
+
data: denseQuery,
|
373
|
+
},
|
374
|
+
},
|
375
|
+
},
|
376
|
+
},
|
377
|
+
using: this.DENSE_VECTOR_NAME,
|
378
|
+
limit: BigInt(denseQueryReq.limit || 20),
|
379
|
+
},
|
380
|
+
],
|
381
|
+
query: {
|
382
|
+
query: {
|
383
|
+
case: 'fusion',
|
384
|
+
value: 1, // RRF = 1
|
385
|
+
},
|
386
|
+
},
|
387
|
+
limit: BigInt(options?.limit || 10),
|
388
|
+
withPayload: { enable: true },
|
389
|
+
};
|
390
|
+
// Apply filter if provided
|
391
|
+
if (options?.filterExpr && options.filterExpr.trim().length > 0) {
|
392
|
+
queryParams.filter = this.parseFilterExpression(options.filterExpr);
|
393
|
+
}
|
394
|
+
const results = await this.client.api('points').query(queryParams);
|
395
|
+
console.log('[QdrantDB] ✅ Found', results.result.length, 'results from hybrid search');
|
396
|
+
return results.result.map((result) => ({
|
397
|
+
document: {
|
398
|
+
id: result.id?.str || result.id?.num?.toString() || '',
|
399
|
+
content: result.payload?.content?.stringValue || '',
|
400
|
+
vector: [],
|
401
|
+
relativePath: result.payload?.relativePath?.stringValue || '',
|
402
|
+
startLine: Number(result.payload?.startLine?.integerValue || 0),
|
403
|
+
endLine: Number(result.payload?.endLine?.integerValue || 0),
|
404
|
+
fileExtension: result.payload?.fileExtension?.stringValue || '',
|
405
|
+
metadata: JSON.parse(result.payload?.metadata?.stringValue || '{}'),
|
406
|
+
},
|
407
|
+
score: result.score,
|
408
|
+
}));
|
409
|
+
}
|
410
|
+
/**
|
411
|
+
* Delete documents by IDs
|
412
|
+
*/
|
413
|
+
async delete(collectionName, ids) {
|
414
|
+
await this.ensureInitialized();
|
415
|
+
await this.ensureLoaded(collectionName);
|
416
|
+
console.log('[QdrantDB] 🗑️ Deleting', ids.length, 'documents from:', collectionName);
|
417
|
+
await this.client.api('points').delete({
|
418
|
+
collectionName,
|
419
|
+
wait: true,
|
420
|
+
points: {
|
421
|
+
pointsSelectorOneOf: {
|
422
|
+
case: 'points',
|
423
|
+
value: {
|
424
|
+
ids: ids.map(id => ({
|
425
|
+
pointIdOptions: {
|
426
|
+
case: 'uuid',
|
427
|
+
value: id,
|
428
|
+
},
|
429
|
+
})),
|
430
|
+
},
|
431
|
+
},
|
432
|
+
},
|
433
|
+
});
|
434
|
+
console.log('[QdrantDB] ✅ Documents deleted successfully');
|
435
|
+
}
|
436
|
+
/**
|
437
|
+
* Query documents with filter conditions
|
438
|
+
*/
|
439
|
+
async query(collectionName, filter, outputFields, limit) {
|
440
|
+
await this.ensureInitialized();
|
441
|
+
await this.ensureLoaded(collectionName);
|
442
|
+
console.log('[QdrantDB] 📋 Querying collection:', collectionName);
|
443
|
+
const scrollParams = {
|
444
|
+
collectionName,
|
445
|
+
limit: limit || 100,
|
446
|
+
// Use outputFields to specify which payload fields to retrieve
|
447
|
+
withPayload: outputFields.length > 0
|
448
|
+
? { include: { fields: outputFields } }
|
449
|
+
: { enable: true },
|
450
|
+
withVectors: { enable: false },
|
451
|
+
};
|
452
|
+
// Parse filter expression if provided
|
453
|
+
if (filter && filter.trim().length > 0) {
|
454
|
+
scrollParams.filter = this.parseFilterExpression(filter);
|
455
|
+
}
|
456
|
+
const results = await this.client.api('points').scroll(scrollParams);
|
457
|
+
// Dynamically map results based on requested outputFields
|
458
|
+
return results.result.map((point) => {
|
459
|
+
const result = {
|
460
|
+
id: point.id?.str || point.id?.num?.toString() || '',
|
461
|
+
};
|
462
|
+
// If no specific fields requested, return all known fields
|
463
|
+
if (outputFields.length === 0) {
|
464
|
+
result.content = point.payload?.content?.stringValue;
|
465
|
+
result.relativePath = point.payload?.relativePath?.stringValue;
|
466
|
+
result.startLine = Number(point.payload?.startLine?.integerValue || 0);
|
467
|
+
result.endLine = Number(point.payload?.endLine?.integerValue || 0);
|
468
|
+
result.fileExtension = point.payload?.fileExtension?.stringValue;
|
469
|
+
result.metadata = JSON.parse(point.payload?.metadata?.stringValue || '{}');
|
470
|
+
}
|
471
|
+
else {
|
472
|
+
// Only include requested fields
|
473
|
+
for (const field of outputFields) {
|
474
|
+
if (point.payload?.[field]) {
|
475
|
+
const value = point.payload[field];
|
476
|
+
// Handle different value types
|
477
|
+
if (value.stringValue !== undefined) {
|
478
|
+
result[field] = field === 'metadata'
|
479
|
+
? JSON.parse(value.stringValue || '{}')
|
480
|
+
: value.stringValue;
|
481
|
+
}
|
482
|
+
else if (value.integerValue !== undefined) {
|
483
|
+
result[field] = Number(value.integerValue);
|
484
|
+
}
|
485
|
+
else if (value.doubleValue !== undefined) {
|
486
|
+
result[field] = value.doubleValue;
|
487
|
+
}
|
488
|
+
else if (value.boolValue !== undefined) {
|
489
|
+
result[field] = value.boolValue;
|
490
|
+
}
|
491
|
+
}
|
492
|
+
}
|
493
|
+
}
|
494
|
+
return result;
|
495
|
+
});
|
496
|
+
}
|
497
|
+
/**
|
498
|
+
* Check collection limit
|
499
|
+
* Qdrant doesn't have hard collection limits like Zilliz Cloud
|
500
|
+
*/
|
501
|
+
async checkCollectionLimit() {
|
502
|
+
// Qdrant (self-hosted or cloud) doesn't have hard collection limits
|
503
|
+
return Promise.resolve(true);
|
504
|
+
}
|
505
|
+
/**
|
506
|
+
* Parse Milvus-style filter expression to Qdrant filter format
|
507
|
+
*
|
508
|
+
* Example:
|
509
|
+
* - "fileExtension == '.ts'" -> { must: [{ key: 'fileExtension', match: { value: '.ts' } }] }
|
510
|
+
* - "fileExtension in ['.ts', '.js']" -> { must: [{ key: 'fileExtension', match: { any: ['.ts', '.js'] } }] }
|
511
|
+
*/
|
512
|
+
parseFilterExpression(expr) {
|
513
|
+
// Simple parser for common filter patterns
|
514
|
+
// Format: "field == 'value'" or "field in ['val1', 'val2']"
|
515
|
+
if (expr.includes(' in ')) {
|
516
|
+
// Handle "field in [...]" pattern
|
517
|
+
const match = expr.match(/(\w+)\s+in\s+\[(.*)\]/);
|
518
|
+
if (match) {
|
519
|
+
const field = match[1];
|
520
|
+
const values = match[2]
|
521
|
+
.split(',')
|
522
|
+
.map(v => v.trim().replace(/['"]/g, ''));
|
523
|
+
// For "IN" operator, use a "must" clause with "any" match for better performance
|
524
|
+
return {
|
525
|
+
must: [{
|
526
|
+
conditionOneOf: {
|
527
|
+
case: 'field',
|
528
|
+
value: {
|
529
|
+
key: field,
|
530
|
+
match: {
|
531
|
+
matchValue: {
|
532
|
+
case: 'any',
|
533
|
+
value: {
|
534
|
+
values: values.map(value => ({ kind: { case: 'stringValue', value } }))
|
535
|
+
}
|
536
|
+
}
|
537
|
+
}
|
538
|
+
}
|
539
|
+
}
|
540
|
+
}]
|
541
|
+
};
|
542
|
+
}
|
543
|
+
}
|
544
|
+
else if (expr.includes('==')) {
|
545
|
+
// Handle "field == value" pattern
|
546
|
+
const match = expr.match(/(\w+)\s*==\s*['"]?([^'"]+)['"]?/);
|
547
|
+
if (match) {
|
548
|
+
const field = match[1];
|
549
|
+
const value = match[2].trim();
|
550
|
+
return {
|
551
|
+
must: [
|
552
|
+
{
|
553
|
+
conditionOneOf: {
|
554
|
+
case: 'field',
|
555
|
+
value: {
|
556
|
+
key: field,
|
557
|
+
match: {
|
558
|
+
matchValue: {
|
559
|
+
case: 'keyword',
|
560
|
+
value: value
|
561
|
+
}
|
562
|
+
}
|
563
|
+
}
|
564
|
+
}
|
565
|
+
},
|
566
|
+
],
|
567
|
+
};
|
568
|
+
}
|
569
|
+
}
|
570
|
+
// If parsing fails, return undefined (no filtering)
|
571
|
+
console.warn('[QdrantDB] ⚠️ Could not parse filter expression:', expr);
|
572
|
+
return undefined;
|
573
|
+
}
|
574
|
+
/**
|
575
|
+
* Get BM25 generator (for testing/debugging)
|
576
|
+
*/
|
577
|
+
getBM25Generator() {
|
578
|
+
return this.bm25Generator;
|
579
|
+
}
|
580
|
+
}
|
581
|
+
exports.QdrantVectorDatabase = QdrantVectorDatabase;
|
582
|
+
//# sourceMappingURL=qdrant-vectordb.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"qdrant-vectordb.js","sourceRoot":"","sources":["../../src/vectordb/qdrant-vectordb.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vectordb/sparse/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,2BAA2B,CAAC;AAG1C,cAAc,eAAe,CAAC"}
|
@@ -0,0 +1,23 @@
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
// Types
|
18
|
+
__exportStar(require("./types"), exports);
|
19
|
+
// Interface
|
20
|
+
__exportStar(require("./sparse-vector-generator"), exports);
|
21
|
+
// Implementations
|
22
|
+
__exportStar(require("./simple-bm25"), exports);
|
23
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/vectordb/sparse/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,QAAQ;AACR,0CAAwB;AAExB,YAAY;AACZ,4DAA0C;AAE1C,kBAAkB;AAClB,gDAA8B"}
|