@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,124 @@
|
|
1
|
+
import { VectorDocument, SearchOptions, VectorSearchResult, HybridSearchRequest, HybridSearchOptions, HybridSearchResult } from './types';
|
2
|
+
import { BaseVectorDatabase, BaseDatabaseConfig } from './base/base-vector-database';
|
3
|
+
import { SimpleBM25, BM25Config } from './sparse/simple-bm25';
|
4
|
+
export interface QdrantConfig extends BaseDatabaseConfig {
|
5
|
+
/**
|
6
|
+
* API key for Qdrant Cloud
|
7
|
+
* Optional for self-hosted instances
|
8
|
+
*/
|
9
|
+
apiKey?: string;
|
10
|
+
/**
|
11
|
+
* Connection timeout in milliseconds
|
12
|
+
* @default 10000
|
13
|
+
*/
|
14
|
+
timeout?: number;
|
15
|
+
/**
|
16
|
+
* BM25 configuration for sparse vector generation
|
17
|
+
*/
|
18
|
+
bm25Config?: BM25Config;
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* Qdrant Vector Database implementation using gRPC client
|
22
|
+
*
|
23
|
+
* Features:
|
24
|
+
* - Named vectors (dense + sparse)
|
25
|
+
* - Hybrid search with RRF fusion
|
26
|
+
* - BM25 sparse vector generation
|
27
|
+
* - Self-hosted and cloud support
|
28
|
+
*
|
29
|
+
* Architecture:
|
30
|
+
* - Dense vectors: From embedding providers (OpenAI, VoyageAI, etc.)
|
31
|
+
* - Sparse vectors: Generated using SimpleBM25 for keyword matching
|
32
|
+
* - Hybrid search: Combines both using Qdrant's prefetch + RRF
|
33
|
+
*/
|
34
|
+
export declare class QdrantVectorDatabase extends BaseVectorDatabase<QdrantConfig> {
|
35
|
+
private client;
|
36
|
+
private bm25Generator;
|
37
|
+
private readonly DENSE_VECTOR_NAME;
|
38
|
+
private readonly SPARSE_VECTOR_NAME;
|
39
|
+
constructor(config: QdrantConfig);
|
40
|
+
/**
|
41
|
+
* Initialize Qdrant client connection
|
42
|
+
*/
|
43
|
+
protected initialize(): Promise<void>;
|
44
|
+
/**
|
45
|
+
* Create Qdrant client instance
|
46
|
+
*/
|
47
|
+
private initializeClient;
|
48
|
+
/**
|
49
|
+
* Resolve address from config
|
50
|
+
* Unlike Milvus, Qdrant doesn't have auto-provisioning
|
51
|
+
*/
|
52
|
+
protected resolveAddress(): Promise<string>;
|
53
|
+
/**
|
54
|
+
* Override to add client null check
|
55
|
+
*/
|
56
|
+
protected ensureInitialized(): Promise<void>;
|
57
|
+
/**
|
58
|
+
* Qdrant doesn't require explicit collection loading
|
59
|
+
* Collections are loaded on-demand automatically
|
60
|
+
*/
|
61
|
+
protected ensureLoaded(collectionName: string): Promise<void>;
|
62
|
+
/**
|
63
|
+
* Create collection with dense vectors only
|
64
|
+
*/
|
65
|
+
createCollection(collectionName: string, dimension: number, description?: string): Promise<void>;
|
66
|
+
/**
|
67
|
+
* Create collection with hybrid search support (dense + sparse vectors)
|
68
|
+
*/
|
69
|
+
createHybridCollection(collectionName: string, dimension: number, description?: string): Promise<void>;
|
70
|
+
/**
|
71
|
+
* Drop collection
|
72
|
+
*/
|
73
|
+
dropCollection(collectionName: string): Promise<void>;
|
74
|
+
/**
|
75
|
+
* Check if collection exists
|
76
|
+
*/
|
77
|
+
hasCollection(collectionName: string): Promise<boolean>;
|
78
|
+
/**
|
79
|
+
* List all collections
|
80
|
+
*/
|
81
|
+
listCollections(): Promise<string[]>;
|
82
|
+
/**
|
83
|
+
* Insert documents with dense vectors only
|
84
|
+
*/
|
85
|
+
insert(collectionName: string, documents: VectorDocument[]): Promise<void>;
|
86
|
+
/**
|
87
|
+
* Insert documents with hybrid vectors (dense + sparse)
|
88
|
+
*/
|
89
|
+
insertHybrid(collectionName: string, documents: VectorDocument[]): Promise<void>;
|
90
|
+
/**
|
91
|
+
* Search with dense vectors only
|
92
|
+
*/
|
93
|
+
search(collectionName: string, queryVector: number[], options?: SearchOptions): Promise<VectorSearchResult[]>;
|
94
|
+
/**
|
95
|
+
* Hybrid search with dense + sparse vectors using RRF fusion
|
96
|
+
*/
|
97
|
+
hybridSearch(collectionName: string, searchRequests: HybridSearchRequest[], options?: HybridSearchOptions): Promise<HybridSearchResult[]>;
|
98
|
+
/**
|
99
|
+
* Delete documents by IDs
|
100
|
+
*/
|
101
|
+
delete(collectionName: string, ids: string[]): Promise<void>;
|
102
|
+
/**
|
103
|
+
* Query documents with filter conditions
|
104
|
+
*/
|
105
|
+
query(collectionName: string, filter: string, outputFields: string[], limit?: number): Promise<Record<string, any>[]>;
|
106
|
+
/**
|
107
|
+
* Check collection limit
|
108
|
+
* Qdrant doesn't have hard collection limits like Zilliz Cloud
|
109
|
+
*/
|
110
|
+
checkCollectionLimit(): Promise<boolean>;
|
111
|
+
/**
|
112
|
+
* Parse Milvus-style filter expression to Qdrant filter format
|
113
|
+
*
|
114
|
+
* Example:
|
115
|
+
* - "fileExtension == '.ts'" -> { must: [{ key: 'fileExtension', match: { value: '.ts' } }] }
|
116
|
+
* - "fileExtension in ['.ts', '.js']" -> { must: [{ key: 'fileExtension', match: { any: ['.ts', '.js'] } }] }
|
117
|
+
*/
|
118
|
+
private parseFilterExpression;
|
119
|
+
/**
|
120
|
+
* Get BM25 generator (for testing/debugging)
|
121
|
+
*/
|
122
|
+
getBM25Generator(): SimpleBM25;
|
123
|
+
}
|
124
|
+
//# sourceMappingURL=qdrant-vectordb.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"qdrant-vectordb.d.ts","sourceRoot":"","sources":["../../src/vectordb/qdrant-vectordb.ts"],"names":[],"mappings":"AAUA,OAAO,EACH,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACpD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;IACtE,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,aAAa,CAAa;IAGlC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAY;gBAEnC,MAAM,EAAE,YAAY;IAKhC;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3C;;OAEG;YACW,gBAAgB;IAkB9B;;;OAGG;cACa,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAOjD;;OAEG;cACsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3D;;;OAGG;cACa,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE;;OAEG;IACG,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BtG;;OAEG;IACG,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC5G;;OAEG;IACG,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D;;OAEG;IACG,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB7D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAO1C;;OAEG;IACG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDhF;;OAEG;IACG,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsEtF;;OAEG;IACG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsCnH;;OAEG;IACG,YAAY,CACd,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,mBAAmB,EAAE,EACrC,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmGhC;;OAEG;IACG,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlE;;OAEG;IACG,KAAK,CACP,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA8DjC;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9C;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;IAkE7B;;OAEG;IACI,gBAAgB,IAAI,UAAU;CAGxC"}
|