@oracle/langchain-oracledb 0.2.0 → 1.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/README.md +62 -1
- package/dist/cache.cjs +535 -0
- package/dist/cache.cjs.map +1 -0
- package/dist/cache.d.cts +168 -0
- package/dist/cache.d.ts +168 -0
- package/dist/cache.js +527 -0
- package/dist/cache.js.map +1 -0
- package/dist/chatMessageHistories.cjs +345 -0
- package/dist/chatMessageHistories.cjs.map +1 -0
- package/dist/chatMessageHistories.d.cts +107 -0
- package/dist/chatMessageHistories.d.ts +107 -0
- package/dist/chatMessageHistories.js +338 -0
- package/dist/chatMessageHistories.js.map +1 -0
- package/dist/document_loaders.cjs +4 -3
- package/dist/document_loaders.cjs.map +1 -1
- package/dist/document_loaders.js +4 -3
- package/dist/document_loaders.js.map +1 -1
- package/dist/errors.cjs +123 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +57 -0
- package/dist/errors.d.ts +57 -0
- package/dist/errors.js +113 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.cjs +11 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/utils.cjs +49 -0
- package/dist/utils.cjs.map +1 -0
- package/dist/utils.d.cts +5 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.js +44 -0
- package/dist/utils.js.map +1 -0
- package/dist/vectorstores.cjs +156 -108
- package/dist/vectorstores.cjs.map +1 -1
- package/dist/vectorstores.d.cts +11 -3
- package/dist/vectorstores.d.ts +11 -3
- package/dist/vectorstores.js +137 -91
- package/dist/vectorstores.js.map +1 -1
- package/package.json +27 -26
package/dist/vectorstores.js
CHANGED
|
@@ -3,6 +3,17 @@ import oracledb from "oracledb";
|
|
|
3
3
|
import { VectorStore, } from "@langchain/core/vectorstores";
|
|
4
4
|
import { Document } from "@langchain/core/documents";
|
|
5
5
|
import { maximalMarginalRelevance } from "@langchain/core/utils/math";
|
|
6
|
+
import { LangChainOracleError, ErrorCode, isLangChainOracleError, throwError, handleError, } from "./errors.js";
|
|
7
|
+
import { quoteIdentifier, } from "./utils.js";
|
|
8
|
+
export { LangChainOracleError, ErrorCode };
|
|
9
|
+
export { LangChainOracleError as OracleVSError, ErrorCode as OracleVSErrorCode, };
|
|
10
|
+
export { isLangChainOracleError };
|
|
11
|
+
function validateMetadataKey(column) {
|
|
12
|
+
const pattern = /^[a-zA-Z0-9_.[\],\s*]*$/;
|
|
13
|
+
if (!column || !pattern.test(column)) {
|
|
14
|
+
throwError(ErrorCode.FILTER_INVALID_METADATA_KEY, column);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
6
17
|
export function generateWhereClause(dbFilter, bindValues) {
|
|
7
18
|
// Handle $and
|
|
8
19
|
if ("$and" in dbFilter && Array.isArray(dbFilter.$and)) {
|
|
@@ -37,6 +48,7 @@ export function generateWhereClause(dbFilter, bindValues) {
|
|
|
37
48
|
: conditions[0];
|
|
38
49
|
}
|
|
39
50
|
function generateOperatorCondition(column, operator, value, bindValues) {
|
|
51
|
+
validateMetadataKey(column);
|
|
40
52
|
switch (operator) {
|
|
41
53
|
case "$eq":
|
|
42
54
|
return jsonCompare(column, "=", value, bindValues);
|
|
@@ -51,20 +63,23 @@ function generateOperatorCondition(column, operator, value, bindValues) {
|
|
|
51
63
|
case "$gte":
|
|
52
64
|
return jsonCompare(column, ">=", value, bindValues);
|
|
53
65
|
case "$in": {
|
|
54
|
-
if (!Array.isArray(value))
|
|
55
|
-
|
|
66
|
+
if (!Array.isArray(value)) {
|
|
67
|
+
throwError(ErrorCode.FILTER_INVALID_VALUE, "$in requires array");
|
|
68
|
+
}
|
|
56
69
|
const inClauses = value.map((v) => jsonCompare(column, "=", v, bindValues));
|
|
57
70
|
return `(${inClauses.join(" OR ")})`;
|
|
58
71
|
}
|
|
59
72
|
case "$nin": {
|
|
60
|
-
if (!Array.isArray(value))
|
|
61
|
-
|
|
73
|
+
if (!Array.isArray(value)) {
|
|
74
|
+
throwError(ErrorCode.FILTER_INVALID_VALUE, "$nin requires array");
|
|
75
|
+
}
|
|
62
76
|
const ninClauses = value.map((v) => jsonCompare(column, "!=", v, bindValues));
|
|
63
77
|
return `(${ninClauses.join(" AND ")})`;
|
|
64
78
|
}
|
|
65
79
|
case "$between": {
|
|
66
|
-
if (!Array.isArray(value) || value.length !== 2)
|
|
67
|
-
|
|
80
|
+
if (!Array.isArray(value) || value.length !== 2) {
|
|
81
|
+
throwError(ErrorCode.FILTER_INVALID_VALUE, "$between requires [low, high]");
|
|
82
|
+
}
|
|
68
83
|
const [low, high] = value;
|
|
69
84
|
bindValues.push(low, high);
|
|
70
85
|
const posLow = bindValues.length - 1;
|
|
@@ -79,7 +94,7 @@ function generateOperatorCondition(column, operator, value, bindValues) {
|
|
|
79
94
|
return `NOT JSON_EXISTS(metadata, '$.${column}')`;
|
|
80
95
|
}
|
|
81
96
|
default:
|
|
82
|
-
|
|
97
|
+
throwError(ErrorCode.FILTER_UNSUPPORTED_OPERATOR, operator);
|
|
83
98
|
}
|
|
84
99
|
}
|
|
85
100
|
// Helper: build JSON_EXISTS clause for comparison
|
|
@@ -109,42 +124,11 @@ export const DistanceStrategy = {
|
|
|
109
124
|
HAMMING: "HAMMING",
|
|
110
125
|
EUCLIDEAN_SQUARED: "EUCLIDEAN_SQUARED",
|
|
111
126
|
};
|
|
112
|
-
function handleError(error) {
|
|
113
|
-
// Type guard to check if the error is an object and has 'name' and 'message' properties
|
|
114
|
-
if (typeof error === "object" &&
|
|
115
|
-
error !== null &&
|
|
116
|
-
"name" in error &&
|
|
117
|
-
"message" in error) {
|
|
118
|
-
const err = error; // Type assertion based on guarded checks
|
|
119
|
-
// Handle specific error types based on the name property
|
|
120
|
-
switch (err.name) {
|
|
121
|
-
case "RuntimeError":
|
|
122
|
-
throw new Error("Database operation failed due to a runtime error.");
|
|
123
|
-
case "ValidationError":
|
|
124
|
-
throw new Error("Operation failed due to a validation error.");
|
|
125
|
-
default:
|
|
126
|
-
throw new Error(`An unexpected error occurred during the operation. ${error}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
throw new Error(`An unknown and unexpected error occurred. ${error}`);
|
|
130
|
-
}
|
|
131
127
|
function isPool(client) {
|
|
132
128
|
return "getConnection" in client;
|
|
133
129
|
}
|
|
134
|
-
function
|
|
135
|
-
|
|
136
|
-
const validateRegex = /^(?:"[^"]+"|[^".]+)(?:\.(?:"[^"]+"|[^".]+))*$/;
|
|
137
|
-
if (!validateRegex.test(name)) {
|
|
138
|
-
throw new Error(`Identifier name ${identifier} is not valid.`);
|
|
139
|
-
}
|
|
140
|
-
// extracts parts of the identifier with quoted and unquoted.
|
|
141
|
-
const matchRegex = /"([^"]+)"|([^".]+)/g;
|
|
142
|
-
const groups = [];
|
|
143
|
-
for (const match of name.matchAll(matchRegex)) {
|
|
144
|
-
groups.push(match[1] || match[2]);
|
|
145
|
-
}
|
|
146
|
-
const quotedParts = groups.map((g) => `"${g}"`);
|
|
147
|
-
return quotedParts.join(".");
|
|
130
|
+
function isClientProvider(client) {
|
|
131
|
+
return typeof client === "function";
|
|
148
132
|
}
|
|
149
133
|
const isFloat32Array = (value) =>
|
|
150
134
|
// eslint-disable-next-line no-instanceof/no-instanceof
|
|
@@ -179,25 +163,26 @@ function normalizeVectorFormat(value, vectorType) {
|
|
|
179
163
|
const format = validFormats.includes(normalizedValue)
|
|
180
164
|
? normalizedValue
|
|
181
165
|
: VectorElementFormat.FLOAT32;
|
|
182
|
-
if (vectorType === VectorType.SPARSE &&
|
|
183
|
-
|
|
166
|
+
if (vectorType === VectorType.SPARSE &&
|
|
167
|
+
format === VectorElementFormat.BINARY) {
|
|
168
|
+
throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "BINARY format is not supported for SPARSE vectors.");
|
|
184
169
|
}
|
|
185
170
|
return format;
|
|
186
171
|
}
|
|
187
172
|
function buildVectorColumnDefinition(embeddingDim, customization) {
|
|
188
173
|
if (embeddingDim === undefined || embeddingDim === null) {
|
|
189
|
-
|
|
174
|
+
throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Embedding dimension is required to create the vector column.");
|
|
190
175
|
}
|
|
191
176
|
if (!Number.isInteger(embeddingDim) || embeddingDim <= 0) {
|
|
192
|
-
|
|
177
|
+
throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Embedding dimension must be a positive integer.");
|
|
193
178
|
}
|
|
194
179
|
const vectorType = normalizeVectorTypeValue(customization?.vectorType);
|
|
195
180
|
if (vectorType === VectorType.SPARSE && customization?.format === undefined) {
|
|
196
|
-
|
|
181
|
+
throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "Sparse vector type requires a vector format to be specified.");
|
|
197
182
|
}
|
|
198
183
|
const format = normalizeVectorFormat(customization?.format, vectorType);
|
|
199
184
|
if (format === VectorElementFormat.BINARY && embeddingDim % 8 !== 0) {
|
|
200
|
-
|
|
185
|
+
throwError(ErrorCode.VECTOR_INVALID_CONFIGURATION, "BINARY vector format requires dimensions to be a multiple of 8.");
|
|
201
186
|
}
|
|
202
187
|
const dimensionSegment = String(embeddingDim);
|
|
203
188
|
const formatSegment = format ?? VectorElementFormat.FLOAT32;
|
|
@@ -288,7 +273,7 @@ function convertDenseVectorForFormat(values, format) {
|
|
|
288
273
|
for (let i = 0; i < values.length; i += 1) {
|
|
289
274
|
const rounded = Math.round(values[i]);
|
|
290
275
|
if (rounded < -128 || rounded > 127) {
|
|
291
|
-
|
|
276
|
+
throwError(ErrorCode.VECTOR_INVALID_VALUE, "INT8 vector values must be within [-128, 127].");
|
|
292
277
|
}
|
|
293
278
|
clamped[i] = rounded;
|
|
294
279
|
}
|
|
@@ -327,7 +312,7 @@ async function createHNSWIndex(connection, oraclevs, params = {}) {
|
|
|
327
312
|
const { idxName = _getIndexName("HNSW"), idxType = "HNSW", neighbors = 32, efConstruction = 200, accuracy = 90, parallel = 8, ...extra } = params;
|
|
328
313
|
const invalidKeys = Object.keys(extra);
|
|
329
314
|
if (invalidKeys.length > 0) {
|
|
330
|
-
|
|
315
|
+
throwError(ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS, invalidKeys);
|
|
331
316
|
}
|
|
332
317
|
const ddl = `
|
|
333
318
|
CREATE VECTOR INDEX IF NOT EXISTS ${quoteIdentifier(idxName)}
|
|
@@ -351,7 +336,7 @@ async function createIVFIndex(connection, oraclevs, params = {}) {
|
|
|
351
336
|
const { idxName = _getIndexName("IVF"), idxType = "IVF", neighborPart = 32, accuracy = 90, parallel = 8, ...extra } = params;
|
|
352
337
|
const invalidKeys = Object.keys(extra);
|
|
353
338
|
if (invalidKeys.length > 0) {
|
|
354
|
-
|
|
339
|
+
throwError(ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS, invalidKeys);
|
|
355
340
|
}
|
|
356
341
|
const ddl = `
|
|
357
342
|
CREATE VECTOR INDEX IF NOT EXISTS ${quoteIdentifier(idxName)}
|
|
@@ -391,6 +376,14 @@ export class OracleVS extends VectorStore {
|
|
|
391
376
|
writable: true,
|
|
392
377
|
value: void 0
|
|
393
378
|
});
|
|
379
|
+
// Tracks connections borrowed from a pool so retConnection() can return them
|
|
380
|
+
// without closing direct connections owned by the caller.
|
|
381
|
+
Object.defineProperty(this, "poolConnections", {
|
|
382
|
+
enumerable: true,
|
|
383
|
+
configurable: true,
|
|
384
|
+
writable: true,
|
|
385
|
+
value: new WeakSet()
|
|
386
|
+
});
|
|
394
387
|
Object.defineProperty(this, "embeddingDimension", {
|
|
395
388
|
enumerable: true,
|
|
396
389
|
configurable: true,
|
|
@@ -464,16 +457,20 @@ export class OracleVS extends VectorStore {
|
|
|
464
457
|
}
|
|
465
458
|
}
|
|
466
459
|
getActiveVectorType() {
|
|
467
|
-
return this.vectorType
|
|
460
|
+
return this.vectorType
|
|
461
|
+
? normalizeVectorTypeValue(this.vectorType)
|
|
462
|
+
: VectorType.DENSE;
|
|
468
463
|
}
|
|
469
464
|
ensureEmbeddingDimension() {
|
|
470
|
-
if (this.embeddingDimension === undefined ||
|
|
471
|
-
|
|
465
|
+
if (this.embeddingDimension === undefined ||
|
|
466
|
+
this.embeddingDimension === null) {
|
|
467
|
+
throwError(ErrorCode.STATE_INVALID, "Embedding dimension is not initialized for this vector store.");
|
|
472
468
|
}
|
|
473
469
|
return this.embeddingDimension;
|
|
474
470
|
}
|
|
475
471
|
prepareVectorForStorage(vector) {
|
|
476
|
-
if (this.embeddingDimension === undefined ||
|
|
472
|
+
if (this.embeddingDimension === undefined ||
|
|
473
|
+
this.embeddingDimension === null) {
|
|
477
474
|
this.embeddingDimension = vector.length;
|
|
478
475
|
}
|
|
479
476
|
const dimension = this.ensureEmbeddingDimension();
|
|
@@ -483,30 +480,63 @@ export class OracleVS extends VectorStore {
|
|
|
483
480
|
: VectorElementFormat.FLOAT32;
|
|
484
481
|
if (vectorType === VectorType.SPARSE) {
|
|
485
482
|
if (vector.length !== dimension) {
|
|
486
|
-
|
|
483
|
+
throwError(ErrorCode.VECTOR_INVALID_VALUE, "Sparse vectors must supply full-dimension arrays for conversion.");
|
|
487
484
|
}
|
|
488
|
-
|
|
485
|
+
// The dense-input SparseVector constructor stores its values as a
|
|
486
|
+
// Float64Array regardless of the typed array passed in, so FLOAT32 and
|
|
487
|
+
// INT8 query vectors reach the database as FLOAT64 and VECTOR_DISTANCE()
|
|
488
|
+
// fails with ORA-51812 against a non-FLOAT64 sparse column. The
|
|
489
|
+
// object-form constructor preserves the values' typed array, so build
|
|
490
|
+
// the nonzero indices/values explicitly and use that form.
|
|
491
|
+
const indices = [];
|
|
492
|
+
const nonzero = [];
|
|
489
493
|
if (format === VectorElementFormat.INT8) {
|
|
490
|
-
const clamped = new Int8Array(vector.length);
|
|
491
494
|
for (let i = 0; i < vector.length; i += 1) {
|
|
492
|
-
const
|
|
493
|
-
|
|
494
|
-
|
|
495
|
+
const value = vector[i];
|
|
496
|
+
const rounded = Math.round(value);
|
|
497
|
+
if (!Number.isFinite(value) || rounded < -128 || rounded > 127) {
|
|
498
|
+
throwError(ErrorCode.VECTOR_INVALID_VALUE, "INT8 sparse vector values must be finite and within [-128, 127].");
|
|
499
|
+
}
|
|
500
|
+
if (rounded !== 0) {
|
|
501
|
+
indices.push(i);
|
|
502
|
+
nonzero.push(rounded);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
else if (format === VectorElementFormat.FLOAT32) {
|
|
507
|
+
for (let i = 0; i < vector.length; i += 1) {
|
|
508
|
+
if (Math.fround(vector[i]) !== 0) {
|
|
509
|
+
indices.push(i);
|
|
510
|
+
nonzero.push(vector[i]);
|
|
495
511
|
}
|
|
496
|
-
clamped[i] = rounded;
|
|
497
512
|
}
|
|
498
|
-
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
for (let i = 0; i < vector.length; i += 1) {
|
|
516
|
+
if (vector[i] !== 0) {
|
|
517
|
+
indices.push(i);
|
|
518
|
+
nonzero.push(vector[i]);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
let values;
|
|
523
|
+
if (format === VectorElementFormat.INT8) {
|
|
524
|
+
values = new Int8Array(nonzero);
|
|
499
525
|
}
|
|
500
526
|
else if (format === VectorElementFormat.FLOAT64) {
|
|
501
|
-
|
|
527
|
+
values = new Float64Array(nonzero);
|
|
502
528
|
}
|
|
503
|
-
else
|
|
504
|
-
|
|
529
|
+
else {
|
|
530
|
+
values = new Float32Array(nonzero);
|
|
505
531
|
}
|
|
506
|
-
return new oracledb.SparseVector(
|
|
532
|
+
return new oracledb.SparseVector({
|
|
533
|
+
values,
|
|
534
|
+
indices: new Uint32Array(indices),
|
|
535
|
+
numDimensions: vector.length,
|
|
536
|
+
});
|
|
507
537
|
}
|
|
508
538
|
if (vector.length !== dimension) {
|
|
509
|
-
|
|
539
|
+
throwError(ErrorCode.VECTOR_INVALID_VALUE, "Vector length does not match the embedding dimension.");
|
|
510
540
|
}
|
|
511
541
|
return convertDenseVectorForFormat(vector, format);
|
|
512
542
|
}
|
|
@@ -519,7 +549,7 @@ export class OracleVS extends VectorStore {
|
|
|
519
549
|
if (isSparseVector(value)) {
|
|
520
550
|
const dense = value.dense?.();
|
|
521
551
|
if (!dense) {
|
|
522
|
-
|
|
552
|
+
throwError(ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION, "Unable to expand sparse vector to dense representation.");
|
|
523
553
|
}
|
|
524
554
|
if (isFloat32Array(dense)) {
|
|
525
555
|
return dense;
|
|
@@ -535,13 +565,16 @@ export class OracleVS extends VectorStore {
|
|
|
535
565
|
}
|
|
536
566
|
return Float32Array.from(dense);
|
|
537
567
|
}
|
|
538
|
-
if (isFloat32Array(value) ||
|
|
568
|
+
if (isFloat32Array(value) ||
|
|
569
|
+
isFloat64Array(value) ||
|
|
570
|
+
isInt8Array(value) ||
|
|
571
|
+
isUint8Array(value)) {
|
|
539
572
|
return value;
|
|
540
573
|
}
|
|
541
574
|
if (Array.isArray(value)) {
|
|
542
575
|
return value;
|
|
543
576
|
}
|
|
544
|
-
|
|
577
|
+
throwError(ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION, "Received unsupported vector representation from the database.");
|
|
545
578
|
}
|
|
546
579
|
// Normalizes any supported vector representation into Float32Array so downstream math
|
|
547
580
|
// (MMR, distance calculations) can assume a consistent element type without forcing
|
|
@@ -579,7 +612,7 @@ export class OracleVS extends VectorStore {
|
|
|
579
612
|
description: this.description,
|
|
580
613
|
annotations: this.annotations,
|
|
581
614
|
vectorType: this.vectorType,
|
|
582
|
-
format: this.vectorFormat
|
|
615
|
+
format: this.vectorFormat,
|
|
583
616
|
});
|
|
584
617
|
}
|
|
585
618
|
catch (error) {
|
|
@@ -590,12 +623,18 @@ export class OracleVS extends VectorStore {
|
|
|
590
623
|
await this.retConnection(connection);
|
|
591
624
|
}
|
|
592
625
|
}
|
|
626
|
+
async resolveClient() {
|
|
627
|
+
return isClientProvider(this.client) ? await this.client() : this.client;
|
|
628
|
+
}
|
|
593
629
|
async getConnection() {
|
|
594
630
|
try {
|
|
595
|
-
|
|
596
|
-
|
|
631
|
+
const client = await this.resolveClient();
|
|
632
|
+
if (isPool(client)) {
|
|
633
|
+
const connection = await client.getConnection();
|
|
634
|
+
this.poolConnections.add(connection);
|
|
635
|
+
return connection;
|
|
597
636
|
}
|
|
598
|
-
return
|
|
637
|
+
return client;
|
|
599
638
|
}
|
|
600
639
|
catch (error) {
|
|
601
640
|
handleError(error);
|
|
@@ -604,9 +643,10 @@ export class OracleVS extends VectorStore {
|
|
|
604
643
|
// Close connection or return it to the pool
|
|
605
644
|
async retConnection(connection) {
|
|
606
645
|
try {
|
|
607
|
-
// If
|
|
608
|
-
if (
|
|
646
|
+
// If this public connection came from any pool, close it to return it to the pool.
|
|
647
|
+
if (this.poolConnections.has(connection)) {
|
|
609
648
|
await connection.close();
|
|
649
|
+
this.poolConnections.delete(connection);
|
|
610
650
|
}
|
|
611
651
|
}
|
|
612
652
|
catch (error) {
|
|
@@ -624,16 +664,15 @@ export class OracleVS extends VectorStore {
|
|
|
624
664
|
*/
|
|
625
665
|
async addVectors(vectors, documents, options) {
|
|
626
666
|
if (vectors.length === 0) {
|
|
627
|
-
|
|
667
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "Vectors input null. Nothing to add...");
|
|
628
668
|
}
|
|
629
669
|
const inputIds = options?.ids;
|
|
630
670
|
let connection = null;
|
|
631
671
|
try {
|
|
632
672
|
// Ensure there are IDs for all documents
|
|
633
673
|
if (inputIds !== undefined && inputIds.length !== vectors.length) {
|
|
634
|
-
|
|
674
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "The number of ids must match the number of vectors provided.");
|
|
635
675
|
}
|
|
636
|
-
connection = await this.getConnection();
|
|
637
676
|
const finalIds = [];
|
|
638
677
|
const binds = [];
|
|
639
678
|
for (let index = 0; index < documents.length; index += 1) {
|
|
@@ -679,6 +718,7 @@ export class OracleVS extends VectorStore {
|
|
|
679
718
|
},
|
|
680
719
|
autoCommit: false,
|
|
681
720
|
};
|
|
721
|
+
connection = await this.getConnection();
|
|
682
722
|
await connection.executeMany(sql, binds, executeOptions);
|
|
683
723
|
// Commit once all inserts are queued up
|
|
684
724
|
await connection.commit();
|
|
@@ -709,14 +749,22 @@ export class OracleVS extends VectorStore {
|
|
|
709
749
|
let connection = null;
|
|
710
750
|
try {
|
|
711
751
|
const bindValues = [this.prepareQueryVector(query)];
|
|
752
|
+
const hasFilter = !!filter && Object.keys(filter).length > 0;
|
|
753
|
+
// Keep the vector index hint for unfiltered searches. When a JSON filter
|
|
754
|
+
// is present, forcing VECTOR_INDEX_TRANSFORM can change result semantics
|
|
755
|
+
// by doing approximate top-k before the filter is applied.
|
|
756
|
+
const selectClause = hasFilter
|
|
757
|
+
? "SELECT"
|
|
758
|
+
: `SELECT /*+ VECTOR_INDEX_TRANSFORM(${this.tableName}) */`;
|
|
712
759
|
let sqlQuery = `
|
|
713
|
-
|
|
760
|
+
${selectClause}
|
|
761
|
+
external_id,
|
|
714
762
|
text,
|
|
715
763
|
metadata,
|
|
716
764
|
vector_distance(embedding, :1, ${this.distanceStrategy}) as distance,
|
|
717
765
|
embedding
|
|
718
766
|
FROM ${this.tableName} `;
|
|
719
|
-
if (
|
|
767
|
+
if (hasFilter) {
|
|
720
768
|
sqlQuery += ` WHERE ${generateWhereClause(filter, bindValues)}`;
|
|
721
769
|
}
|
|
722
770
|
bindValues.push(k);
|
|
@@ -744,14 +792,10 @@ export class OracleVS extends VectorStore {
|
|
|
744
792
|
docsScoresAndEmbeddings.push([document, distance, embedding]);
|
|
745
793
|
}
|
|
746
794
|
}
|
|
747
|
-
else {
|
|
748
|
-
// Throw an exception if no rows are found
|
|
749
|
-
throw new Error("No rows found.");
|
|
750
|
-
}
|
|
751
795
|
}
|
|
752
796
|
finally {
|
|
753
797
|
if (connection) {
|
|
754
|
-
await
|
|
798
|
+
await this.retConnection(connection);
|
|
755
799
|
}
|
|
756
800
|
}
|
|
757
801
|
return docsScoresAndEmbeddings;
|
|
@@ -832,14 +876,16 @@ export class OracleVS extends VectorStore {
|
|
|
832
876
|
handleError(error);
|
|
833
877
|
}
|
|
834
878
|
finally {
|
|
835
|
-
if (connection)
|
|
836
|
-
await
|
|
879
|
+
if (connection) {
|
|
880
|
+
await this.retConnection(connection);
|
|
881
|
+
}
|
|
837
882
|
}
|
|
838
883
|
}
|
|
839
884
|
static async fromDocuments(documents, embeddings, dbConfig, options) {
|
|
840
885
|
const { client } = dbConfig;
|
|
841
|
-
if (!client)
|
|
842
|
-
|
|
886
|
+
if (!client) {
|
|
887
|
+
throwError(ErrorCode.VALIDATION_MISSING_REQUIRED_PARAMETER, "client");
|
|
888
|
+
}
|
|
843
889
|
try {
|
|
844
890
|
const vss = new OracleVS(embeddings, dbConfig);
|
|
845
891
|
await vss.initialize();
|
|
@@ -859,8 +905,8 @@ export class OracleVS extends VectorStore {
|
|
|
859
905
|
* inside the pool are terminated.
|
|
860
906
|
*/
|
|
861
907
|
async end() {
|
|
862
|
-
if (isPool(this.client)) {
|
|
863
|
-
await this.client
|
|
908
|
+
if (!isClientProvider(this.client) && isPool(this.client)) {
|
|
909
|
+
await this.client.close();
|
|
864
910
|
}
|
|
865
911
|
}
|
|
866
912
|
}
|
package/dist/vectorstores.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vectorstores.js","sourceRoot":"","sources":["../src/vectorstores.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vectorstores.js","sourceRoot":"","sources":["../src/vectorstores.ts"],"names":[],"mappings":"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"}
|