n8n-nodes-simple 4.3.0 → 4.3.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.
|
@@ -11,17 +11,15 @@ class LimitedPostgresChatMessageHistory extends chat_history_1.BaseListChatMessa
|
|
|
11
11
|
constructor(fields) {
|
|
12
12
|
super();
|
|
13
13
|
this.lc_namespace = ['langchain', 'stores', 'message', 'postgres'];
|
|
14
|
-
this.tableReady = false;
|
|
15
14
|
this.pool = fields.pool;
|
|
16
15
|
this.sessionId = fields.sessionId;
|
|
17
16
|
this.tableName = fields.tableName;
|
|
18
17
|
this.limit = fields.limit;
|
|
19
18
|
this.readOnly = fields.readOnly;
|
|
20
|
-
this.
|
|
19
|
+
this.summaryPrefix = fields.summaryPrefix;
|
|
20
|
+
this.keepMessagesBeforePrefix = fields.keepMessagesBeforePrefix;
|
|
21
21
|
}
|
|
22
22
|
async ensureTable() {
|
|
23
|
-
if (this.tableReady)
|
|
24
|
-
return;
|
|
25
23
|
await this.pool.query(`
|
|
26
24
|
CREATE TABLE IF NOT EXISTS ${this.tableName} (
|
|
27
25
|
id SERIAL PRIMARY KEY,
|
|
@@ -34,21 +32,30 @@ class LimitedPostgresChatMessageHistory extends chat_history_1.BaseListChatMessa
|
|
|
34
32
|
CREATE INDEX IF NOT EXISTS ${this.tableName}_session_id_idx
|
|
35
33
|
ON ${this.tableName} (session_id, id DESC)
|
|
36
34
|
`);
|
|
37
|
-
|
|
35
|
+
}
|
|
36
|
+
async withTableAutoCreate(op) {
|
|
37
|
+
try {
|
|
38
|
+
return await op();
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
if ((err === null || err === void 0 ? void 0 : err.code) !== '42P01')
|
|
42
|
+
throw err;
|
|
43
|
+
await this.ensureTable();
|
|
44
|
+
return await op();
|
|
45
|
+
}
|
|
38
46
|
}
|
|
39
47
|
async getMessages() {
|
|
40
|
-
await this.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
ORDER BY id ASC`, [this.sessionId, this.limit]);
|
|
48
|
+
const result = await this.withTableAutoCreate(() => this.pool.query(`SELECT id, message FROM (
|
|
49
|
+
SELECT id, message
|
|
50
|
+
FROM ${this.tableName}
|
|
51
|
+
WHERE session_id = $1
|
|
52
|
+
ORDER BY id DESC
|
|
53
|
+
LIMIT $2
|
|
54
|
+
) sub
|
|
55
|
+
ORDER BY id ASC`, [this.sessionId, this.limit]));
|
|
49
56
|
const storedMessages = result.rows.map((row) => row.message);
|
|
50
57
|
const messages = (0, messages_1.mapStoredMessagesToChatMessages)(storedMessages);
|
|
51
|
-
if (this.
|
|
58
|
+
if (this.summaryPrefix) {
|
|
52
59
|
for (let i = messages.length - 1; i >= 0; i--) {
|
|
53
60
|
const m = messages[i];
|
|
54
61
|
const type = m.constructor.name;
|
|
@@ -56,8 +63,9 @@ class LimitedPostgresChatMessageHistory extends chat_history_1.BaseListChatMessa
|
|
|
56
63
|
continue;
|
|
57
64
|
if (typeof m.content !== 'string')
|
|
58
65
|
continue;
|
|
59
|
-
if (m.content.startsWith(this.
|
|
60
|
-
|
|
66
|
+
if (m.content.startsWith(this.summaryPrefix)) {
|
|
67
|
+
const start = Math.max(0, i - this.keepMessagesBeforePrefix);
|
|
68
|
+
return messages.slice(start);
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
}
|
|
@@ -66,15 +74,11 @@ class LimitedPostgresChatMessageHistory extends chat_history_1.BaseListChatMessa
|
|
|
66
74
|
async addMessage(message) {
|
|
67
75
|
if (this.readOnly)
|
|
68
76
|
return;
|
|
69
|
-
await this.ensureTable();
|
|
70
77
|
const [stored] = (0, messages_1.mapChatMessagesToStoredMessages)([message]);
|
|
71
|
-
await this.pool.query(`INSERT INTO ${this.tableName} (session_id, message) VALUES ($1, $2)`, [this.sessionId, JSON.stringify(stored)]);
|
|
78
|
+
await this.withTableAutoCreate(() => this.pool.query(`INSERT INTO ${this.tableName} (session_id, message) VALUES ($1, $2)`, [this.sessionId, JSON.stringify(stored)]));
|
|
72
79
|
}
|
|
73
80
|
async clear() {
|
|
74
|
-
await this.
|
|
75
|
-
await this.pool.query(`DELETE FROM ${this.tableName} WHERE session_id = $1`, [
|
|
76
|
-
this.sessionId,
|
|
77
|
-
]);
|
|
81
|
+
await this.withTableAutoCreate(() => this.pool.query(`DELETE FROM ${this.tableName} WHERE session_id = $1`, [this.sessionId]));
|
|
78
82
|
}
|
|
79
83
|
}
|
|
80
84
|
class MemoryPostgresChat {
|
|
@@ -131,12 +135,22 @@ class MemoryPostgresChat {
|
|
|
131
135
|
},
|
|
132
136
|
},
|
|
133
137
|
{
|
|
134
|
-
displayName: '
|
|
135
|
-
name: '
|
|
138
|
+
displayName: 'Summary Prefix',
|
|
139
|
+
name: 'summaryPrefix',
|
|
136
140
|
type: 'string',
|
|
137
141
|
default: '<summary>',
|
|
138
142
|
description: 'If set, skips all messages before the most recent user or system message whose content starts with this string. Useful for anchoring a compacted-context summary inserted into chat history. Leave empty to disable.',
|
|
139
143
|
},
|
|
144
|
+
{
|
|
145
|
+
displayName: 'Keep Messages Before Prefix',
|
|
146
|
+
name: 'keepMessagesBeforePrefix',
|
|
147
|
+
type: 'number',
|
|
148
|
+
default: 2,
|
|
149
|
+
description: 'Number of messages immediately before the matched prefix message to retain. Only applies when Summary Prefix is set and matches. Set to 0 to drop everything before the prefix.',
|
|
150
|
+
typeOptions: {
|
|
151
|
+
minValue: 0,
|
|
152
|
+
},
|
|
153
|
+
},
|
|
140
154
|
{
|
|
141
155
|
displayName: 'Read Only',
|
|
142
156
|
name: 'readOnly',
|
|
@@ -152,7 +166,8 @@ class MemoryPostgresChat {
|
|
|
152
166
|
const tableName = this.getNodeParameter('tableName', itemIndex, 'chat_memory');
|
|
153
167
|
const contextWindowLength = this.getNodeParameter('contextWindowLength', itemIndex, 10);
|
|
154
168
|
const readOnly = this.getNodeParameter('readOnly', itemIndex, false);
|
|
155
|
-
const
|
|
169
|
+
const summaryPrefix = this.getNodeParameter('summaryPrefix', itemIndex, '');
|
|
170
|
+
const keepMessagesBeforePrefix = this.getNodeParameter('keepMessagesBeforePrefix', itemIndex, 2);
|
|
156
171
|
let sessionId = this.getNodeParameter('sessionKey', itemIndex, '');
|
|
157
172
|
if (!sessionId) {
|
|
158
173
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Session Key must not be empty.', {
|
|
@@ -184,7 +199,8 @@ class MemoryPostgresChat {
|
|
|
184
199
|
tableName,
|
|
185
200
|
limit: contextWindowLength,
|
|
186
201
|
readOnly,
|
|
187
|
-
|
|
202
|
+
summaryPrefix,
|
|
203
|
+
keepMessagesBeforePrefix,
|
|
188
204
|
});
|
|
189
205
|
const memory = new memory_1.BufferMemory({
|
|
190
206
|
memoryKey: 'chat_history',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryPostgresChat.node.js","sourceRoot":"","sources":["../../../nodes/MemoryPostgresChat/MemoryPostgresChat.node.ts"],"names":[],"mappings":";;;AAAA,+DAA0E;AAC1E,uDAIkC;AAClC,6CAAgD;AAChD,6CAA0C;AAC1C,2BAA2C;AAE3C,+CAAuE;AAMvE,MAAM,iCAAkC,SAAQ,yCAA0B;IAWzE,YAAY,
|
|
1
|
+
{"version":3,"file":"MemoryPostgresChat.node.js","sourceRoot":"","sources":["../../../nodes/MemoryPostgresChat/MemoryPostgresChat.node.ts"],"names":[],"mappings":"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"}
|