@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
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
import { BaseListChatMessageHistory } from "@langchain/core/chat_history";
|
|
2
|
+
import { dropTablePurge } from "./vectorstores.js";
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import oracledb from "oracledb";
|
|
5
|
+
import { ErrorCode, throwError, handleError, createErrorFromCodeWithCause, } from "./errors.js";
|
|
6
|
+
import { mapStoredMessageToChatMessage, } from "@langchain/core/messages";
|
|
7
|
+
import { withConnection, quoteIdentifier, } from "./utils.js";
|
|
8
|
+
const DEFAULT_TABLE_NAME = "langchain_message_store";
|
|
9
|
+
const DEFAULT_SESSION_ID_KEY = "session_id";
|
|
10
|
+
const DEFAULT_HISTORY_KEY = "message";
|
|
11
|
+
const DEFAULT_ID_KEY = quoteIdentifier("id");
|
|
12
|
+
function unqualifiedIdentifier(name) {
|
|
13
|
+
return name.replaceAll('"', "").split(".").pop();
|
|
14
|
+
}
|
|
15
|
+
function defaultIndexName(tableName, sessionIdKey) {
|
|
16
|
+
const baseName = `idx_${unqualifiedIdentifier(tableName)}_` +
|
|
17
|
+
unqualifiedIdentifier(sessionIdKey);
|
|
18
|
+
const encoded = Buffer.from(baseName, "utf-8");
|
|
19
|
+
if (encoded.length <= 128)
|
|
20
|
+
return baseName;
|
|
21
|
+
const digest = createHash("sha1").update(encoded).digest("hex").slice(0, 8);
|
|
22
|
+
const prefix = new TextDecoder("utf-8").decode(encoded.subarray(0, 119), {
|
|
23
|
+
stream: true,
|
|
24
|
+
});
|
|
25
|
+
return `${prefix}_${digest}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Stores conversation messages in Oracle Database, with one row per message
|
|
29
|
+
* and a session ID identifying each conversation. Extends BaseListChatMessageHistory.
|
|
30
|
+
*
|
|
31
|
+
* Call `createTables()` before using the history unless the table already exists.
|
|
32
|
+
* A single table can hold many sessions separated by the configured session ID column.
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* // `pool` is an Oracle connection pool.
|
|
36
|
+
* await OracleChatMessageHistory.createTables({
|
|
37
|
+
* client: pool,
|
|
38
|
+
* tableName: "langchain_chat_histories"
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* const chatHistory = new OracleChatMessageHistory({
|
|
42
|
+
* client: pool,
|
|
43
|
+
* tableName: "langchain_chat_histories",
|
|
44
|
+
* sessionId: "lc-example",
|
|
45
|
+
* historySize: 20,
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export class OracleChatMessageHistory extends BaseListChatMessageHistory {
|
|
51
|
+
/**
|
|
52
|
+
* Creates an OracleChatMessageHistory instance without performing database setup.
|
|
53
|
+
* @param {OracleChatMessageHistoryInput} options The history configuration.
|
|
54
|
+
* @param {OracleDBClient | OracleDBClientProvider} options.client The connection, pool, or async provider to use.
|
|
55
|
+
* @param {string} options.sessionId The session ID used to store and retrieve messages.
|
|
56
|
+
* @param {string} options.tableName Table used to store chat history rows. Defaults to `langchain_message_store`.
|
|
57
|
+
* @param {string} options.sessionIdKey Column containing the session identifier. Defaults to `session_id`.
|
|
58
|
+
* @param {string} options.historyKey Column containing the serialized message payload. Defaults to `message`.
|
|
59
|
+
* @param {number} options.historySize Optional maximum number of most recent messages to return.
|
|
60
|
+
* @throws If the client is missing, the session ID is empty or not a string,
|
|
61
|
+
* an identifier is invalid, or the history size is not a positive safe integer.
|
|
62
|
+
*/
|
|
63
|
+
constructor({ client, sessionId, tableName = DEFAULT_TABLE_NAME, sessionIdKey = DEFAULT_SESSION_ID_KEY, historyKey = DEFAULT_HISTORY_KEY, historySize, }) {
|
|
64
|
+
super();
|
|
65
|
+
Object.defineProperty(this, "lc_namespace", {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
configurable: true,
|
|
68
|
+
writable: true,
|
|
69
|
+
value: ["langchain", "stores", "message", "oracle"]
|
|
70
|
+
});
|
|
71
|
+
Object.defineProperty(this, "client", {
|
|
72
|
+
enumerable: true,
|
|
73
|
+
configurable: true,
|
|
74
|
+
writable: true,
|
|
75
|
+
value: void 0
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(this, "sessionId", {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
configurable: true,
|
|
80
|
+
writable: true,
|
|
81
|
+
value: void 0
|
|
82
|
+
});
|
|
83
|
+
Object.defineProperty(this, "quotedTableName", {
|
|
84
|
+
enumerable: true,
|
|
85
|
+
configurable: true,
|
|
86
|
+
writable: true,
|
|
87
|
+
value: void 0
|
|
88
|
+
});
|
|
89
|
+
Object.defineProperty(this, "quotedSessionIdKey", {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
configurable: true,
|
|
92
|
+
writable: true,
|
|
93
|
+
value: void 0
|
|
94
|
+
});
|
|
95
|
+
Object.defineProperty(this, "quotedHistoryKey", {
|
|
96
|
+
enumerable: true,
|
|
97
|
+
configurable: true,
|
|
98
|
+
writable: true,
|
|
99
|
+
value: void 0
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(this, "historySize", {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
configurable: true,
|
|
104
|
+
writable: true,
|
|
105
|
+
value: void 0
|
|
106
|
+
});
|
|
107
|
+
if (typeof sessionId !== "string" || !sessionId) {
|
|
108
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "sessionId must be a non-empty string");
|
|
109
|
+
}
|
|
110
|
+
if (client == null) {
|
|
111
|
+
throwError(ErrorCode.VALIDATION_MISSING_REQUIRED_PARAMETER, "client");
|
|
112
|
+
}
|
|
113
|
+
if (historySize !== undefined &&
|
|
114
|
+
(!Number.isSafeInteger(historySize) || historySize < 1)) {
|
|
115
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "historySize must be greater than 0");
|
|
116
|
+
}
|
|
117
|
+
this.client = client;
|
|
118
|
+
this.sessionId = sessionId;
|
|
119
|
+
this.historySize = historySize;
|
|
120
|
+
this.quotedTableName = quoteIdentifier(tableName);
|
|
121
|
+
this.quotedSessionIdKey = quoteIdentifier(sessionIdKey);
|
|
122
|
+
this.quotedHistoryKey = quoteIdentifier(historyKey);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Creates the history table and optional session index if they do not exist.
|
|
126
|
+
* @param {OracleChatMessageHistorySetupInput} options The database setup configuration.
|
|
127
|
+
* @param {boolean} options.createIndex Whether to create the session index. Defaults to `true`.
|
|
128
|
+
* @returns Promise that resolves when database setup completes.
|
|
129
|
+
*/
|
|
130
|
+
static async createTables({ client, tableName = DEFAULT_TABLE_NAME, createIndex = true, sessionIdKey = DEFAULT_SESSION_ID_KEY, historyKey = DEFAULT_HISTORY_KEY, }) {
|
|
131
|
+
try {
|
|
132
|
+
const quotedTableName = quoteIdentifier(tableName);
|
|
133
|
+
const quotedSessionIdKey = quoteIdentifier(sessionIdKey);
|
|
134
|
+
const quotedHistoryKey = quoteIdentifier(historyKey);
|
|
135
|
+
const createTableSql = `
|
|
136
|
+
CREATE TABLE IF NOT EXISTS ${quotedTableName} (
|
|
137
|
+
${DEFAULT_ID_KEY} NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
138
|
+
${quotedSessionIdKey} VARCHAR2(255) NOT NULL,
|
|
139
|
+
${quotedHistoryKey} CLOB NOT NULL,
|
|
140
|
+
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL
|
|
141
|
+
)`;
|
|
142
|
+
const indexName = defaultIndexName(tableName, sessionIdKey);
|
|
143
|
+
const createIndexSql = `
|
|
144
|
+
CREATE INDEX IF NOT EXISTS ${quoteIdentifier(indexName)}
|
|
145
|
+
ON ${quotedTableName} (${quotedSessionIdKey})
|
|
146
|
+
`;
|
|
147
|
+
await withConnection(client, async (connection) => {
|
|
148
|
+
await connection.execute(createTableSql);
|
|
149
|
+
if (createIndex) {
|
|
150
|
+
await connection.execute(createIndexSql);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
handleError(error);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Drops and purges the history table if it exists, removing every session's messages.
|
|
160
|
+
* @param {OracleDBClient | OracleDBClientProvider} client The connection, pool, or async provider to use.
|
|
161
|
+
* @param {string} tableName The table to drop. Defaults to `langchain_message_store`.
|
|
162
|
+
* @returns Promise that resolves when the table has been dropped or does not exist.
|
|
163
|
+
*/
|
|
164
|
+
static async dropTable(client, tableName = DEFAULT_TABLE_NAME) {
|
|
165
|
+
try {
|
|
166
|
+
await withConnection(client, async (connection) => {
|
|
167
|
+
await dropTablePurge(connection, tableName);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
handleError(error);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Adds one message to the session.
|
|
176
|
+
* @param {BaseMessage} message The message to store.
|
|
177
|
+
* @returns Promise that resolves when the message has been stored.
|
|
178
|
+
*/
|
|
179
|
+
async addMessage(message) {
|
|
180
|
+
try {
|
|
181
|
+
const binds = [this.sessionId, JSON.stringify(message.toDict())];
|
|
182
|
+
await withConnection(this.client, async (connection) => {
|
|
183
|
+
await connection.execute(this.insertQuery, binds);
|
|
184
|
+
await connection.commit();
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
handleError(error);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Adds a batch of messages in insertion order.
|
|
193
|
+
* @param {BaseMessage[]} messages The messages to store.
|
|
194
|
+
* @returns Promise that resolves when the messages have been stored.
|
|
195
|
+
*/
|
|
196
|
+
async addMessages(messages) {
|
|
197
|
+
try {
|
|
198
|
+
if (messages.length === 0)
|
|
199
|
+
return;
|
|
200
|
+
const rows = messages.map((message) => [
|
|
201
|
+
this.sessionId,
|
|
202
|
+
JSON.stringify(message.toDict()),
|
|
203
|
+
]);
|
|
204
|
+
await withConnection(this.client, async (connection) => {
|
|
205
|
+
await connection.executeMany(this.insertQuery, rows, {
|
|
206
|
+
autoCommit: false,
|
|
207
|
+
});
|
|
208
|
+
await connection.commit();
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
handleError(error);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Retrieves messages for the configured session in ascending ID order.
|
|
217
|
+
* When `historySize` is set, returns only the most recent messages in that order.
|
|
218
|
+
* @returns Promise resolving to the stored messages, or an empty array for an empty session.
|
|
219
|
+
*/
|
|
220
|
+
async getMessages() {
|
|
221
|
+
try {
|
|
222
|
+
let query;
|
|
223
|
+
let params;
|
|
224
|
+
if (this.historySize === undefined) {
|
|
225
|
+
query = `
|
|
226
|
+
SELECT ${this.quotedHistoryKey} AS "payload", ${DEFAULT_ID_KEY}
|
|
227
|
+
FROM ${this.quotedTableName}
|
|
228
|
+
WHERE ${this.quotedSessionIdKey} = :session_id
|
|
229
|
+
ORDER BY ${DEFAULT_ID_KEY}
|
|
230
|
+
`;
|
|
231
|
+
params = { session_id: this.sessionId };
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
query = `
|
|
235
|
+
SELECT payload AS "payload", ${DEFAULT_ID_KEY}
|
|
236
|
+
FROM (
|
|
237
|
+
SELECT ${this.quotedHistoryKey} AS payload, ${DEFAULT_ID_KEY}
|
|
238
|
+
FROM ${this.quotedTableName}
|
|
239
|
+
WHERE ${this.quotedSessionIdKey} = :session_id
|
|
240
|
+
ORDER BY ${DEFAULT_ID_KEY} DESC
|
|
241
|
+
)
|
|
242
|
+
WHERE ROWNUM <= :history_size
|
|
243
|
+
ORDER BY ${DEFAULT_ID_KEY}
|
|
244
|
+
`;
|
|
245
|
+
params = {
|
|
246
|
+
session_id: this.sessionId,
|
|
247
|
+
history_size: this.historySize,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
const result = await withConnection(this.client, (connection) => connection.execute(query, params, {
|
|
251
|
+
outFormat: oracledb.OUT_FORMAT_OBJECT,
|
|
252
|
+
fetchInfo: {
|
|
253
|
+
payload: { type: oracledb.STRING },
|
|
254
|
+
},
|
|
255
|
+
}));
|
|
256
|
+
return (result.rows ?? []).map((row) => {
|
|
257
|
+
try {
|
|
258
|
+
return mapStoredMessageToChatMessage(JSON.parse(row.payload));
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
throw createErrorFromCodeWithCause(ErrorCode.HISTORY_DESERIALIZATION_FAILED, error);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
handleError(error);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Deletes all messages belonging to the configured session.
|
|
271
|
+
* @returns Promise that resolves when this session's messages have been cleared.
|
|
272
|
+
*/
|
|
273
|
+
async clear() {
|
|
274
|
+
try {
|
|
275
|
+
await withConnection(this.client, async (connection) => {
|
|
276
|
+
await connection.execute(this.deleteQuery, { session_id: this.sessionId }, { autoCommit: true });
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
handleError(error);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Replaces the configured session's stored messages. An empty array clears the session.
|
|
285
|
+
* @param {BaseMessage[]} messages The replacement messages in insertion order.
|
|
286
|
+
* @returns Promise that resolves when the replacement has been committed.
|
|
287
|
+
*/
|
|
288
|
+
async replaceMessages(messages) {
|
|
289
|
+
try {
|
|
290
|
+
const rows = messages.map((message) => [
|
|
291
|
+
this.sessionId,
|
|
292
|
+
JSON.stringify(message.toDict()),
|
|
293
|
+
]);
|
|
294
|
+
await withConnection(this.client, async (connection) => {
|
|
295
|
+
try {
|
|
296
|
+
await connection.execute(this.deleteQuery, { session_id: this.sessionId }, { autoCommit: false });
|
|
297
|
+
if (rows.length > 0) {
|
|
298
|
+
await connection.executeMany(this.insertQuery, rows, {
|
|
299
|
+
autoCommit: false,
|
|
300
|
+
batchErrors: false,
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
await connection.commit();
|
|
304
|
+
}
|
|
305
|
+
catch (error) {
|
|
306
|
+
let cause = error;
|
|
307
|
+
try {
|
|
308
|
+
await connection.rollback();
|
|
309
|
+
}
|
|
310
|
+
catch (rollbackError) {
|
|
311
|
+
cause = new AggregateError([error, rollbackError], "Replacing messages failed, and rollback also failed.");
|
|
312
|
+
}
|
|
313
|
+
throw createErrorFromCodeWithCause(ErrorCode.HISTORY_REPLACEMENT_FAILED, cause);
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
handleError(error);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
get insertQuery() {
|
|
322
|
+
return `
|
|
323
|
+
INSERT INTO ${this.quotedTableName}
|
|
324
|
+
(
|
|
325
|
+
${this.quotedSessionIdKey},
|
|
326
|
+
${this.quotedHistoryKey}
|
|
327
|
+
)
|
|
328
|
+
VALUES (:1, :2)
|
|
329
|
+
`;
|
|
330
|
+
}
|
|
331
|
+
get deleteQuery() {
|
|
332
|
+
return `
|
|
333
|
+
DELETE FROM ${this.quotedTableName}
|
|
334
|
+
WHERE ${this.quotedSessionIdKey} = :session_id
|
|
335
|
+
`;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
//# sourceMappingURL=chatMessageHistories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatMessageHistories.js","sourceRoot":"","sources":["../src/chatMessageHistories.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,7 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
35
35
|
const oracledb_1 = __importDefault(require("oracledb"));
|
|
36
36
|
const htmlparser2 = __importStar(require("htmlparser2"));
|
|
37
37
|
const base_1 = require("@langchain/core/document_loaders/base");
|
|
38
|
+
const errors_js_1 = require("./errors.cjs");
|
|
38
39
|
function* listDir(dir) {
|
|
39
40
|
const files = node_fs_1.default.readdirSync(dir, { withFileTypes: true });
|
|
40
41
|
for (const file of files) {
|
|
@@ -103,12 +104,12 @@ class OracleDocLoader extends base_1.BaseDocumentLoader {
|
|
|
103
104
|
}
|
|
104
105
|
else if ("tablename" in this.pref) {
|
|
105
106
|
if (!("owner" in this.pref) || !("colname" in this.pref)) {
|
|
106
|
-
|
|
107
|
+
(0, errors_js_1.throwError)(errors_js_1.ErrorCode.VALIDATION_INVALID_INPUT, "Invalid preferences: missing owner or colname");
|
|
107
108
|
}
|
|
108
109
|
docs.push(...(await this._loadFromTable(this.pref.owner, this.pref.tablename, this.pref.colname)));
|
|
109
110
|
}
|
|
110
111
|
else {
|
|
111
|
-
|
|
112
|
+
(0, errors_js_1.throwError)(errors_js_1.ErrorCode.VALIDATION_INVALID_INPUT, "Invalid preferences: missing file, dir, or tablename");
|
|
112
113
|
}
|
|
113
114
|
return docs;
|
|
114
115
|
}
|
|
@@ -159,7 +160,7 @@ class OracleDocLoader extends base_1.BaseDocumentLoader {
|
|
|
159
160
|
await this.conn.execute(sql, binds);
|
|
160
161
|
}
|
|
161
162
|
catch {
|
|
162
|
-
|
|
163
|
+
(0, errors_js_1.throwError)(errors_js_1.ErrorCode.VALIDATION_INVALID_IDENTIFIER, `${owner}.${table}.${col}`);
|
|
163
164
|
}
|
|
164
165
|
const result = await this.conn.execute((`select dbms_vector_chain.utl_to_text(t.${this.pref.colname}, :pref) text,\
|
|
165
166
|
dbms_vector_chain.utl_to_text(t.${this.pref.colname}, json('{"plaintext": "false"}')) metadata\
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document_loaders.cjs","sourceRoot":"","sources":["../src/document_loaders.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,yDAAqD;AACrD,sDAAyB;AACzB,0DAA6B;AAC7B,wDAAgC;AAChC,yDAA2C;AAC3C,gEAA2E;
|
|
1
|
+
{"version":3,"file":"document_loaders.cjs","sourceRoot":"","sources":["../src/document_loaders.ts"],"names":[],"mappings":"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"}
|
package/dist/document_loaders.js
CHANGED
|
@@ -6,6 +6,7 @@ import path from "node:path";
|
|
|
6
6
|
import oracledb from "oracledb";
|
|
7
7
|
import * as htmlparser2 from "htmlparser2";
|
|
8
8
|
import { BaseDocumentLoader } from "@langchain/core/document_loaders/base";
|
|
9
|
+
import { ErrorCode, throwError } from "./errors.js";
|
|
9
10
|
function* listDir(dir) {
|
|
10
11
|
const files = fs.readdirSync(dir, { withFileTypes: true });
|
|
11
12
|
for (const file of files) {
|
|
@@ -74,12 +75,12 @@ export class OracleDocLoader extends BaseDocumentLoader {
|
|
|
74
75
|
}
|
|
75
76
|
else if ("tablename" in this.pref) {
|
|
76
77
|
if (!("owner" in this.pref) || !("colname" in this.pref)) {
|
|
77
|
-
|
|
78
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "Invalid preferences: missing owner or colname");
|
|
78
79
|
}
|
|
79
80
|
docs.push(...(await this._loadFromTable(this.pref.owner, this.pref.tablename, this.pref.colname)));
|
|
80
81
|
}
|
|
81
82
|
else {
|
|
82
|
-
|
|
83
|
+
throwError(ErrorCode.VALIDATION_INVALID_INPUT, "Invalid preferences: missing file, dir, or tablename");
|
|
83
84
|
}
|
|
84
85
|
return docs;
|
|
85
86
|
}
|
|
@@ -130,7 +131,7 @@ export class OracleDocLoader extends BaseDocumentLoader {
|
|
|
130
131
|
await this.conn.execute(sql, binds);
|
|
131
132
|
}
|
|
132
133
|
catch {
|
|
133
|
-
|
|
134
|
+
throwError(ErrorCode.VALIDATION_INVALID_IDENTIFIER, `${owner}.${table}.${col}`);
|
|
134
135
|
}
|
|
135
136
|
const result = await this.conn.execute((`select dbms_vector_chain.utl_to_text(t.${this.pref.colname}, :pref) text,\
|
|
136
137
|
dbms_vector_chain.utl_to_text(t.${this.pref.colname}, json('{"plaintext": "false"}')) metadata\
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document_loaders.js","sourceRoot":"","sources":["../src/document_loaders.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,uDAAuD;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,WAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"document_loaders.js","sourceRoot":"","sources":["../src/document_loaders.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.cjs
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.throwError = exports.createErrorFromCodeWithCause = exports.createErrorFromCode = exports.isLangChainOracleError = exports.createError = exports.handleError = exports.LangChainOracleError = exports.ErrorCode = void 0;
|
|
5
|
+
exports.ErrorCode = {
|
|
6
|
+
VALIDATION_INVALID_INPUT: "VALIDATION_INVALID_INPUT",
|
|
7
|
+
VALIDATION_MISSING_REQUIRED_PARAMETER: "VALIDATION_MISSING_REQUIRED_PARAMETER",
|
|
8
|
+
VALIDATION_INVALID_IDENTIFIER: "VALIDATION_INVALID_IDENTIFIER",
|
|
9
|
+
FILTER_INVALID_METADATA_KEY: "FILTER_INVALID_METADATA_KEY",
|
|
10
|
+
FILTER_INVALID_VALUE: "FILTER_INVALID_VALUE",
|
|
11
|
+
FILTER_UNSUPPORTED_OPERATOR: "FILTER_UNSUPPORTED_OPERATOR",
|
|
12
|
+
VECTOR_INVALID_CONFIGURATION: "VECTOR_INVALID_CONFIGURATION",
|
|
13
|
+
VECTOR_INVALID_VALUE: "VECTOR_INVALID_VALUE",
|
|
14
|
+
VECTOR_UNSUPPORTED_REPRESENTATION: "VECTOR_UNSUPPORTED_REPRESENTATION",
|
|
15
|
+
VECTOR_INVALID_INDEX_PARAMETERS: "VECTOR_INVALID_INDEX_PARAMETERS",
|
|
16
|
+
STATE_INVALID: "STATE_INVALID",
|
|
17
|
+
QUERY_NO_ROWS_FOUND: "QUERY_NO_ROWS_FOUND",
|
|
18
|
+
CACHE_DESERIALIZATION_FAILED: "CACHE_DESERIALIZATION_FAILED",
|
|
19
|
+
HISTORY_DESERIALIZATION_FAILED: "HISTORY_DESERIALIZATION_FAILED",
|
|
20
|
+
HISTORY_REPLACEMENT_FAILED: "HISTORY_REPLACEMENT_FAILED",
|
|
21
|
+
SYSTEM_ERROR: "SYSTEM_ERROR",
|
|
22
|
+
};
|
|
23
|
+
const LANGCHAIN_ORACLE_ERROR_BRAND = Symbol.for("@oracle/langchain-oracledb/LangChainOracleError");
|
|
24
|
+
/**
|
|
25
|
+
* A specialized exception representing domain-specific failures within the
|
|
26
|
+
* LangChain Oracle integration. Extends the native JavaScript `Error` to preserve
|
|
27
|
+
* stack traces. Lower-level driver errors are safely isolated inside the `cause`
|
|
28
|
+
* property to protect against shifting node-oracledb definitions.
|
|
29
|
+
*/
|
|
30
|
+
class LangChainOracleError extends Error {
|
|
31
|
+
constructor(code, message, cause) {
|
|
32
|
+
super(message);
|
|
33
|
+
Object.defineProperty(this, "code", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "cause", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: void 0
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(this, _a, {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
value: true
|
|
50
|
+
});
|
|
51
|
+
// Hardcode the class name so logs show "LangChainOracleError: ..."
|
|
52
|
+
this.name = "LangChainOracleError";
|
|
53
|
+
this.code = code;
|
|
54
|
+
// Save the raw node-oracledb error (or validation error) for root-cause analysis
|
|
55
|
+
this.cause = cause;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.LangChainOracleError = LangChainOracleError;
|
|
59
|
+
_a = LANGCHAIN_ORACLE_ERROR_BRAND;
|
|
60
|
+
function handleError(error) {
|
|
61
|
+
// Preserve LangChainOracleError instances created by this package instead of
|
|
62
|
+
// wrapping them again as generic SYSTEM_ERROR failures.
|
|
63
|
+
if (isLangChainOracleError(error)) {
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
// Preserve a useful message for both real Error instances and thrown
|
|
67
|
+
// object literals shaped like { message: string }.
|
|
68
|
+
const details = typeof error === "object" &&
|
|
69
|
+
error !== null &&
|
|
70
|
+
"message" in error &&
|
|
71
|
+
typeof error.message === "string"
|
|
72
|
+
? error.message
|
|
73
|
+
: String(error);
|
|
74
|
+
// Preserve the original cause when wrapping an unexpected error.
|
|
75
|
+
throw createErrorFromCodeWithCause(exports.ErrorCode.SYSTEM_ERROR, error, `An unexpected error occurred during the operation. ${details}`);
|
|
76
|
+
}
|
|
77
|
+
exports.handleError = handleError;
|
|
78
|
+
function createError(code, message, cause) {
|
|
79
|
+
return new LangChainOracleError(code, message, cause);
|
|
80
|
+
}
|
|
81
|
+
exports.createError = createError;
|
|
82
|
+
// Identifies LangChainOracleError instances created by this package, not generic
|
|
83
|
+
// node-oracledb or database errors such as NJS- or ORA- codes.
|
|
84
|
+
function isLangChainOracleError(error) {
|
|
85
|
+
return (typeof error === "object" &&
|
|
86
|
+
error !== null &&
|
|
87
|
+
LANGCHAIN_ORACLE_ERROR_BRAND in error);
|
|
88
|
+
}
|
|
89
|
+
exports.isLangChainOracleError = isLangChainOracleError;
|
|
90
|
+
const errorMessageFactories = {
|
|
91
|
+
[exports.ErrorCode.VALIDATION_INVALID_INPUT]: (message) => message,
|
|
92
|
+
[exports.ErrorCode.VALIDATION_MISSING_REQUIRED_PARAMETER]: (parameter) => `${parameter} parameter is required...`,
|
|
93
|
+
[exports.ErrorCode.VALIDATION_INVALID_IDENTIFIER]: (identifier) => `Identifier name ${identifier} is not valid.`,
|
|
94
|
+
[exports.ErrorCode.FILTER_INVALID_METADATA_KEY]: (column) => `Invalid metadata key '${String(column)}'. Only letters, numbers, underscores, nesting via '.', and array wildcards '[*]' are allowed.`,
|
|
95
|
+
[exports.ErrorCode.FILTER_INVALID_VALUE]: (message) => message,
|
|
96
|
+
[exports.ErrorCode.FILTER_UNSUPPORTED_OPERATOR]: (operator) => `Unsupported operator: ${operator}`,
|
|
97
|
+
[exports.ErrorCode.VECTOR_INVALID_CONFIGURATION]: (message) => message,
|
|
98
|
+
[exports.ErrorCode.VECTOR_INVALID_VALUE]: (message) => message,
|
|
99
|
+
[exports.ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION]: (message) => message,
|
|
100
|
+
[exports.ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS]: (invalidKeys) => `Invalid parameter(s): ${invalidKeys.join(", ")}`,
|
|
101
|
+
[exports.ErrorCode.STATE_INVALID]: (message) => message,
|
|
102
|
+
[exports.ErrorCode.QUERY_NO_ROWS_FOUND]: () => "No rows found.",
|
|
103
|
+
[exports.ErrorCode.CACHE_DESERIALIZATION_FAILED]: () => "Failed to deserialize cached generations.",
|
|
104
|
+
[exports.ErrorCode.HISTORY_DESERIALIZATION_FAILED]: () => "Failed to deserialize a stored history message.",
|
|
105
|
+
[exports.ErrorCode.HISTORY_REPLACEMENT_FAILED]: () => "Failed to replace stored history messages.",
|
|
106
|
+
[exports.ErrorCode.SYSTEM_ERROR]: (message) => message,
|
|
107
|
+
};
|
|
108
|
+
function getErrorMessage(code, ...args) {
|
|
109
|
+
return errorMessageFactories[code](...args);
|
|
110
|
+
}
|
|
111
|
+
function createErrorFromCode(code, ...args) {
|
|
112
|
+
return createError(code, getErrorMessage(code, ...args));
|
|
113
|
+
}
|
|
114
|
+
exports.createErrorFromCode = createErrorFromCode;
|
|
115
|
+
function createErrorFromCodeWithCause(code, cause, ...args) {
|
|
116
|
+
return createError(code, getErrorMessage(code, ...args), cause);
|
|
117
|
+
}
|
|
118
|
+
exports.createErrorFromCodeWithCause = createErrorFromCodeWithCause;
|
|
119
|
+
function throwError(code, ...args) {
|
|
120
|
+
throw createErrorFromCode(code, ...args);
|
|
121
|
+
}
|
|
122
|
+
exports.throwError = throwError;
|
|
123
|
+
//# sourceMappingURL=errors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.cjs","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare const ErrorCode: {
|
|
2
|
+
readonly VALIDATION_INVALID_INPUT: "VALIDATION_INVALID_INPUT";
|
|
3
|
+
readonly VALIDATION_MISSING_REQUIRED_PARAMETER: "VALIDATION_MISSING_REQUIRED_PARAMETER";
|
|
4
|
+
readonly VALIDATION_INVALID_IDENTIFIER: "VALIDATION_INVALID_IDENTIFIER";
|
|
5
|
+
readonly FILTER_INVALID_METADATA_KEY: "FILTER_INVALID_METADATA_KEY";
|
|
6
|
+
readonly FILTER_INVALID_VALUE: "FILTER_INVALID_VALUE";
|
|
7
|
+
readonly FILTER_UNSUPPORTED_OPERATOR: "FILTER_UNSUPPORTED_OPERATOR";
|
|
8
|
+
readonly VECTOR_INVALID_CONFIGURATION: "VECTOR_INVALID_CONFIGURATION";
|
|
9
|
+
readonly VECTOR_INVALID_VALUE: "VECTOR_INVALID_VALUE";
|
|
10
|
+
readonly VECTOR_UNSUPPORTED_REPRESENTATION: "VECTOR_UNSUPPORTED_REPRESENTATION";
|
|
11
|
+
readonly VECTOR_INVALID_INDEX_PARAMETERS: "VECTOR_INVALID_INDEX_PARAMETERS";
|
|
12
|
+
readonly STATE_INVALID: "STATE_INVALID";
|
|
13
|
+
readonly QUERY_NO_ROWS_FOUND: "QUERY_NO_ROWS_FOUND";
|
|
14
|
+
readonly CACHE_DESERIALIZATION_FAILED: "CACHE_DESERIALIZATION_FAILED";
|
|
15
|
+
readonly HISTORY_DESERIALIZATION_FAILED: "HISTORY_DESERIALIZATION_FAILED";
|
|
16
|
+
readonly HISTORY_REPLACEMENT_FAILED: "HISTORY_REPLACEMENT_FAILED";
|
|
17
|
+
readonly SYSTEM_ERROR: "SYSTEM_ERROR";
|
|
18
|
+
};
|
|
19
|
+
export type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
|
|
20
|
+
declare const LANGCHAIN_ORACLE_ERROR_BRAND: unique symbol;
|
|
21
|
+
type ErrorArgs = {
|
|
22
|
+
[ErrorCode.VALIDATION_INVALID_INPUT]: [message: string];
|
|
23
|
+
[ErrorCode.VALIDATION_MISSING_REQUIRED_PARAMETER]: [parameter: string];
|
|
24
|
+
[ErrorCode.VALIDATION_INVALID_IDENTIFIER]: [identifier: string];
|
|
25
|
+
[ErrorCode.FILTER_INVALID_METADATA_KEY]: [column: string];
|
|
26
|
+
[ErrorCode.FILTER_INVALID_VALUE]: [message: string];
|
|
27
|
+
[ErrorCode.FILTER_UNSUPPORTED_OPERATOR]: [operator: string];
|
|
28
|
+
[ErrorCode.VECTOR_INVALID_CONFIGURATION]: [message: string];
|
|
29
|
+
[ErrorCode.VECTOR_INVALID_VALUE]: [message: string];
|
|
30
|
+
[ErrorCode.VECTOR_UNSUPPORTED_REPRESENTATION]: [message: string];
|
|
31
|
+
[ErrorCode.VECTOR_INVALID_INDEX_PARAMETERS]: [invalidKeys: string[]];
|
|
32
|
+
[ErrorCode.STATE_INVALID]: [message: string];
|
|
33
|
+
[ErrorCode.QUERY_NO_ROWS_FOUND]: [];
|
|
34
|
+
[ErrorCode.CACHE_DESERIALIZATION_FAILED]: [];
|
|
35
|
+
[ErrorCode.HISTORY_DESERIALIZATION_FAILED]: [];
|
|
36
|
+
[ErrorCode.HISTORY_REPLACEMENT_FAILED]: [];
|
|
37
|
+
[ErrorCode.SYSTEM_ERROR]: [message: string];
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* A specialized exception representing domain-specific failures within the
|
|
41
|
+
* LangChain Oracle integration. Extends the native JavaScript `Error` to preserve
|
|
42
|
+
* stack traces. Lower-level driver errors are safely isolated inside the `cause`
|
|
43
|
+
* property to protect against shifting node-oracledb definitions.
|
|
44
|
+
*/
|
|
45
|
+
export declare class LangChainOracleError extends Error {
|
|
46
|
+
readonly code: ErrorCode;
|
|
47
|
+
readonly cause?: unknown;
|
|
48
|
+
readonly [LANGCHAIN_ORACLE_ERROR_BRAND] = true;
|
|
49
|
+
constructor(code: ErrorCode, message: string, cause?: unknown);
|
|
50
|
+
}
|
|
51
|
+
export declare function handleError(error: unknown): never;
|
|
52
|
+
export declare function createError(code: ErrorCode, message: string, cause?: unknown): LangChainOracleError;
|
|
53
|
+
export declare function isLangChainOracleError(error: unknown): error is LangChainOracleError;
|
|
54
|
+
export declare function createErrorFromCode<K extends ErrorCode>(code: K, ...args: ErrorArgs[K]): LangChainOracleError;
|
|
55
|
+
export declare function createErrorFromCodeWithCause<K extends ErrorCode>(code: K, cause: unknown, ...args: ErrorArgs[K]): LangChainOracleError;
|
|
56
|
+
export declare function throwError<K extends ErrorCode>(code: K, ...args: ErrorArgs[K]): never;
|
|
57
|
+
export {};
|