@functional-systems/lambdadb 0.3.4 → 0.4.1
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 +42 -0
- package/dist/commonjs/compat/qdrant/client.d.ts +212 -0
- package/dist/commonjs/compat/qdrant/client.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant/client.js +618 -0
- package/dist/commonjs/compat/qdrant/client.js.map +1 -0
- package/dist/commonjs/compat/qdrant/conversions.d.ts +40 -0
- package/dist/commonjs/compat/qdrant/conversions.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant/conversions.js +399 -0
- package/dist/commonjs/compat/qdrant/conversions.js.map +1 -0
- package/dist/commonjs/compat/qdrant/errors.d.ts +10 -0
- package/dist/commonjs/compat/qdrant/errors.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant/errors.js +25 -0
- package/dist/commonjs/compat/qdrant/errors.js.map +1 -0
- package/dist/commonjs/compat/qdrant/filters.d.ts +10 -0
- package/dist/commonjs/compat/qdrant/filters.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant/filters.js +172 -0
- package/dist/commonjs/compat/qdrant/filters.js.map +1 -0
- package/dist/commonjs/compat/qdrant/models.d.ts +198 -0
- package/dist/commonjs/compat/qdrant/models.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant/models.js +205 -0
- package/dist/commonjs/compat/qdrant/models.js.map +1 -0
- package/dist/commonjs/compat/qdrant.d.ts +4 -0
- package/dist/commonjs/compat/qdrant.d.ts.map +1 -0
- package/dist/commonjs/compat/qdrant.js +45 -0
- package/dist/commonjs/compat/qdrant.js.map +1 -0
- package/dist/esm/compat/qdrant/client.d.ts +212 -0
- package/dist/esm/compat/qdrant/client.d.ts.map +1 -0
- package/dist/esm/compat/qdrant/client.js +581 -0
- package/dist/esm/compat/qdrant/client.js.map +1 -0
- package/dist/esm/compat/qdrant/conversions.d.ts +40 -0
- package/dist/esm/compat/qdrant/conversions.d.ts.map +1 -0
- package/dist/esm/compat/qdrant/conversions.js +349 -0
- package/dist/esm/compat/qdrant/conversions.js.map +1 -0
- package/dist/esm/compat/qdrant/errors.d.ts +10 -0
- package/dist/esm/compat/qdrant/errors.d.ts.map +1 -0
- package/dist/esm/compat/qdrant/errors.js +19 -0
- package/dist/esm/compat/qdrant/errors.js.map +1 -0
- package/dist/esm/compat/qdrant/filters.d.ts +10 -0
- package/dist/esm/compat/qdrant/filters.d.ts.map +1 -0
- package/dist/esm/compat/qdrant/filters.js +169 -0
- package/dist/esm/compat/qdrant/filters.js.map +1 -0
- package/dist/esm/compat/qdrant/models.d.ts +198 -0
- package/dist/esm/compat/qdrant/models.d.ts.map +1 -0
- package/dist/esm/compat/qdrant/models.js +185 -0
- package/dist/esm/compat/qdrant/models.js.map +1 -0
- package/dist/esm/compat/qdrant.d.ts +4 -0
- package/dist/esm/compat/qdrant.d.ts.map +1 -0
- package/dist/esm/compat/qdrant.js +4 -0
- package/dist/esm/compat/qdrant.js.map +1 -0
- package/jsr.json +3 -1
- package/package.json +32 -1
- package/src/compat/qdrant/client.ts +955 -0
- package/src/compat/qdrant/conversions.ts +440 -0
- package/src/compat/qdrant/errors.ts +20 -0
- package/src/compat/qdrant/filters.ts +213 -0
- package/src/compat/qdrant/models.ts +317 -0
- package/src/compat/qdrant.ts +3 -0
- package/test/integration/qdrant-compat-external.test.mjs +351 -0
- package/test/integration/qdrant-compat-live.test.mjs +122 -0
- package/test/qdrant-compat.test.mjs +455 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PointStruct, type DenseVector } from "./models.js";
|
|
2
|
+
import * as models from "./models.js";
|
|
3
|
+
export declare const DEFAULT_VECTOR_NAME = "_qdrant_vector";
|
|
4
|
+
export declare const ID_FIELD = "id";
|
|
5
|
+
export declare const ORIGINAL_ID_FIELD = "_qdrant_id";
|
|
6
|
+
export declare const RESERVED_PREFIX = "_qdrant_";
|
|
7
|
+
type JsonObject = {
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
type IndexConfig = {
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
};
|
|
13
|
+
type IndexConfigs = {
|
|
14
|
+
[fieldName: string]: IndexConfig;
|
|
15
|
+
};
|
|
16
|
+
export declare function vectorFieldName(name?: string | null): string;
|
|
17
|
+
export declare function pointFromAny(point: unknown): PointStruct;
|
|
18
|
+
export declare function pointsToDocs(points: Iterable<unknown>): JsonObject[];
|
|
19
|
+
export declare function pointToDoc(point: unknown): JsonObject;
|
|
20
|
+
export declare function docToRecord(input: unknown, options?: {
|
|
21
|
+
withPayload?: boolean | string[];
|
|
22
|
+
withVectors?: boolean | string[];
|
|
23
|
+
}): models.Record;
|
|
24
|
+
export declare function resultToScoredPoint(result: unknown, options?: {
|
|
25
|
+
withPayload?: boolean | string[];
|
|
26
|
+
withVectors?: boolean | string[];
|
|
27
|
+
}): models.ScoredPoint;
|
|
28
|
+
export declare function vectorConfigToIndexConfigs(vectorsConfig: unknown): IndexConfigs;
|
|
29
|
+
export declare function payloadSchemaToIndexConfigs(payloadSchema?: unknown): IndexConfigs;
|
|
30
|
+
export declare function mergeIndexConfigs(...configs: IndexConfigs[]): IndexConfigs;
|
|
31
|
+
export declare function queryVectorAndField(query: unknown, using?: string): {
|
|
32
|
+
vector: DenseVector;
|
|
33
|
+
field: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function plainIndexConfigs(rawIndexConfigs: unknown): IndexConfigs;
|
|
36
|
+
export declare function qdrantVectorsConfig(indexConfigs: IndexConfigs): unknown;
|
|
37
|
+
export declare function validatePayloadFieldName(key: string): void;
|
|
38
|
+
export declare function distanceToSimilarity(distance: models.Distance | string): string;
|
|
39
|
+
export type { IndexConfigs };
|
|
40
|
+
//# sourceMappingURL=conversions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../src/compat/qdrant/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAGX,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAMtC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAC7C,KAAK,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAC9C,KAAK,YAAY,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAgBzD,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAG5D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAUxD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,EAAE,CAEpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAoCrD;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;CAAO,GACnF,MAAM,CAAC,MAAM,CAOf;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAA;CAAO,GACnF,MAAM,CAAC,WAAW,CAWpB;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,OAAO,GAAG,YAAY,CAgC/E;AAED,wBAAgB,2BAA2B,CAAC,aAAa,CAAC,EAAE,OAAO,GAAG,YAAY,CAcjF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAgB1E;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0CxC;AAED,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,OAAO,GAAG,YAAY,CAYxE;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAwBvE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAW1D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,CAO/E;AA4ID,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RESERVED_PREFIX = exports.ORIGINAL_ID_FIELD = exports.ID_FIELD = exports.DEFAULT_VECTOR_NAME = void 0;
|
|
37
|
+
exports.vectorFieldName = vectorFieldName;
|
|
38
|
+
exports.pointFromAny = pointFromAny;
|
|
39
|
+
exports.pointsToDocs = pointsToDocs;
|
|
40
|
+
exports.pointToDoc = pointToDoc;
|
|
41
|
+
exports.docToRecord = docToRecord;
|
|
42
|
+
exports.resultToScoredPoint = resultToScoredPoint;
|
|
43
|
+
exports.vectorConfigToIndexConfigs = vectorConfigToIndexConfigs;
|
|
44
|
+
exports.payloadSchemaToIndexConfigs = payloadSchemaToIndexConfigs;
|
|
45
|
+
exports.mergeIndexConfigs = mergeIndexConfigs;
|
|
46
|
+
exports.queryVectorAndField = queryVectorAndField;
|
|
47
|
+
exports.plainIndexConfigs = plainIndexConfigs;
|
|
48
|
+
exports.qdrantVectorsConfig = qdrantVectorsConfig;
|
|
49
|
+
exports.validatePayloadFieldName = validatePayloadFieldName;
|
|
50
|
+
exports.distanceToSimilarity = distanceToSimilarity;
|
|
51
|
+
const models_js_1 = require("./models.js");
|
|
52
|
+
const models = __importStar(require("./models.js"));
|
|
53
|
+
const errors_js_1 = require("./errors.js");
|
|
54
|
+
exports.DEFAULT_VECTOR_NAME = "_qdrant_vector";
|
|
55
|
+
exports.ID_FIELD = "id";
|
|
56
|
+
exports.ORIGINAL_ID_FIELD = "_qdrant_id";
|
|
57
|
+
exports.RESERVED_PREFIX = "_qdrant_";
|
|
58
|
+
const payloadSchemaTypeAliases = {
|
|
59
|
+
keyword: "keyword",
|
|
60
|
+
integer: "long",
|
|
61
|
+
int: "long",
|
|
62
|
+
long: "long",
|
|
63
|
+
float: "double",
|
|
64
|
+
double: "double",
|
|
65
|
+
bool: "boolean",
|
|
66
|
+
boolean: "boolean",
|
|
67
|
+
datetime: "datetime",
|
|
68
|
+
text: "text",
|
|
69
|
+
uuid: "keyword",
|
|
70
|
+
};
|
|
71
|
+
function vectorFieldName(name) {
|
|
72
|
+
if (name == null || name === "")
|
|
73
|
+
return exports.DEFAULT_VECTOR_NAME;
|
|
74
|
+
return `${exports.DEFAULT_VECTOR_NAME}_${String(name).replaceAll(".", "_")}`;
|
|
75
|
+
}
|
|
76
|
+
function pointFromAny(point) {
|
|
77
|
+
if (point instanceof models_js_1.PointStruct)
|
|
78
|
+
return point;
|
|
79
|
+
if (isObject(point) && "id" in point && "vector" in point) {
|
|
80
|
+
return new models_js_1.PointStruct(point);
|
|
81
|
+
}
|
|
82
|
+
throw new errors_js_1.QdrantCompatValidationError(`Unsupported point type: ${typeof point}`);
|
|
83
|
+
}
|
|
84
|
+
function pointsToDocs(points) {
|
|
85
|
+
return Array.from(points, pointToDoc);
|
|
86
|
+
}
|
|
87
|
+
function pointToDoc(point) {
|
|
88
|
+
const item = pointFromAny(point);
|
|
89
|
+
const payload = { ...(item.payload ?? {}) };
|
|
90
|
+
validatePayload(payload);
|
|
91
|
+
const doc = {
|
|
92
|
+
[exports.ID_FIELD]: String(item.id),
|
|
93
|
+
[exports.ORIGINAL_ID_FIELD]: item.id,
|
|
94
|
+
...payload,
|
|
95
|
+
};
|
|
96
|
+
if (isDenseVector(item.vector)) {
|
|
97
|
+
doc[exports.DEFAULT_VECTOR_NAME] = item.vector;
|
|
98
|
+
return doc;
|
|
99
|
+
}
|
|
100
|
+
if (isObject(item.vector)) {
|
|
101
|
+
for (const [name, vector] of Object.entries(item.vector)) {
|
|
102
|
+
if (isSparseVectorLike(vector)) {
|
|
103
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Sparse vectors are not supported in v1 Qdrant compatibility upsert");
|
|
104
|
+
}
|
|
105
|
+
if (!isDenseVector(vector)) {
|
|
106
|
+
throw new errors_js_1.QdrantCompatValidationError("Named point vectors must be dense vector arrays");
|
|
107
|
+
}
|
|
108
|
+
doc[vectorFieldName(name)] = vector;
|
|
109
|
+
}
|
|
110
|
+
return doc;
|
|
111
|
+
}
|
|
112
|
+
throw new errors_js_1.QdrantCompatValidationError("Point vector must be a dense vector array or named vector object");
|
|
113
|
+
}
|
|
114
|
+
function docToRecord(input, options = {}) {
|
|
115
|
+
const doc = unwrapDoc(input);
|
|
116
|
+
return new models.Record({
|
|
117
|
+
id: docId(doc),
|
|
118
|
+
payload: payloadFromDoc(doc, options.withPayload ?? true),
|
|
119
|
+
vector: vectorFromDoc(doc, options.withVectors ?? false),
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function resultToScoredPoint(result, options = {}) {
|
|
123
|
+
const doc = unwrapDoc(result);
|
|
124
|
+
const score = isObject(result) && typeof result["score"] === "number"
|
|
125
|
+
? result["score"]
|
|
126
|
+
: undefined;
|
|
127
|
+
return new models.ScoredPoint({
|
|
128
|
+
id: docId(doc),
|
|
129
|
+
score,
|
|
130
|
+
payload: payloadFromDoc(doc, options.withPayload ?? true),
|
|
131
|
+
vector: vectorFromDoc(doc, options.withVectors ?? false),
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function vectorConfigToIndexConfigs(vectorsConfig) {
|
|
135
|
+
if (isVectorParamsLike(vectorsConfig)) {
|
|
136
|
+
const params = vectorParamsFromAny(vectorsConfig);
|
|
137
|
+
return {
|
|
138
|
+
[exports.DEFAULT_VECTOR_NAME]: {
|
|
139
|
+
type: "vector",
|
|
140
|
+
dimensions: params.size,
|
|
141
|
+
similarity: distanceToSimilarity(params.distance),
|
|
142
|
+
},
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
if (isObject(vectorsConfig)) {
|
|
146
|
+
if ("size" in vectorsConfig) {
|
|
147
|
+
return vectorConfigToIndexConfigs(vectorParamsFromAny(vectorsConfig));
|
|
148
|
+
}
|
|
149
|
+
const indexConfigs = {};
|
|
150
|
+
for (const [name, rawParams] of Object.entries(vectorsConfig)) {
|
|
151
|
+
const params = vectorParamsFromAny(rawParams);
|
|
152
|
+
indexConfigs[vectorFieldName(name)] = {
|
|
153
|
+
type: "vector",
|
|
154
|
+
dimensions: params.size,
|
|
155
|
+
similarity: distanceToSimilarity(params.distance),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
return indexConfigs;
|
|
159
|
+
}
|
|
160
|
+
throw new errors_js_1.QdrantCompatValidationError("vectorsConfig must be VectorParams or a mapping of vector names");
|
|
161
|
+
}
|
|
162
|
+
function payloadSchemaToIndexConfigs(payloadSchema) {
|
|
163
|
+
if (payloadSchema == null)
|
|
164
|
+
return {};
|
|
165
|
+
if (!isObject(payloadSchema)) {
|
|
166
|
+
throw new errors_js_1.QdrantCompatValidationError("payloadSchema must be a mapping of payload field names to schema types");
|
|
167
|
+
}
|
|
168
|
+
const indexConfigs = {};
|
|
169
|
+
for (const [fieldName, rawSchema] of Object.entries(payloadSchema)) {
|
|
170
|
+
validatePayloadFieldName(fieldName);
|
|
171
|
+
indexConfigs[fieldName] = { type: payloadSchemaType(rawSchema) };
|
|
172
|
+
}
|
|
173
|
+
return indexConfigs;
|
|
174
|
+
}
|
|
175
|
+
function mergeIndexConfigs(...configs) {
|
|
176
|
+
const merged = {};
|
|
177
|
+
for (const config of configs) {
|
|
178
|
+
for (const [fieldName, indexConfig] of Object.entries(config)) {
|
|
179
|
+
if (fieldName in merged &&
|
|
180
|
+
JSON.stringify(merged[fieldName]) !== JSON.stringify(indexConfig)) {
|
|
181
|
+
throw new errors_js_1.QdrantCompatValidationError(`Conflicting index config for field ${fieldName}`);
|
|
182
|
+
}
|
|
183
|
+
merged[fieldName] = { ...indexConfig };
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return merged;
|
|
187
|
+
}
|
|
188
|
+
function queryVectorAndField(query, using) {
|
|
189
|
+
if (isDenseVector(query)) {
|
|
190
|
+
return { vector: query, field: vectorFieldName(using) };
|
|
191
|
+
}
|
|
192
|
+
if (Array.isArray(query) && query.length === 2 && typeof query[0] === "string") {
|
|
193
|
+
const vector = query[1];
|
|
194
|
+
if (!isDenseVector(vector)) {
|
|
195
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Only dense vector arrays are supported in v1");
|
|
196
|
+
}
|
|
197
|
+
return { vector, field: vectorFieldName(query[0]) };
|
|
198
|
+
}
|
|
199
|
+
if (isObject(query)) {
|
|
200
|
+
if ("nearest" in query) {
|
|
201
|
+
return queryVectorAndField(query["nearest"], using);
|
|
202
|
+
}
|
|
203
|
+
if ("vector" in query) {
|
|
204
|
+
const rawVector = query["vector"];
|
|
205
|
+
if (isObject(rawVector) && "name" in rawVector && "vector" in rawVector) {
|
|
206
|
+
const namedVector = rawVector["vector"];
|
|
207
|
+
if (!isDenseVector(namedVector)) {
|
|
208
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Only dense vector arrays are supported in v1");
|
|
209
|
+
}
|
|
210
|
+
return { vector: namedVector, field: vectorFieldName(String(rawVector["name"])) };
|
|
211
|
+
}
|
|
212
|
+
if (!isDenseVector(rawVector)) {
|
|
213
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Only dense vector arrays are supported in v1");
|
|
214
|
+
}
|
|
215
|
+
return { vector: rawVector, field: vectorFieldName(using) };
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Only dense vector queryPoints/search inputs are supported in v1");
|
|
219
|
+
}
|
|
220
|
+
function plainIndexConfigs(rawIndexConfigs) {
|
|
221
|
+
if (!isObject(rawIndexConfigs))
|
|
222
|
+
return {};
|
|
223
|
+
const result = {};
|
|
224
|
+
for (const [fieldName, rawIndexConfig] of Object.entries(rawIndexConfigs)) {
|
|
225
|
+
if (!isObject(rawIndexConfig))
|
|
226
|
+
continue;
|
|
227
|
+
const normalized = {};
|
|
228
|
+
for (const [key, value] of Object.entries(rawIndexConfig)) {
|
|
229
|
+
if (value !== undefined && value !== null)
|
|
230
|
+
normalized[key] = value;
|
|
231
|
+
}
|
|
232
|
+
result[fieldName] = normalized;
|
|
233
|
+
}
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
function qdrantVectorsConfig(indexConfigs) {
|
|
237
|
+
let unnamedVector;
|
|
238
|
+
const namedVectors = {};
|
|
239
|
+
for (const [fieldName, indexConfig] of Object.entries(indexConfigs)) {
|
|
240
|
+
if (indexConfig["type"] !== "vector")
|
|
241
|
+
continue;
|
|
242
|
+
const params = new models_js_1.VectorParams({
|
|
243
|
+
size: Number(indexConfig["dimensions"]),
|
|
244
|
+
distance: similarityToDistance(indexConfig["similarity"]),
|
|
245
|
+
});
|
|
246
|
+
if (fieldName === exports.DEFAULT_VECTOR_NAME) {
|
|
247
|
+
unnamedVector = params;
|
|
248
|
+
}
|
|
249
|
+
else if (fieldName.startsWith(`${exports.DEFAULT_VECTOR_NAME}_`)) {
|
|
250
|
+
namedVectors[fieldName.slice(exports.DEFAULT_VECTOR_NAME.length + 1)] = params;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (unnamedVector !== undefined && Object.keys(namedVectors).length === 0) {
|
|
254
|
+
return unnamedVector;
|
|
255
|
+
}
|
|
256
|
+
if (unnamedVector !== undefined) {
|
|
257
|
+
namedVectors[""] = unnamedVector;
|
|
258
|
+
}
|
|
259
|
+
return namedVectors;
|
|
260
|
+
}
|
|
261
|
+
function validatePayloadFieldName(key) {
|
|
262
|
+
if (key.startsWith(exports.RESERVED_PREFIX)) {
|
|
263
|
+
throw new errors_js_1.QdrantCompatValidationError(`Payload field ${key} uses reserved prefix ${exports.RESERVED_PREFIX}`);
|
|
264
|
+
}
|
|
265
|
+
if (key === exports.ID_FIELD) {
|
|
266
|
+
throw new errors_js_1.QdrantCompatValidationError("Payload field 'id' conflicts with the Qdrant point id");
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
function distanceToSimilarity(distance) {
|
|
270
|
+
if (distance === models_js_1.Distance.COSINE || distance === "cosine")
|
|
271
|
+
return "cosine";
|
|
272
|
+
if (distance === models_js_1.Distance.EUCLID || distance === "euclidean")
|
|
273
|
+
return "euclidean";
|
|
274
|
+
if (distance === models_js_1.Distance.DOT || distance === "dot_product")
|
|
275
|
+
return "dot_product";
|
|
276
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError(`Qdrant distance ${String(distance)} is not supported`);
|
|
277
|
+
}
|
|
278
|
+
function vectorParamsFromAny(value) {
|
|
279
|
+
if (value instanceof models_js_1.VectorParams)
|
|
280
|
+
return value;
|
|
281
|
+
if (isObject(value) && "size" in value) {
|
|
282
|
+
const init = {
|
|
283
|
+
size: Number(value["size"]),
|
|
284
|
+
};
|
|
285
|
+
if (typeof value["distance"] === "string")
|
|
286
|
+
init.distance = value["distance"];
|
|
287
|
+
return new models_js_1.VectorParams(init);
|
|
288
|
+
}
|
|
289
|
+
throw new errors_js_1.QdrantCompatValidationError("vectorsConfig values must be VectorParams-like objects");
|
|
290
|
+
}
|
|
291
|
+
function similarityToDistance(similarity) {
|
|
292
|
+
const value = similarity ?? "cosine";
|
|
293
|
+
if (value === "cosine")
|
|
294
|
+
return models_js_1.Distance.COSINE;
|
|
295
|
+
if (value === "euclidean")
|
|
296
|
+
return models_js_1.Distance.EUCLID;
|
|
297
|
+
if (value === "dot_product")
|
|
298
|
+
return models_js_1.Distance.DOT;
|
|
299
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError(`LambdaDB similarity ${String(value)} cannot be represented as a Qdrant distance`);
|
|
300
|
+
}
|
|
301
|
+
function payloadSchemaType(rawSchema) {
|
|
302
|
+
let rawType;
|
|
303
|
+
if (typeof rawSchema === "string") {
|
|
304
|
+
rawType = rawSchema;
|
|
305
|
+
}
|
|
306
|
+
else if (isObject(rawSchema) && "type" in rawSchema) {
|
|
307
|
+
rawType = String(rawSchema["type"]);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
throw new errors_js_1.QdrantCompatValidationError(`Unsupported payload schema value: ${String(rawSchema)}`);
|
|
311
|
+
}
|
|
312
|
+
const normalized = rawType.toLowerCase();
|
|
313
|
+
if (normalized === "geo") {
|
|
314
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError("Geo payload indexes are not supported by LambdaDB Qdrant compatibility");
|
|
315
|
+
}
|
|
316
|
+
const mapped = payloadSchemaTypeAliases[normalized];
|
|
317
|
+
if (mapped === undefined) {
|
|
318
|
+
throw new errors_js_1.UnsupportedQdrantFeatureError(`Unsupported Qdrant payload schema type: ${rawType}`);
|
|
319
|
+
}
|
|
320
|
+
return mapped;
|
|
321
|
+
}
|
|
322
|
+
function validatePayload(payload) {
|
|
323
|
+
for (const key of Object.keys(payload)) {
|
|
324
|
+
validatePayloadFieldName(key);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
function payloadFromDoc(doc, selector) {
|
|
328
|
+
if (selector === false)
|
|
329
|
+
return undefined;
|
|
330
|
+
const selectedFields = Array.isArray(selector) ? new Set(selector) : undefined;
|
|
331
|
+
const payload = {};
|
|
332
|
+
for (const [key, value] of Object.entries(doc)) {
|
|
333
|
+
if (key !== exports.ID_FIELD &&
|
|
334
|
+
!key.startsWith(exports.RESERVED_PREFIX) &&
|
|
335
|
+
(selectedFields === undefined || selectedFields.has(key))) {
|
|
336
|
+
payload[key] = value;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return payload;
|
|
340
|
+
}
|
|
341
|
+
function vectorFromDoc(doc, selector) {
|
|
342
|
+
if (selector === false)
|
|
343
|
+
return undefined;
|
|
344
|
+
const selectedNames = Array.isArray(selector) ? new Set(selector) : undefined;
|
|
345
|
+
const named = {};
|
|
346
|
+
let defaultVector;
|
|
347
|
+
for (const [key, value] of Object.entries(doc)) {
|
|
348
|
+
if (key === exports.DEFAULT_VECTOR_NAME && shouldIncludeVectorName("", key, selectedNames)) {
|
|
349
|
+
defaultVector = value;
|
|
350
|
+
}
|
|
351
|
+
else if (key.startsWith(`${exports.DEFAULT_VECTOR_NAME}_`)) {
|
|
352
|
+
const name = key.slice(exports.DEFAULT_VECTOR_NAME.length + 1);
|
|
353
|
+
if (shouldIncludeVectorName(name, key, selectedNames))
|
|
354
|
+
named[name] = value;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (Object.keys(named).length > 0) {
|
|
358
|
+
if (defaultVector !== undefined)
|
|
359
|
+
named[""] = defaultVector;
|
|
360
|
+
return named;
|
|
361
|
+
}
|
|
362
|
+
return defaultVector;
|
|
363
|
+
}
|
|
364
|
+
function shouldIncludeVectorName(qdrantName, internalName, selectedNames) {
|
|
365
|
+
return selectedNames === undefined ||
|
|
366
|
+
selectedNames.has(qdrantName) ||
|
|
367
|
+
selectedNames.has(internalName);
|
|
368
|
+
}
|
|
369
|
+
function docId(doc) {
|
|
370
|
+
const originalId = doc[exports.ORIGINAL_ID_FIELD];
|
|
371
|
+
if (typeof originalId === "string" || typeof originalId === "number") {
|
|
372
|
+
return originalId;
|
|
373
|
+
}
|
|
374
|
+
const id = doc[exports.ID_FIELD];
|
|
375
|
+
if (typeof id === "string" || typeof id === "number")
|
|
376
|
+
return id;
|
|
377
|
+
return "";
|
|
378
|
+
}
|
|
379
|
+
function unwrapDoc(input) {
|
|
380
|
+
if (isObject(input) && isObject(input["doc"]))
|
|
381
|
+
return input["doc"];
|
|
382
|
+
if (isObject(input))
|
|
383
|
+
return input;
|
|
384
|
+
throw new errors_js_1.QdrantCompatValidationError("LambdaDB result doc must be an object");
|
|
385
|
+
}
|
|
386
|
+
function isVectorParamsLike(value) {
|
|
387
|
+
return value instanceof models_js_1.VectorParams || (isObject(value) && "size" in value);
|
|
388
|
+
}
|
|
389
|
+
function isDenseVector(value) {
|
|
390
|
+
return Array.isArray(value) && value.every((item) => typeof item === "number");
|
|
391
|
+
}
|
|
392
|
+
function isSparseVectorLike(value) {
|
|
393
|
+
return value instanceof models_js_1.SparseVector ||
|
|
394
|
+
(isObject(value) && Array.isArray(value["indices"]) && Array.isArray(value["values"]));
|
|
395
|
+
}
|
|
396
|
+
function isObject(value) {
|
|
397
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=conversions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.js","sourceRoot":"","sources":["../../../../src/compat/qdrant/conversions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class QdrantCompatError extends Error {
|
|
2
|
+
constructor(message: string, options?: ErrorOptions);
|
|
3
|
+
}
|
|
4
|
+
export declare class UnsupportedQdrantFeatureError extends QdrantCompatError {
|
|
5
|
+
constructor(message: string, options?: ErrorOptions);
|
|
6
|
+
}
|
|
7
|
+
export declare class QdrantCompatValidationError extends QdrantCompatError {
|
|
8
|
+
constructor(message: string, options?: ErrorOptions);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/compat/qdrant/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,6BAA8B,SAAQ,iBAAiB;gBACtD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;gBACpD,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QdrantCompatValidationError = exports.UnsupportedQdrantFeatureError = exports.QdrantCompatError = void 0;
|
|
4
|
+
class QdrantCompatError extends Error {
|
|
5
|
+
constructor(message, options) {
|
|
6
|
+
super(message, options);
|
|
7
|
+
this.name = "QdrantCompatError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.QdrantCompatError = QdrantCompatError;
|
|
11
|
+
class UnsupportedQdrantFeatureError extends QdrantCompatError {
|
|
12
|
+
constructor(message, options) {
|
|
13
|
+
super(message, options);
|
|
14
|
+
this.name = "UnsupportedQdrantFeatureError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.UnsupportedQdrantFeatureError = UnsupportedQdrantFeatureError;
|
|
18
|
+
class QdrantCompatValidationError extends QdrantCompatError {
|
|
19
|
+
constructor(message, options) {
|
|
20
|
+
super(message, options);
|
|
21
|
+
this.name = "QdrantCompatValidationError";
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.QdrantCompatValidationError = QdrantCompatValidationError;
|
|
25
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/compat/qdrant/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC;AAED,MAAa,6BAA8B,SAAQ,iBAAiB;IAClE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AALD,sEAKC;AAED,MAAa,2BAA4B,SAAQ,iBAAiB;IAChE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AALD,kEAKC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Filter } from "./models.js";
|
|
2
|
+
type JsonObject = {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
};
|
|
5
|
+
type LambdaDBQuery = {
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
};
|
|
8
|
+
export declare function filterToLambdaDB(qdrantFilter: Filter | JsonObject | null | undefined): LambdaDBQuery;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../src/compat/qdrant/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAQP,MAAM,aAAa,CAAC;AAMrB,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAC7C,KAAK,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEhD,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,CAiBpG"}
|