@mhalder/qdrant-mcp-server 1.1.0 → 1.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/CHANGELOG.md +87 -69
- package/CONTRIBUTING.md +81 -92
- package/README.md +99 -634
- package/biome.json +34 -0
- package/build/embeddings/sparse.d.ts +40 -0
- package/build/embeddings/sparse.d.ts.map +1 -0
- package/build/embeddings/sparse.js +105 -0
- package/build/embeddings/sparse.js.map +1 -0
- package/build/embeddings/sparse.test.d.ts +2 -0
- package/build/embeddings/sparse.test.d.ts.map +1 -0
- package/build/embeddings/sparse.test.js +69 -0
- package/build/embeddings/sparse.test.js.map +1 -0
- package/build/index.js +130 -30
- package/build/index.js.map +1 -1
- package/build/qdrant/client.d.ts +21 -2
- package/build/qdrant/client.d.ts.map +1 -1
- package/build/qdrant/client.js +131 -17
- package/build/qdrant/client.js.map +1 -1
- package/build/qdrant/client.test.js +429 -21
- package/build/qdrant/client.test.js.map +1 -1
- package/examples/README.md +78 -253
- package/examples/basic/README.md +19 -72
- package/examples/filters/README.md +55 -155
- package/examples/hybrid-search/README.md +199 -0
- package/examples/knowledge-base/README.md +36 -98
- package/examples/rate-limiting/README.md +81 -290
- package/package.json +1 -1
- package/src/embeddings/sparse.test.ts +87 -0
- package/src/embeddings/sparse.ts +127 -0
- package/src/index.ts +161 -57
- package/src/qdrant/client.test.ts +544 -56
- package/src/qdrant/client.ts +162 -22
- package/vitest.config.ts +3 -3
- package/docs/test_report.md +0 -259
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
2
|
-
import { QdrantManager } from "./client.js";
|
|
3
1
|
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { QdrantManager } from "./client.js";
|
|
4
4
|
vi.mock("@qdrant/js-client-rest", () => ({
|
|
5
5
|
QdrantClient: vi.fn(),
|
|
6
6
|
}));
|
|
@@ -40,6 +40,22 @@ describe("QdrantManager", () => {
|
|
|
40
40
|
},
|
|
41
41
|
});
|
|
42
42
|
});
|
|
43
|
+
it("should create a hybrid collection with sparse vectors enabled", async () => {
|
|
44
|
+
await manager.createCollection("test-collection", 1536, "Cosine", true);
|
|
45
|
+
expect(mockClient.createCollection).toHaveBeenCalledWith("test-collection", {
|
|
46
|
+
vectors: {
|
|
47
|
+
dense: {
|
|
48
|
+
size: 1536,
|
|
49
|
+
distance: "Cosine",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
sparse_vectors: {
|
|
53
|
+
text: {
|
|
54
|
+
modifier: "idf",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
});
|
|
43
59
|
});
|
|
44
60
|
describe("collectionExists", () => {
|
|
45
61
|
it("should return true if collection exists", async () => {
|
|
@@ -57,18 +73,10 @@ describe("QdrantManager", () => {
|
|
|
57
73
|
describe("listCollections", () => {
|
|
58
74
|
it("should return list of collection names", async () => {
|
|
59
75
|
mockClient.getCollections.mockResolvedValue({
|
|
60
|
-
collections: [
|
|
61
|
-
{ name: "collection1" },
|
|
62
|
-
{ name: "collection2" },
|
|
63
|
-
{ name: "collection3" },
|
|
64
|
-
],
|
|
76
|
+
collections: [{ name: "collection1" }, { name: "collection2" }, { name: "collection3" }],
|
|
65
77
|
});
|
|
66
78
|
const collections = await manager.listCollections();
|
|
67
|
-
expect(collections).toEqual([
|
|
68
|
-
"collection1",
|
|
69
|
-
"collection2",
|
|
70
|
-
"collection3",
|
|
71
|
-
]);
|
|
79
|
+
expect(collections).toEqual(["collection1", "collection2", "collection3"]);
|
|
72
80
|
});
|
|
73
81
|
it("should return empty array when no collections exist", async () => {
|
|
74
82
|
mockClient.getCollections.mockResolvedValue({
|
|
@@ -98,6 +106,7 @@ describe("QdrantManager", () => {
|
|
|
98
106
|
vectorSize: 1536,
|
|
99
107
|
pointsCount: 100,
|
|
100
108
|
distance: "Cosine",
|
|
109
|
+
hybridEnabled: false,
|
|
101
110
|
});
|
|
102
111
|
});
|
|
103
112
|
it("should handle missing points_count", async () => {
|
|
@@ -115,6 +124,35 @@ describe("QdrantManager", () => {
|
|
|
115
124
|
const info = await manager.getCollectionInfo("test-collection");
|
|
116
125
|
expect(info.pointsCount).toBe(0);
|
|
117
126
|
});
|
|
127
|
+
it("should return hybrid collection info with named vectors", async () => {
|
|
128
|
+
mockClient.getCollection.mockResolvedValue({
|
|
129
|
+
collection_name: "hybrid-collection",
|
|
130
|
+
points_count: 50,
|
|
131
|
+
config: {
|
|
132
|
+
params: {
|
|
133
|
+
vectors: {
|
|
134
|
+
dense: {
|
|
135
|
+
size: 768,
|
|
136
|
+
distance: "Cosine",
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
sparse_vectors: {
|
|
140
|
+
text: {
|
|
141
|
+
modifier: "idf",
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
const info = await manager.getCollectionInfo("hybrid-collection");
|
|
148
|
+
expect(info).toEqual({
|
|
149
|
+
name: "hybrid-collection",
|
|
150
|
+
vectorSize: 768,
|
|
151
|
+
pointsCount: 50,
|
|
152
|
+
distance: "Cosine",
|
|
153
|
+
hybridEnabled: true,
|
|
154
|
+
});
|
|
155
|
+
});
|
|
118
156
|
});
|
|
119
157
|
describe("deleteCollection", () => {
|
|
120
158
|
it("should delete a collection", async () => {
|
|
@@ -163,9 +201,7 @@ describe("QdrantManager", () => {
|
|
|
163
201
|
});
|
|
164
202
|
it("should preserve UUID format IDs without modification", async () => {
|
|
165
203
|
const uuidId = "123e4567-e89b-12d3-a456-426614174000";
|
|
166
|
-
const points = [
|
|
167
|
-
{ id: uuidId, vector: [0.1, 0.2, 0.3], payload: { text: "test" } },
|
|
168
|
-
];
|
|
204
|
+
const points = [{ id: uuidId, vector: [0.1, 0.2, 0.3], payload: { text: "test" } }];
|
|
169
205
|
await manager.addPoints("test-collection", points);
|
|
170
206
|
// UUID should remain unchanged
|
|
171
207
|
expect(mockClient.upsert).toHaveBeenCalledWith("test-collection", {
|
|
@@ -202,6 +238,21 @@ describe("QdrantManager", () => {
|
|
|
202
238
|
});
|
|
203
239
|
});
|
|
204
240
|
describe("search", () => {
|
|
241
|
+
beforeEach(() => {
|
|
242
|
+
// Mock getCollection for standard collection by default
|
|
243
|
+
mockClient.getCollection.mockResolvedValue({
|
|
244
|
+
collection_name: "test-collection",
|
|
245
|
+
points_count: 100,
|
|
246
|
+
config: {
|
|
247
|
+
params: {
|
|
248
|
+
vectors: {
|
|
249
|
+
size: 768,
|
|
250
|
+
distance: "Cosine",
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
});
|
|
205
256
|
it("should search for similar vectors", async () => {
|
|
206
257
|
mockClient.search.mockResolvedValue([
|
|
207
258
|
{ id: 1, score: 0.95, payload: { text: "result1" } },
|
|
@@ -286,18 +337,67 @@ describe("QdrantManager", () => {
|
|
|
286
337
|
});
|
|
287
338
|
});
|
|
288
339
|
it("should handle null payload in results", async () => {
|
|
289
|
-
mockClient.search.mockResolvedValue([
|
|
290
|
-
{ id: 1, score: 0.95, payload: null },
|
|
291
|
-
]);
|
|
340
|
+
mockClient.search.mockResolvedValue([{ id: 1, score: 0.95, payload: null }]);
|
|
292
341
|
const results = await manager.search("test-collection", [0.1, 0.2, 0.3]);
|
|
293
342
|
expect(results).toEqual([{ id: 1, score: 0.95, payload: undefined }]);
|
|
294
343
|
});
|
|
344
|
+
it("should use named vector for hybrid-enabled collections", async () => {
|
|
345
|
+
// Mock getCollectionInfo to return hybrid enabled collection
|
|
346
|
+
mockClient.getCollection.mockResolvedValue({
|
|
347
|
+
collection_name: "hybrid-collection",
|
|
348
|
+
points_count: 10,
|
|
349
|
+
config: {
|
|
350
|
+
params: {
|
|
351
|
+
vectors: {
|
|
352
|
+
dense: {
|
|
353
|
+
size: 768,
|
|
354
|
+
distance: "Cosine",
|
|
355
|
+
},
|
|
356
|
+
},
|
|
357
|
+
sparse_vectors: {
|
|
358
|
+
text: {
|
|
359
|
+
modifier: "idf",
|
|
360
|
+
},
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
});
|
|
365
|
+
mockClient.search.mockResolvedValue([{ id: 1, score: 0.95, payload: { text: "result1" } }]);
|
|
366
|
+
const results = await manager.search("hybrid-collection", [0.1, 0.2, 0.3], 5);
|
|
367
|
+
expect(results).toEqual([{ id: 1, score: 0.95, payload: { text: "result1" } }]);
|
|
368
|
+
expect(mockClient.search).toHaveBeenCalledWith("hybrid-collection", {
|
|
369
|
+
vector: { name: "dense", vector: [0.1, 0.2, 0.3] },
|
|
370
|
+
limit: 5,
|
|
371
|
+
filter: undefined,
|
|
372
|
+
});
|
|
373
|
+
});
|
|
374
|
+
it("should use unnamed vector for standard collections", async () => {
|
|
375
|
+
// Mock getCollectionInfo to return standard collection (no sparse vectors)
|
|
376
|
+
mockClient.getCollection.mockResolvedValue({
|
|
377
|
+
collection_name: "standard-collection",
|
|
378
|
+
points_count: 10,
|
|
379
|
+
config: {
|
|
380
|
+
params: {
|
|
381
|
+
vectors: {
|
|
382
|
+
size: 768,
|
|
383
|
+
distance: "Cosine",
|
|
384
|
+
},
|
|
385
|
+
},
|
|
386
|
+
},
|
|
387
|
+
});
|
|
388
|
+
mockClient.search.mockResolvedValue([{ id: 1, score: 0.95, payload: { text: "result1" } }]);
|
|
389
|
+
const results = await manager.search("standard-collection", [0.1, 0.2, 0.3], 5);
|
|
390
|
+
expect(results).toEqual([{ id: 1, score: 0.95, payload: { text: "result1" } }]);
|
|
391
|
+
expect(mockClient.search).toHaveBeenCalledWith("standard-collection", {
|
|
392
|
+
vector: [0.1, 0.2, 0.3],
|
|
393
|
+
limit: 5,
|
|
394
|
+
filter: undefined,
|
|
395
|
+
});
|
|
396
|
+
});
|
|
295
397
|
});
|
|
296
398
|
describe("getPoint", () => {
|
|
297
399
|
it("should retrieve a point by id", async () => {
|
|
298
|
-
mockClient.retrieve.mockResolvedValue([
|
|
299
|
-
{ id: 1, payload: { text: "test" } },
|
|
300
|
-
]);
|
|
400
|
+
mockClient.retrieve.mockResolvedValue([{ id: 1, payload: { text: "test" } }]);
|
|
301
401
|
const point = await manager.getPoint("test-collection", 1);
|
|
302
402
|
expect(point).toEqual({ id: 1, payload: { text: "test" } });
|
|
303
403
|
expect(mockClient.retrieve).toHaveBeenCalledWith("test-collection", {
|
|
@@ -336,5 +436,313 @@ describe("QdrantManager", () => {
|
|
|
336
436
|
});
|
|
337
437
|
});
|
|
338
438
|
});
|
|
439
|
+
describe("hybridSearch", () => {
|
|
440
|
+
beforeEach(() => {
|
|
441
|
+
mockClient.query = vi.fn();
|
|
442
|
+
});
|
|
443
|
+
it("should perform hybrid search with dense and sparse vectors", async () => {
|
|
444
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
445
|
+
const sparseVector = { indices: [1, 5, 10], values: [0.5, 0.3, 0.2] };
|
|
446
|
+
mockClient.query.mockResolvedValue({
|
|
447
|
+
points: [
|
|
448
|
+
{ id: 1, score: 0.95, payload: { text: "result1" } },
|
|
449
|
+
{ id: 2, score: 0.85, payload: { text: "result2" } },
|
|
450
|
+
],
|
|
451
|
+
});
|
|
452
|
+
const results = await manager.hybridSearch("test-collection", denseVector, sparseVector);
|
|
453
|
+
expect(results).toEqual([
|
|
454
|
+
{ id: 1, score: 0.95, payload: { text: "result1" } },
|
|
455
|
+
{ id: 2, score: 0.85, payload: { text: "result2" } },
|
|
456
|
+
]);
|
|
457
|
+
expect(mockClient.query).toHaveBeenCalledWith("test-collection", {
|
|
458
|
+
prefetch: [
|
|
459
|
+
{
|
|
460
|
+
query: denseVector,
|
|
461
|
+
using: "dense",
|
|
462
|
+
limit: 20,
|
|
463
|
+
filter: undefined,
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
query: sparseVector,
|
|
467
|
+
using: "text",
|
|
468
|
+
limit: 20,
|
|
469
|
+
filter: undefined,
|
|
470
|
+
},
|
|
471
|
+
],
|
|
472
|
+
query: {
|
|
473
|
+
fusion: "rrf",
|
|
474
|
+
},
|
|
475
|
+
limit: 5,
|
|
476
|
+
with_payload: true,
|
|
477
|
+
});
|
|
478
|
+
});
|
|
479
|
+
it("should use custom limit with appropriate prefetch limit", async () => {
|
|
480
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
481
|
+
const sparseVector = { indices: [1, 5], values: [0.5, 0.3] };
|
|
482
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
483
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 10);
|
|
484
|
+
expect(mockClient.query).toHaveBeenCalledWith("test-collection", expect.objectContaining({
|
|
485
|
+
prefetch: expect.arrayContaining([
|
|
486
|
+
expect.objectContaining({ limit: 40 }), // 10 * 4
|
|
487
|
+
]),
|
|
488
|
+
limit: 10,
|
|
489
|
+
}));
|
|
490
|
+
});
|
|
491
|
+
it("should convert simple filter to Qdrant format", async () => {
|
|
492
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
493
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
494
|
+
const filter = { category: "test", type: "doc" };
|
|
495
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
496
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 5, filter);
|
|
497
|
+
expect(mockClient.query).toHaveBeenCalledWith("test-collection", {
|
|
498
|
+
prefetch: [
|
|
499
|
+
{
|
|
500
|
+
query: denseVector,
|
|
501
|
+
using: "dense",
|
|
502
|
+
limit: 20,
|
|
503
|
+
filter: {
|
|
504
|
+
must: [
|
|
505
|
+
{ key: "category", match: { value: "test" } },
|
|
506
|
+
{ key: "type", match: { value: "doc" } },
|
|
507
|
+
],
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
query: sparseVector,
|
|
512
|
+
using: "text",
|
|
513
|
+
limit: 20,
|
|
514
|
+
filter: {
|
|
515
|
+
must: [
|
|
516
|
+
{ key: "category", match: { value: "test" } },
|
|
517
|
+
{ key: "type", match: { value: "doc" } },
|
|
518
|
+
],
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
],
|
|
522
|
+
query: {
|
|
523
|
+
fusion: "rrf",
|
|
524
|
+
},
|
|
525
|
+
limit: 5,
|
|
526
|
+
with_payload: true,
|
|
527
|
+
});
|
|
528
|
+
});
|
|
529
|
+
it("should handle Qdrant format filter (must)", async () => {
|
|
530
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
531
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
532
|
+
const filter = { must: [{ key: "status", match: { value: "active" } }] };
|
|
533
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
534
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 5, filter);
|
|
535
|
+
const call = mockClient.query.mock.calls[0][1];
|
|
536
|
+
expect(call.prefetch[0].filter).toEqual(filter);
|
|
537
|
+
expect(call.prefetch[1].filter).toEqual(filter);
|
|
538
|
+
});
|
|
539
|
+
it("should handle Qdrant format filter (should)", async () => {
|
|
540
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
541
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
542
|
+
const filter = { should: [{ key: "tag", match: { value: "important" } }] };
|
|
543
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
544
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 5, filter);
|
|
545
|
+
const call = mockClient.query.mock.calls[0][1];
|
|
546
|
+
expect(call.prefetch[0].filter).toEqual(filter);
|
|
547
|
+
expect(call.prefetch[1].filter).toEqual(filter);
|
|
548
|
+
});
|
|
549
|
+
it("should handle Qdrant format filter (must_not)", async () => {
|
|
550
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
551
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
552
|
+
const filter = { must_not: [{ key: "status", match: { value: "deleted" } }] };
|
|
553
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
554
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 5, filter);
|
|
555
|
+
const call = mockClient.query.mock.calls[0][1];
|
|
556
|
+
expect(call.prefetch[0].filter).toEqual(filter);
|
|
557
|
+
expect(call.prefetch[1].filter).toEqual(filter);
|
|
558
|
+
});
|
|
559
|
+
it("should handle empty filter object", async () => {
|
|
560
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
561
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
562
|
+
mockClient.query.mockResolvedValue({ points: [] });
|
|
563
|
+
await manager.hybridSearch("test-collection", denseVector, sparseVector, 5, {});
|
|
564
|
+
const call = mockClient.query.mock.calls[0][1];
|
|
565
|
+
expect(call.prefetch[0].filter).toBeUndefined();
|
|
566
|
+
expect(call.prefetch[1].filter).toBeUndefined();
|
|
567
|
+
});
|
|
568
|
+
it("should handle null payload in results", async () => {
|
|
569
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
570
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
571
|
+
mockClient.query.mockResolvedValue({
|
|
572
|
+
points: [{ id: 1, score: 0.95, payload: null }],
|
|
573
|
+
});
|
|
574
|
+
const results = await manager.hybridSearch("test-collection", denseVector, sparseVector);
|
|
575
|
+
expect(results).toEqual([{ id: 1, score: 0.95, payload: undefined }]);
|
|
576
|
+
});
|
|
577
|
+
it("should throw error with error.data.status.error message", async () => {
|
|
578
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
579
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
580
|
+
mockClient.query.mockRejectedValue({
|
|
581
|
+
data: {
|
|
582
|
+
status: {
|
|
583
|
+
error: "Named vector not found",
|
|
584
|
+
},
|
|
585
|
+
},
|
|
586
|
+
});
|
|
587
|
+
await expect(manager.hybridSearch("test-collection", denseVector, sparseVector)).rejects.toThrow('Hybrid search failed on collection "test-collection": Named vector not found');
|
|
588
|
+
});
|
|
589
|
+
it("should throw error with error.message fallback", async () => {
|
|
590
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
591
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
592
|
+
mockClient.query.mockRejectedValue(new Error("Network timeout"));
|
|
593
|
+
await expect(manager.hybridSearch("test-collection", denseVector, sparseVector)).rejects.toThrow('Hybrid search failed on collection "test-collection": Network timeout');
|
|
594
|
+
});
|
|
595
|
+
it("should throw error with String(error) fallback", async () => {
|
|
596
|
+
const denseVector = [0.1, 0.2, 0.3];
|
|
597
|
+
const sparseVector = { indices: [1], values: [0.5] };
|
|
598
|
+
mockClient.query.mockRejectedValue("Unknown error");
|
|
599
|
+
await expect(manager.hybridSearch("test-collection", denseVector, sparseVector)).rejects.toThrow('Hybrid search failed on collection "test-collection": Unknown error');
|
|
600
|
+
});
|
|
601
|
+
});
|
|
602
|
+
describe("addPointsWithSparse", () => {
|
|
603
|
+
it("should add points with dense and sparse vectors", async () => {
|
|
604
|
+
const points = [
|
|
605
|
+
{
|
|
606
|
+
id: 1,
|
|
607
|
+
vector: [0.1, 0.2, 0.3],
|
|
608
|
+
sparseVector: { indices: [1, 5], values: [0.5, 0.3] },
|
|
609
|
+
payload: { text: "test" },
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
id: 2,
|
|
613
|
+
vector: [0.4, 0.5, 0.6],
|
|
614
|
+
sparseVector: { indices: [2, 8], values: [0.4, 0.6] },
|
|
615
|
+
payload: { text: "test2" },
|
|
616
|
+
},
|
|
617
|
+
];
|
|
618
|
+
await manager.addPointsWithSparse("test-collection", points);
|
|
619
|
+
expect(mockClient.upsert).toHaveBeenCalledWith("test-collection", {
|
|
620
|
+
wait: true,
|
|
621
|
+
points: [
|
|
622
|
+
{
|
|
623
|
+
id: 1,
|
|
624
|
+
vector: {
|
|
625
|
+
dense: [0.1, 0.2, 0.3],
|
|
626
|
+
text: { indices: [1, 5], values: [0.5, 0.3] },
|
|
627
|
+
},
|
|
628
|
+
payload: { text: "test" },
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
id: 2,
|
|
632
|
+
vector: {
|
|
633
|
+
dense: [0.4, 0.5, 0.6],
|
|
634
|
+
text: { indices: [2, 8], values: [0.4, 0.6] },
|
|
635
|
+
},
|
|
636
|
+
payload: { text: "test2" },
|
|
637
|
+
},
|
|
638
|
+
],
|
|
639
|
+
});
|
|
640
|
+
});
|
|
641
|
+
it("should add points without payload", async () => {
|
|
642
|
+
const points = [
|
|
643
|
+
{
|
|
644
|
+
id: 1,
|
|
645
|
+
vector: [0.1, 0.2, 0.3],
|
|
646
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
647
|
+
},
|
|
648
|
+
];
|
|
649
|
+
await manager.addPointsWithSparse("test-collection", points);
|
|
650
|
+
expect(mockClient.upsert).toHaveBeenCalledWith("test-collection", {
|
|
651
|
+
wait: true,
|
|
652
|
+
points: [
|
|
653
|
+
{
|
|
654
|
+
id: 1,
|
|
655
|
+
vector: {
|
|
656
|
+
dense: [0.1, 0.2, 0.3],
|
|
657
|
+
text: { indices: [1], values: [0.5] },
|
|
658
|
+
},
|
|
659
|
+
payload: undefined,
|
|
660
|
+
},
|
|
661
|
+
],
|
|
662
|
+
});
|
|
663
|
+
});
|
|
664
|
+
it("should normalize string IDs to UUID format", async () => {
|
|
665
|
+
const points = [
|
|
666
|
+
{
|
|
667
|
+
id: "my-doc-id",
|
|
668
|
+
vector: [0.1, 0.2, 0.3],
|
|
669
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
670
|
+
payload: { text: "test" },
|
|
671
|
+
},
|
|
672
|
+
];
|
|
673
|
+
await manager.addPointsWithSparse("test-collection", points);
|
|
674
|
+
const calls = mockClient.upsert.mock.calls;
|
|
675
|
+
expect(calls).toHaveLength(1);
|
|
676
|
+
expect(calls[0][0]).toBe("test-collection");
|
|
677
|
+
const normalizedId = calls[0][1].points[0].id;
|
|
678
|
+
// Check that it's a valid UUID format
|
|
679
|
+
expect(normalizedId).toMatch(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i);
|
|
680
|
+
expect(normalizedId).not.toBe("my-doc-id");
|
|
681
|
+
});
|
|
682
|
+
it("should preserve UUID format IDs without modification", async () => {
|
|
683
|
+
const uuidId = "123e4567-e89b-12d3-a456-426614174000";
|
|
684
|
+
const points = [
|
|
685
|
+
{
|
|
686
|
+
id: uuidId,
|
|
687
|
+
vector: [0.1, 0.2, 0.3],
|
|
688
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
689
|
+
payload: { text: "test" },
|
|
690
|
+
},
|
|
691
|
+
];
|
|
692
|
+
await manager.addPointsWithSparse("test-collection", points);
|
|
693
|
+
expect(mockClient.upsert).toHaveBeenCalledWith("test-collection", {
|
|
694
|
+
wait: true,
|
|
695
|
+
points: [
|
|
696
|
+
{
|
|
697
|
+
id: uuidId,
|
|
698
|
+
vector: {
|
|
699
|
+
dense: [0.1, 0.2, 0.3],
|
|
700
|
+
text: { indices: [1], values: [0.5] },
|
|
701
|
+
},
|
|
702
|
+
payload: { text: "test" },
|
|
703
|
+
},
|
|
704
|
+
],
|
|
705
|
+
});
|
|
706
|
+
});
|
|
707
|
+
it("should throw error with error.data.status.error message", async () => {
|
|
708
|
+
const points = [
|
|
709
|
+
{
|
|
710
|
+
id: 1,
|
|
711
|
+
vector: [0.1, 0.2, 0.3],
|
|
712
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
713
|
+
},
|
|
714
|
+
];
|
|
715
|
+
mockClient.upsert.mockRejectedValue({
|
|
716
|
+
data: {
|
|
717
|
+
status: {
|
|
718
|
+
error: "Sparse vector not configured",
|
|
719
|
+
},
|
|
720
|
+
},
|
|
721
|
+
});
|
|
722
|
+
await expect(manager.addPointsWithSparse("test-collection", points)).rejects.toThrow('Failed to add points with sparse vectors to collection "test-collection": Sparse vector not configured');
|
|
723
|
+
});
|
|
724
|
+
it("should throw error with error.message fallback", async () => {
|
|
725
|
+
const points = [
|
|
726
|
+
{
|
|
727
|
+
id: 1,
|
|
728
|
+
vector: [0.1, 0.2, 0.3],
|
|
729
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
730
|
+
},
|
|
731
|
+
];
|
|
732
|
+
mockClient.upsert.mockRejectedValue(new Error("Connection refused"));
|
|
733
|
+
await expect(manager.addPointsWithSparse("test-collection", points)).rejects.toThrow('Failed to add points with sparse vectors to collection "test-collection": Connection refused');
|
|
734
|
+
});
|
|
735
|
+
it("should throw error with String(error) fallback", async () => {
|
|
736
|
+
const points = [
|
|
737
|
+
{
|
|
738
|
+
id: 1,
|
|
739
|
+
vector: [0.1, 0.2, 0.3],
|
|
740
|
+
sparseVector: { indices: [1], values: [0.5] },
|
|
741
|
+
},
|
|
742
|
+
];
|
|
743
|
+
mockClient.upsert.mockRejectedValue("Unexpected error");
|
|
744
|
+
await expect(manager.addPointsWithSparse("test-collection", points)).rejects.toThrow('Failed to add points with sparse vectors to collection "test-collection": Unexpected error');
|
|
745
|
+
});
|
|
746
|
+
});
|
|
339
747
|
});
|
|
340
748
|
//# sourceMappingURL=client.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/qdrant/client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/qdrant/client.test.ts"],"names":[],"mappings":"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"}
|