@venturialstd/workflow 0.1.161 → 0.1.163
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/dist/modules/chatgpt/actions/chat-completion.action.d.ts +0 -16
- package/dist/modules/chatgpt/actions/chat-completion.action.d.ts.map +1 -1
- package/dist/modules/chatgpt/actions/chat-completion.action.js +17 -71
- package/dist/modules/chatgpt/actions/chat-completion.action.js.map +1 -1
- package/dist/modules/chatgpt/actions/chat-purpose.action.d.ts +3 -0
- package/dist/modules/chatgpt/actions/chat-purpose.action.d.ts.map +1 -0
- package/dist/modules/chatgpt/actions/chat-purpose.action.js +229 -0
- package/dist/modules/chatgpt/actions/chat-purpose.action.js.map +1 -0
- package/dist/modules/chatgpt/actions/index.d.ts +1 -0
- package/dist/modules/chatgpt/actions/index.d.ts.map +1 -1
- package/dist/modules/chatgpt/actions/index.js +1 -0
- package/dist/modules/chatgpt/actions/index.js.map +1 -1
- package/dist/modules/chatgpt/chatgpt-nest.module.d.ts.map +1 -1
- package/dist/modules/chatgpt/chatgpt-nest.module.js +2 -0
- package/dist/modules/chatgpt/chatgpt-nest.module.js.map +1 -1
- package/dist/modules/chatgpt/chatgpt.module.d.ts.map +1 -1
- package/dist/modules/chatgpt/chatgpt.module.js +1 -0
- package/dist/modules/chatgpt/chatgpt.module.js.map +1 -1
- package/dist/modules/chatgpt/services/chat-completion.service.d.ts.map +1 -1
- package/dist/modules/chatgpt/services/chat-completion.service.js +15 -43
- package/dist/modules/chatgpt/services/chat-completion.service.js.map +1 -1
- package/dist/modules/chatgpt/services/chat-purpose.service.d.ts +24 -0
- package/dist/modules/chatgpt/services/chat-purpose.service.d.ts.map +1 -0
- package/dist/modules/chatgpt/services/chat-purpose.service.js +396 -0
- package/dist/modules/chatgpt/services/chat-purpose.service.js.map +1 -0
- package/dist/modules/chatgpt/services/index.d.ts +1 -0
- package/dist/modules/chatgpt/services/index.d.ts.map +1 -1
- package/dist/modules/chatgpt/services/index.js +1 -0
- package/dist/modules/chatgpt/services/index.js.map +1 -1
- package/dist/modules/chatgpt/types/purpose-memory.types.d.ts +38 -0
- package/dist/modules/chatgpt/types/purpose-memory.types.d.ts.map +1 -0
- package/dist/modules/chatgpt/types/purpose-memory.types.js +28 -0
- package/dist/modules/chatgpt/types/purpose-memory.types.js.map +1 -0
- package/dist/modules/chatgpt/utils/purpose-cache-key.util.d.ts +5 -0
- package/dist/modules/chatgpt/utils/purpose-cache-key.util.d.ts.map +1 -0
- package/dist/modules/chatgpt/utils/purpose-cache-key.util.js +15 -0
- package/dist/modules/chatgpt/utils/purpose-cache-key.util.js.map +1 -0
- package/dist/modules/chatgpt/utils/purpose-schema.validator.d.ts +2 -0
- package/dist/modules/chatgpt/utils/purpose-schema.validator.d.ts.map +1 -0
- package/dist/modules/chatgpt/utils/purpose-schema.validator.js +34 -0
- package/dist/modules/chatgpt/utils/purpose-schema.validator.js.map +1 -0
- package/dist/modules/chatgpt/utils/token-estimate.util.d.ts +7 -0
- package/dist/modules/chatgpt/utils/token-estimate.util.d.ts.map +1 -0
- package/dist/modules/chatgpt/utils/token-estimate.util.js +20 -0
- package/dist/modules/chatgpt/utils/token-estimate.util.js.map +1 -0
- package/package.json +3 -2
|
@@ -1,19 +1,3 @@
|
|
|
1
1
|
import { WorkflowActionTrigger } from '../../types';
|
|
2
|
-
export declare const CHAT_COMPLETION_MESSAGE_SCHEMA: {
|
|
3
|
-
role: {
|
|
4
|
-
type: "select";
|
|
5
|
-
label: string;
|
|
6
|
-
description: string;
|
|
7
|
-
options: {
|
|
8
|
-
label: string;
|
|
9
|
-
value: string;
|
|
10
|
-
}[];
|
|
11
|
-
};
|
|
12
|
-
content: {
|
|
13
|
-
type: "string";
|
|
14
|
-
label: string;
|
|
15
|
-
placeholder: string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
2
|
export declare const chatCompletionAction: WorkflowActionTrigger;
|
|
19
3
|
//# sourceMappingURL=chat-completion.action.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completion.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-completion.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,oBAAoB,EAAE,qBA+ElC,CAAC"}
|
|
@@ -1,64 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.chatCompletionAction =
|
|
3
|
+
exports.chatCompletionAction = void 0;
|
|
4
4
|
const types_1 = require("../../types");
|
|
5
5
|
const chat_completion_service_1 = require("../services/chat-completion.service");
|
|
6
|
-
exports.CHAT_COMPLETION_MESSAGE_SCHEMA = {
|
|
7
|
-
role: {
|
|
8
|
-
type: 'select',
|
|
9
|
-
label: 'Role',
|
|
10
|
-
description: 'Who is sending this message',
|
|
11
|
-
options: [
|
|
12
|
-
{ label: 'System', value: 'system' },
|
|
13
|
-
{ label: 'User', value: 'user' },
|
|
14
|
-
{ label: 'Assistant', value: 'assistant' },
|
|
15
|
-
],
|
|
16
|
-
},
|
|
17
|
-
content: {
|
|
18
|
-
type: 'string',
|
|
19
|
-
label: 'Content',
|
|
20
|
-
placeholder: 'Message text',
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
6
|
exports.chatCompletionAction = {
|
|
24
7
|
key: 'chat-completion',
|
|
25
8
|
name: 'Chat Completion',
|
|
26
|
-
description: '
|
|
9
|
+
description: 'Send a message to ChatGPT and get a reply.',
|
|
27
10
|
category: types_1.NODE_CATEGORY.ACTION,
|
|
28
11
|
icon: '💬',
|
|
29
12
|
serviceClass: chat_completion_service_1.ChatCompletionService,
|
|
30
13
|
inputs: [
|
|
31
14
|
{
|
|
32
|
-
id: '
|
|
33
|
-
name: '
|
|
34
|
-
description: '
|
|
35
|
-
type: types_1.FIELD_TYPE.STRING,
|
|
36
|
-
validation: { required: false },
|
|
37
|
-
placeholder: 'e.g. You are a helpful assistant that answers in Spanish.',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: 'userMessage',
|
|
41
|
-
name: 'Your message',
|
|
42
|
-
description: 'The question or message for this turn. Use this for a single prompt, or leave empty when using Conversation history only.',
|
|
15
|
+
id: 'message',
|
|
16
|
+
name: 'Message',
|
|
17
|
+
description: 'The question or text to send.',
|
|
43
18
|
type: types_1.FIELD_TYPE.STRING,
|
|
44
|
-
validation: { required:
|
|
19
|
+
validation: { required: true },
|
|
45
20
|
placeholder: 'e.g. What is the capital of France?',
|
|
46
21
|
},
|
|
47
22
|
{
|
|
48
|
-
id: '
|
|
49
|
-
name: '
|
|
50
|
-
description: 'Optional.
|
|
51
|
-
type: types_1.FIELD_TYPE.
|
|
23
|
+
id: 'systemInstructions',
|
|
24
|
+
name: 'System instructions',
|
|
25
|
+
description: 'Optional. How the assistant should behave.',
|
|
26
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
52
27
|
validation: { required: false },
|
|
53
|
-
placeholder: '
|
|
54
|
-
metadata: {
|
|
55
|
-
itemSchema: exports.CHAT_COMPLETION_MESSAGE_SCHEMA,
|
|
56
|
-
},
|
|
28
|
+
placeholder: 'e.g. You are a helpful assistant that answers in Spanish.',
|
|
57
29
|
},
|
|
58
30
|
{
|
|
59
31
|
id: 'model',
|
|
60
32
|
name: 'Model',
|
|
61
|
-
description: '
|
|
33
|
+
description: 'ChatGPT model to use.',
|
|
62
34
|
type: types_1.FIELD_TYPE.STRING,
|
|
63
35
|
validation: {
|
|
64
36
|
required: false,
|
|
@@ -76,7 +48,7 @@ exports.chatCompletionAction = {
|
|
|
76
48
|
{
|
|
77
49
|
id: 'temperature',
|
|
78
50
|
name: 'Temperature',
|
|
79
|
-
description: '
|
|
51
|
+
description: 'Response randomness (0 = focused, 2 = creative).',
|
|
80
52
|
type: types_1.FIELD_TYPE.NUMBER,
|
|
81
53
|
validation: { required: false, min: 0, max: 2 },
|
|
82
54
|
defaultValue: 0.7,
|
|
@@ -84,57 +56,31 @@ exports.chatCompletionAction = {
|
|
|
84
56
|
{
|
|
85
57
|
id: 'maxTokens',
|
|
86
58
|
name: 'Max tokens',
|
|
87
|
-
description: 'Maximum length
|
|
59
|
+
description: 'Maximum reply length.',
|
|
88
60
|
type: types_1.FIELD_TYPE.NUMBER,
|
|
89
61
|
validation: { required: false, min: 1, max: 4000 },
|
|
90
62
|
defaultValue: 2000,
|
|
91
63
|
},
|
|
92
|
-
{
|
|
93
|
-
id: 'store',
|
|
94
|
-
name: 'Save to history',
|
|
95
|
-
description: 'Whether to store this exchange in the database',
|
|
96
|
-
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
97
|
-
validation: { required: false },
|
|
98
|
-
defaultValue: true,
|
|
99
|
-
},
|
|
100
64
|
],
|
|
101
65
|
outputs: [
|
|
102
66
|
{
|
|
103
67
|
id: 'content',
|
|
104
68
|
name: 'Reply',
|
|
105
|
-
description: 'The assistant reply text',
|
|
106
|
-
type: types_1.FIELD_TYPE.STRING,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
id: 'role',
|
|
110
|
-
name: 'Role',
|
|
111
|
-
description: 'Role of the message (assistant)',
|
|
112
|
-
type: types_1.FIELD_TYPE.STRING,
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
id: 'model',
|
|
116
|
-
name: 'Model used',
|
|
117
|
-
description: 'Model that generated the reply',
|
|
69
|
+
description: 'The assistant reply text.',
|
|
118
70
|
type: types_1.FIELD_TYPE.STRING,
|
|
119
71
|
},
|
|
120
72
|
{
|
|
121
73
|
id: 'tokensUsed',
|
|
122
74
|
name: 'Tokens used',
|
|
123
|
-
description: 'Number of tokens consumed',
|
|
75
|
+
description: 'Number of tokens consumed.',
|
|
124
76
|
type: types_1.FIELD_TYPE.NUMBER,
|
|
125
77
|
},
|
|
126
78
|
{
|
|
127
79
|
id: 'cost',
|
|
128
80
|
name: 'Cost (USD)',
|
|
129
|
-
description: 'Estimated cost in USD',
|
|
81
|
+
description: 'Estimated cost in USD.',
|
|
130
82
|
type: types_1.FIELD_TYPE.NUMBER,
|
|
131
83
|
},
|
|
132
|
-
{
|
|
133
|
-
id: 'messageId',
|
|
134
|
-
name: 'Message ID',
|
|
135
|
-
description: 'Unique identifier for the message',
|
|
136
|
-
type: types_1.FIELD_TYPE.STRING,
|
|
137
|
-
},
|
|
138
84
|
],
|
|
139
85
|
};
|
|
140
86
|
//# sourceMappingURL=chat-completion.action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completion.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AACrB,iFAA4E;
|
|
1
|
+
{"version":3,"file":"chat-completion.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-completion.action.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AACrB,iFAA4E;AAE/D,QAAA,oBAAoB,GAA0B;IACzD,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,4CAA4C;IACzD,QAAQ,EAAE,qBAAa,CAAC,MAAM;IAC9B,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,+CAA2E;IACzF,MAAM,EAAE;QACN;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,+BAA+B;YAC5C,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC9B,WAAW,EAAE,qCAAqC;SACnD;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,4CAA4C;YACzD,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;YAC/B,WAAW,EAAE,2DAA2D;SACzE;QACD;YACE,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,CAAC;aACjF;YACD,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;gBAC9C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,qBAAqB,EAAE;gBACtD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE;aACnD;SACF;QACD;YACE,EAAE,EAAE,aAAa;YACjB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,kDAAkD;YAC/D,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;YAC/C,YAAY,EAAE,GAAG;SAClB;QACD;YACE,EAAE,EAAE,WAAW;YACf,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,kBAAU,CAAC,MAAM;YACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;YAClD,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE;QACP;YACE,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;QACD;YACE,EAAE,EAAE,YAAY;YAChB,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,4BAA4B;YACzC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,kBAAU,CAAC,MAAM;SACxB;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-purpose.action.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-purpose.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,iBAAiB,EAAE,qBAqO/B,CAAC"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.chatPurposeAction = void 0;
|
|
4
|
+
const types_1 = require("../../types");
|
|
5
|
+
const chat_purpose_service_1 = require("../services/chat-purpose.service");
|
|
6
|
+
exports.chatPurposeAction = {
|
|
7
|
+
key: 'chat-purpose',
|
|
8
|
+
name: 'ChatGPT Purpose',
|
|
9
|
+
description: 'Stateful conversational controller: collects structured data through conversation, persists memory across webhook executions, returns IN_PROGRESS | COMPLETED | FAILED. Use for KYC, onboarding, surveys, data correction.',
|
|
10
|
+
category: types_1.NODE_CATEGORY.ACTION,
|
|
11
|
+
icon: '🎯',
|
|
12
|
+
serviceClass: chat_purpose_service_1.ChatGptPurposeService,
|
|
13
|
+
inputs: [
|
|
14
|
+
{
|
|
15
|
+
id: 'systemPrompt',
|
|
16
|
+
name: 'System prompt',
|
|
17
|
+
description: 'Instructions for the assistant (e.g. goal, tone, questions to ask). Supports expressions like {{workflowId}}.',
|
|
18
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
19
|
+
validation: { required: true },
|
|
20
|
+
placeholder: 'e.g. You are collecting KYC data. Ask for full name, then ID number.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'incomingUserMessage',
|
|
24
|
+
name: 'Incoming user message',
|
|
25
|
+
description: 'The user message for this turn. Supports expressions from previous nodes.',
|
|
26
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
27
|
+
validation: { required: false },
|
|
28
|
+
placeholder: 'e.g. {{trigger.body.message}} or {{node_1.reply}}',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'enableMemoryPersistence',
|
|
32
|
+
name: 'Enable memory persistence',
|
|
33
|
+
description: 'Store conversation state in cache across executions (required for multi-turn via webhooks).',
|
|
34
|
+
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
35
|
+
validation: { required: false },
|
|
36
|
+
defaultValue: true,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'userId',
|
|
40
|
+
name: 'User ID',
|
|
41
|
+
description: 'Optional. User identifier for per-user isolation. Stored in Redis as workflow:workflowId:userId:... when provided. Supports expressions.',
|
|
42
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
43
|
+
validation: { required: false },
|
|
44
|
+
placeholder: 'e.g. {{trigger.body.userId}} or leave empty',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'memoryKey',
|
|
48
|
+
name: 'Memory key',
|
|
49
|
+
description: 'Required when persistence is enabled. Slot name for this conversation. Full Redis key: workflow:{workflowId}:[userId]:[purposeName]:memoryKey. Supports expressions.',
|
|
50
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
51
|
+
validation: { required: false },
|
|
52
|
+
placeholder: 'e.g. simpleKyc, onboarding',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: 'purposeName',
|
|
56
|
+
name: 'Purpose name',
|
|
57
|
+
description: 'Optional. Purpose identifier (e.g. simpleKyc, onboarding). Included in Redis key when provided. Supports expressions.',
|
|
58
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
59
|
+
validation: { required: false },
|
|
60
|
+
placeholder: 'e.g. simpleKyc',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: 'memoryTimePersistenceMinutes',
|
|
64
|
+
name: 'Memory time persistence (minutes)',
|
|
65
|
+
description: 'TTL for the conversation memory in cache (minutes). Default 60.',
|
|
66
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
67
|
+
validation: { required: false, min: 1, max: 43200 },
|
|
68
|
+
defaultValue: 60,
|
|
69
|
+
placeholder: '60',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'stopExecutionUntilPurposeFinish',
|
|
73
|
+
name: 'Stop execution until purpose finish',
|
|
74
|
+
description: 'When true, use an IF node after this node to branch on result.status; route only when COMPLETED to continue. Prevents advancing until conversation completes.',
|
|
75
|
+
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
76
|
+
validation: { required: false },
|
|
77
|
+
defaultValue: false,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: 'expectedOutputSchema',
|
|
81
|
+
name: 'Expected output schema (JSON)',
|
|
82
|
+
description: 'JSON schema or object describing the shape of "output" when status is COMPLETED (e.g. {"type":"object","properties":{"fullName":{},"idNumber":{}},"required":["fullName","idNumber"]}). Used for validation and to guide the model.',
|
|
83
|
+
type: types_1.FIELD_TYPE.JSON,
|
|
84
|
+
validation: { required: false },
|
|
85
|
+
placeholder: '{"type":"object","properties":{"fullName":{},"idNumber":{}},"required":["fullName","idNumber"]}',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: 'model',
|
|
89
|
+
name: 'Model',
|
|
90
|
+
description: 'ChatGPT model to use',
|
|
91
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
92
|
+
validation: {
|
|
93
|
+
required: false,
|
|
94
|
+
enum: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo-preview', 'gpt-4', 'gpt-3.5-turbo'],
|
|
95
|
+
},
|
|
96
|
+
defaultValue: 'gpt-4o',
|
|
97
|
+
options: [
|
|
98
|
+
{ label: 'GPT-4o', value: 'gpt-4o' },
|
|
99
|
+
{ label: 'GPT-4o Mini', value: 'gpt-4o-mini' },
|
|
100
|
+
{ label: 'GPT-4 Turbo', value: 'gpt-4-turbo-preview' },
|
|
101
|
+
{ label: 'GPT-4', value: 'gpt-4' },
|
|
102
|
+
{ label: 'GPT-3.5 Turbo', value: 'gpt-3.5-turbo' },
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
id: 'temperature',
|
|
107
|
+
name: 'Temperature',
|
|
108
|
+
description: 'Randomness (0 = focused, 2 = creative). Lower is better for structured collection.',
|
|
109
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
110
|
+
validation: { required: false, min: 0, max: 2 },
|
|
111
|
+
defaultValue: 0.3,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: 'maxTokens',
|
|
115
|
+
name: 'Max tokens',
|
|
116
|
+
description: 'Maximum response length',
|
|
117
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
118
|
+
validation: { required: false, min: 100, max: 4000 },
|
|
119
|
+
defaultValue: 2000,
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'maxContextTokens',
|
|
123
|
+
name: 'Max context tokens',
|
|
124
|
+
description: 'Token budget for conversation history; older messages are truncated to stay under this. Default 6000.',
|
|
125
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
126
|
+
validation: { required: false, min: 1000, max: 120000 },
|
|
127
|
+
defaultValue: 6000,
|
|
128
|
+
placeholder: '6000',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'enableConversationSummarization',
|
|
132
|
+
name: 'Enable conversation summarization',
|
|
133
|
+
description: 'When conversation is long, summarize oldest messages into one to save context. Recommended for long flows.',
|
|
134
|
+
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
135
|
+
validation: { required: false },
|
|
136
|
+
defaultValue: true,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
id: 'summarizationTriggerMessageCount',
|
|
140
|
+
name: 'Summarization trigger (message count)',
|
|
141
|
+
description: 'When message count reaches this, oldest portion is summarized. Default 14.',
|
|
142
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
143
|
+
validation: { required: false, min: 6, max: 50 },
|
|
144
|
+
defaultValue: 14,
|
|
145
|
+
placeholder: '14',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
outputs: [
|
|
149
|
+
{
|
|
150
|
+
id: 'messages',
|
|
151
|
+
name: 'Messages',
|
|
152
|
+
description: 'Full conversation history [{ role, content }]',
|
|
153
|
+
type: types_1.FIELD_TYPE.ARRAY,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
id: 'result',
|
|
157
|
+
name: 'Result',
|
|
158
|
+
description: 'Object with status (IN_PROGRESS | COMPLETED | FAILED) and output (when COMPLETED)',
|
|
159
|
+
type: types_1.FIELD_TYPE.OBJECT,
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: 'result.status',
|
|
163
|
+
name: 'Result status',
|
|
164
|
+
description: 'Use in IF node: IN_PROGRESS, COMPLETED, or FAILED',
|
|
165
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: 'result.output',
|
|
169
|
+
name: 'Result output',
|
|
170
|
+
description: 'Collected data when status is COMPLETED; use in concatenation or downstream nodes',
|
|
171
|
+
type: types_1.FIELD_TYPE.OBJECT,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: 'memoryKey',
|
|
175
|
+
name: 'Memory key',
|
|
176
|
+
description: 'Key used for persistence (for debugging)',
|
|
177
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: 'collectedData',
|
|
181
|
+
name: 'Collected data',
|
|
182
|
+
description: 'Accumulated collected data so far',
|
|
183
|
+
type: types_1.FIELD_TYPE.OBJECT,
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: 'lastAssistantMessage',
|
|
187
|
+
name: 'Last assistant message',
|
|
188
|
+
description: 'Latest assistant reply (e.g. for Twilio/SMS)',
|
|
189
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: 'metrics',
|
|
193
|
+
name: 'Metrics',
|
|
194
|
+
description: 'Conversation duration (ms), message count, completed (for completion rate)',
|
|
195
|
+
type: types_1.FIELD_TYPE.OBJECT,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
id: 'metrics.conversationDurationMs',
|
|
199
|
+
name: 'Metrics: duration (ms)',
|
|
200
|
+
description: 'Time from first message to last update',
|
|
201
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'metrics.messageCount',
|
|
205
|
+
name: 'Metrics: message count',
|
|
206
|
+
description: 'Total messages in conversation',
|
|
207
|
+
type: types_1.FIELD_TYPE.NUMBER,
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
id: 'metrics.completed',
|
|
211
|
+
name: 'Metrics: completed',
|
|
212
|
+
description: 'True when status is COMPLETED (for completion rate)',
|
|
213
|
+
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: 'error',
|
|
217
|
+
name: 'Error',
|
|
218
|
+
description: 'True if the node returned FAILED due to an error',
|
|
219
|
+
type: types_1.FIELD_TYPE.BOOLEAN,
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
id: 'errorMessage',
|
|
223
|
+
name: 'Error message',
|
|
224
|
+
description: 'Error details when error is true',
|
|
225
|
+
type: types_1.FIELD_TYPE.STRING,
|
|
226
|
+
},
|
|
227
|
+
],
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=chat-purpose.action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-purpose.action.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/chat-purpose.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./chat-completion.action"), exports);
|
|
18
|
+
__exportStar(require("./chat-purpose.action"), exports);
|
|
18
19
|
__exportStar(require("./create-embedding.action"), exports);
|
|
19
20
|
__exportStar(require("./generate-image.action"), exports);
|
|
20
21
|
__exportStar(require("./speech-to-text.action"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,4DAA0C;AAC1C,0DAAwC;AACxC,0DAAwC;AACxC,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,wDAAsC;AACtC,4DAA0C;AAC1C,0DAAwC;AACxC,0DAAwC;AACxC,0DAAwC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt-nest.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chatgpt-nest.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":"AAaA,qBAqBa,iBAAiB;CAAG"}
|
|
@@ -20,6 +20,7 @@ exports.ChatGptNestModule = ChatGptNestModule = __decorate([
|
|
|
20
20
|
providers: [
|
|
21
21
|
auth_1.ChatGptAuthService,
|
|
22
22
|
services_1.ChatCompletionService,
|
|
23
|
+
services_1.ChatGptPurposeService,
|
|
23
24
|
services_1.CreateEmbeddingService,
|
|
24
25
|
services_1.GenerateImageService,
|
|
25
26
|
services_1.SpeechToTextService,
|
|
@@ -28,6 +29,7 @@ exports.ChatGptNestModule = ChatGptNestModule = __decorate([
|
|
|
28
29
|
exports: [
|
|
29
30
|
auth_1.ChatGptAuthService,
|
|
30
31
|
services_1.ChatCompletionService,
|
|
32
|
+
services_1.ChatGptPurposeService,
|
|
31
33
|
services_1.CreateEmbeddingService,
|
|
32
34
|
services_1.GenerateImageService,
|
|
33
35
|
services_1.SpeechToTextService,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt-nest.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAAsD;AAEtD,iCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"chatgpt-nest.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt-nest.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAAsD;AAEtD,iCAA4C;AAC5C,yCAOoB;AAuBb,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,8CAAiB;4BAAjB,iBAAiB;IArB7B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC;QACxB,SAAS,EAAE;YACT,yBAAkB;YAClB,gCAAqB;YACrB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;QACD,OAAO,EAAE;YACP,yBAAkB;YAClB,gCAAqB;YACrB,gCAAqB;YACrB,iCAAsB;YACtB,+BAAoB;YACpB,8BAAmB;YACnB,8BAAmB;SACpB;KACF,CAAC;GACW,iBAAiB,CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"chatgpt.module.d.ts","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAYpF,eAAO,MAAM,aAAa,EAAE,wBAmB3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatgpt.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"chatgpt.module.js","sourceRoot":"","sources":["../../../src/modules/chatgpt/chatgpt.module.ts"],"names":[],"mappings":";;;AACA,uCAOmB;AACnB,iCAA4C;AAC5C,+CAAmD;AAEtC,QAAA,aAAa,GAA6B;IACrD,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,+DAA+D;IAC5E,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,OAAO;IAChB,gBAAgB,EAAE,gCAAkB;IACpC,gBAAgB,EAAE,yBAEiB;IACnC,OAAO,EAAE;QACP,8BAAoB;QACpB,2BAAiB;QACjB,6BAAmB;QACnB,4BAAkB;QAClB,4BAAkB;QAClB,+BAAqB;KACtB;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completion.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,qBAAsB,YAAW,sBAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"chat-completion.service.d.ts","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,kBAAkB,EAEnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E,qBACa,qBAAsB,YAAW,sBAAsB;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAAlB,kBAAkB,EAAE,kBAAkB;IAE7D,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4CnC,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,aAAa;CAWtB"}
|
|
@@ -23,64 +23,36 @@ let ChatCompletionService = class ChatCompletionService {
|
|
|
23
23
|
if (!apiKey) {
|
|
24
24
|
throw new Error('OpenAI API key is required in credentials');
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
if (
|
|
28
|
-
throw new Error('
|
|
26
|
+
const message = String(inputs.message ?? '').trim();
|
|
27
|
+
if (!message) {
|
|
28
|
+
throw new Error('Message is required');
|
|
29
29
|
}
|
|
30
|
+
const messages = this.buildMessages(message, inputs.systemInstructions ?? undefined);
|
|
30
31
|
const model = inputs.model || 'gpt-4o';
|
|
31
|
-
const temperature = inputs.temperature
|
|
32
|
-
const maxTokens = inputs.maxTokens
|
|
33
|
-
const store = inputs.store !== false;
|
|
32
|
+
const temperature = inputs.temperature ?? 0.7;
|
|
33
|
+
const maxTokens = inputs.maxTokens ?? 2000;
|
|
34
34
|
const completion = await this.chatGptChatService.createChatCompletion({
|
|
35
35
|
model,
|
|
36
36
|
temperature,
|
|
37
37
|
maxTokens,
|
|
38
|
-
store,
|
|
38
|
+
store: true,
|
|
39
39
|
apiKey,
|
|
40
40
|
baseUrl,
|
|
41
41
|
}, messages);
|
|
42
42
|
const assistantMessage = completion.choices[0]?.message;
|
|
43
|
+
const totalTokens = completion.usage?.total_tokens ?? 0;
|
|
43
44
|
return {
|
|
44
|
-
content: assistantMessage?.content
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
tokensUsed: completion.usage?.total_tokens || 0,
|
|
48
|
-
cost: this.calculateCost(completion.model, completion.usage?.total_tokens || 0),
|
|
49
|
-
messageId: completion.id,
|
|
45
|
+
content: assistantMessage?.content ?? '',
|
|
46
|
+
tokensUsed: totalTokens,
|
|
47
|
+
cost: this.calculateCost(completion.model, totalTokens),
|
|
50
48
|
};
|
|
51
49
|
}
|
|
52
|
-
buildMessages(
|
|
50
|
+
buildMessages(message, systemInstructions) {
|
|
53
51
|
const result = [];
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
result.push({ role: 'system', content: systemPrompt.trim() });
|
|
57
|
-
}
|
|
58
|
-
let conversation = [];
|
|
59
|
-
if (inputs.messages != null) {
|
|
60
|
-
if (typeof inputs.messages === 'string') {
|
|
61
|
-
try {
|
|
62
|
-
const parsed = JSON.parse(inputs.messages);
|
|
63
|
-
conversation = Array.isArray(parsed) ? parsed : [];
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
conversation = [];
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else if (Array.isArray(inputs.messages)) {
|
|
70
|
-
conversation = inputs.messages;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const validRoles = ['system', 'user', 'assistant'];
|
|
74
|
-
for (const m of conversation) {
|
|
75
|
-
if (m && typeof m === 'object' && typeof m.content === 'string') {
|
|
76
|
-
const role = validRoles.includes(m.role) ? m.role : 'user';
|
|
77
|
-
result.push({ role: role, content: m.content });
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
const userMessage = inputs.userMessage;
|
|
81
|
-
if (userMessage != null && String(userMessage).trim()) {
|
|
82
|
-
result.push({ role: 'user', content: userMessage.trim() });
|
|
52
|
+
if (systemInstructions?.trim()) {
|
|
53
|
+
result.push({ role: 'system', content: systemInstructions.trim() });
|
|
83
54
|
}
|
|
55
|
+
result.push({ role: 'user', content: message });
|
|
84
56
|
return result;
|
|
85
57
|
}
|
|
86
58
|
calculateCost(model, tokens) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-completion.service.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mDAK+B;AAKxB,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACH;IAA7B,YAA6B,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;IAAG,CAAC;IAEvE,KAAK,CAAC,OAAO,CACX,MAA+B,EAC/B,OAA8B;QAE9B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,MAAgB,CAAC;QACrD,MAAM,OAAO,GAAI,OAAO,CAAC,WAAW,EAAE,OAAkB,IAAI,2BAA2B,CAAC;QAExF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"chat-completion.service.js","sourceRoot":"","sources":["../../../../src/modules/chatgpt/services/chat-completion.service.ts"],"names":[],"mappings":"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"}
|