@avalant/piece-promptx-openai 0.0.7 → 0.0.9
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/package.json +9 -16
- package/src/index.d.ts +1 -1
- package/src/index.js +7 -10
- package/src/index.js.map +1 -1
- package/src/lib/actions/ask-chatgpt.d.ts +1 -1
- package/src/lib/actions/ask-chatgpt.js +79 -82
- package/src/lib/actions/ask-chatgpt.js.map +1 -1
- package/src/lib/actions/extract-structured-data-from-text.d.ts +1 -1
- package/src/lib/actions/extract-structured-data-from-text.js +24 -55
- package/src/lib/actions/extract-structured-data-from-text.js.map +1 -1
- package/src/lib/actions/vision-prompt.d.ts +1 -1
- package/src/lib/actions/vision-prompt.js +49 -40
- package/src/lib/actions/vision-prompt.js.map +1 -1
- package/src/lib/common/pmtx-api.d.ts +5 -3
- package/src/lib/common/pmtx-api.js +44 -49
- package/src/lib/common/pmtx-api.js.map +1 -1
- package/src/lib/actions/ask-assistant.d.ts +0 -9
- package/src/lib/actions/ask-assistant.js +0 -159
- package/src/lib/actions/ask-assistant.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@avalant/piece-promptx-openai",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@sinclair/typebox": "0.34.11",
|
|
6
|
-
"axios": "1.
|
|
6
|
+
"axios": "1.13.1",
|
|
7
7
|
"axios-retry": "4.4.1",
|
|
8
8
|
"deepmerge-ts": "7.1.0",
|
|
9
9
|
"mime-types": "2.1.35",
|
|
10
10
|
"nanoid": "3.3.8",
|
|
11
11
|
"openai": "4.67.1",
|
|
12
12
|
"semver": "7.6.0",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"@activepieces/pieces-
|
|
17
|
-
"@activepieces/
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
"overrides": {
|
|
21
|
-
"@tryfabric/martian": {
|
|
22
|
-
"@notionhq/client": "$@notionhq/client"
|
|
23
|
-
},
|
|
24
|
-
"vite": {
|
|
25
|
-
"rollup": "npm:@rollup/wasm-node"
|
|
26
|
-
}
|
|
13
|
+
"socket.io-client": "4.8.1",
|
|
14
|
+
"tiktoken": "^1.0.22",
|
|
15
|
+
"zod": "4.1.13",
|
|
16
|
+
"@activepieces/pieces-common": "0.10.1",
|
|
17
|
+
"@activepieces/pieces-framework": "0.22.2",
|
|
18
|
+
"@activepieces/shared": "0.30.2",
|
|
19
|
+
"tslib": "2.6.2"
|
|
27
20
|
},
|
|
28
21
|
"resolutions": {
|
|
29
22
|
"rollup": "npm:@rollup/wasm-node"
|
package/src/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare const promptxAuth: import("@activepieces/pieces-framework").Custo
|
|
|
3
3
|
username: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
4
|
password: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
5
|
}>;
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const promptxOpenai: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
7
7
|
server: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
8
8
|
username: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
9
9
|
password: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
package/src/index.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.promptxOpenai = exports.promptxAuth = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
6
|
const ask_chatgpt_1 = require("./lib/actions/ask-chatgpt");
|
|
7
|
-
const ask_assistant_1 = require("./lib/actions/ask-assistant");
|
|
8
7
|
const vision_prompt_1 = require("./lib/actions/vision-prompt");
|
|
9
8
|
const extract_structured_data_from_text_1 = require("./lib/actions/extract-structured-data-from-text");
|
|
10
9
|
const pmtx_api_1 = require("./lib/common/pmtx-api");
|
|
@@ -63,21 +62,19 @@ exports.promptxAuth = pieces_framework_1.PieceAuth.CustomAuth({
|
|
|
63
62
|
body,
|
|
64
63
|
headers,
|
|
65
64
|
});
|
|
66
|
-
if (response.
|
|
67
|
-
return {
|
|
68
|
-
valid: true,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
65
|
+
if (!response.ok) {
|
|
72
66
|
const data = yield response.json();
|
|
73
67
|
return {
|
|
74
68
|
valid: false,
|
|
75
69
|
error: (data === null || data === void 0 ? void 0 : data.error) || (data === null || data === void 0 ? void 0 : data.message),
|
|
76
70
|
};
|
|
77
71
|
}
|
|
72
|
+
return {
|
|
73
|
+
valid: true,
|
|
74
|
+
};
|
|
78
75
|
}),
|
|
79
76
|
});
|
|
80
|
-
exports.
|
|
77
|
+
exports.promptxOpenai = (0, pieces_framework_1.createPiece)({
|
|
81
78
|
displayName: 'PromptX OpenAI',
|
|
82
79
|
description: 'Talk directly to OpenAI’s ChatGPT using your available PromptX credits. Use the many tools ChatGPT has to offer using your PromptX credits per request.',
|
|
83
80
|
auth: exports.promptxAuth,
|
|
@@ -85,7 +82,7 @@ exports.avalantOpenai = (0, pieces_framework_1.createPiece)({
|
|
|
85
82
|
logoUrl: 'https://ml.oneweb.tech/public_img_main/images/PromptXAI/PromptXAI_0f345f3d9b6743f09e7d3db295973845.png',
|
|
86
83
|
categories: [shared_1.PieceCategory.ARTIFICIAL_INTELLIGENCE],
|
|
87
84
|
authors: ['rupalbarman'],
|
|
88
|
-
actions: [ask_chatgpt_1.askOpenAI,
|
|
85
|
+
actions: [ask_chatgpt_1.askOpenAI, vision_prompt_1.visionPrompt, extract_structured_data_from_text_1.extractStructuredDataAction],
|
|
89
86
|
triggers: [],
|
|
90
87
|
});
|
|
91
88
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/promptx-openai/src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,2DAAsD;AACtD,+DAA2D;AAC3D
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/promptx-openai/src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,2DAAsD;AACtD,+DAA2D;AAC3D,uGAA8F;AAC9F,oDAAmD;AACnD,iDAAqD;AAExC,QAAA,WAAW,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC9C,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAC9B,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,YAAY;qBACpB;oBACD;wBACE,KAAK,EAAE,MAAM;wBACb,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF;YACD,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,YAAY;SAC3B,CAAC;QACF,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,QAAQ,EAAE,4BAAS,CAAC,UAAU,CAAC;YAC7B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4BAA4B;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,qBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;QAC5C,MAAM,IAAI,GAAG,SAAS;YACpB,CAAC,CAAC,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;YACxD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,SAAS;gBACvB,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,kBAAkB;SACvB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YACrC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;aACpC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC,CAAA;CACF,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,IAAA,8BAAW,EAAC;IACvC,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,yJAAyJ;IAC3J,IAAI,EAAE,mBAAW;IACjB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EACL,wGAAwG;IAC1G,UAAU,EAAE,CAAC,sBAAa,CAAC,uBAAuB,CAAC;IACnD,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,OAAO,EAAE,CAAC,uBAAS,EAAE,4BAAY,EAAE,+DAA2B,CAAC;IAC/D,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -3,7 +3,7 @@ export declare const askOpenAI: import("@activepieces/pieces-framework").IAction
|
|
|
3
3
|
username: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
4
|
password: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
5
|
}>, {
|
|
6
|
-
model: import("@activepieces/pieces-framework").
|
|
6
|
+
model: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
7
7
|
prompt: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
8
8
|
temperature: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
9
9
|
maxTokens: import("@activepieces/pieces-framework").NumberProperty<true>;
|
|
@@ -9,57 +9,22 @@ const common_1 = require("../common/common");
|
|
|
9
9
|
const zod_1 = require("zod");
|
|
10
10
|
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
11
11
|
const pmtx_api_1 = require("../common/pmtx-api");
|
|
12
|
+
const error_1 = require("openai/error");
|
|
12
13
|
exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
13
14
|
auth: __1.promptxAuth,
|
|
14
15
|
name: 'ask_chatgpt',
|
|
15
16
|
displayName: 'Ask ChatGPT',
|
|
16
17
|
description: 'Ask ChatGPT anything you want!',
|
|
17
18
|
props: {
|
|
18
|
-
model: pieces_framework_1.Property.
|
|
19
|
+
model: pieces_framework_1.Property.StaticDropdown({
|
|
19
20
|
displayName: 'Model',
|
|
20
21
|
required: true,
|
|
21
22
|
description: 'The model which will generate the completion. Some models are suitable for natural language tasks, others specialize in code.',
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
let openApiKey;
|
|
28
|
-
try {
|
|
29
|
-
accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
30
|
-
openApiKey = yield (0, pmtx_api_1.getAiApiKey)(promptxAuth.server, accessToken);
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
console.error(error);
|
|
34
|
-
return {
|
|
35
|
-
disabled: true,
|
|
36
|
-
placeholder: 'Unable to fetch OpenAI key. Check connection',
|
|
37
|
-
options: [],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
try {
|
|
41
|
-
const openai = new openai_1.default({ apiKey: openApiKey });
|
|
42
|
-
const response = yield openai.models.list();
|
|
43
|
-
// We need to get only LLM models
|
|
44
|
-
const models = response.data.filter((model) => !common_1.notLLMs.includes(model.id));
|
|
45
|
-
return {
|
|
46
|
-
disabled: false,
|
|
47
|
-
options: models.map((model) => {
|
|
48
|
-
return {
|
|
49
|
-
label: model.id,
|
|
50
|
-
value: model.id,
|
|
51
|
-
};
|
|
52
|
-
}),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
return {
|
|
57
|
-
disabled: true,
|
|
58
|
-
options: [],
|
|
59
|
-
placeholder: "Couldn't load models, API key is invalid",
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
}),
|
|
23
|
+
defaultValue: 'gpt-4.1-mini',
|
|
24
|
+
options: {
|
|
25
|
+
disabled: false,
|
|
26
|
+
options: (0, pmtx_api_1.getOpenAiModelOptions)(),
|
|
27
|
+
},
|
|
63
28
|
}),
|
|
64
29
|
prompt: pieces_framework_1.Property.LongText({
|
|
65
30
|
displayName: 'Question',
|
|
@@ -69,7 +34,7 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
69
34
|
displayName: 'Temperature',
|
|
70
35
|
required: false,
|
|
71
36
|
description: 'Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.',
|
|
72
|
-
defaultValue: 0
|
|
37
|
+
defaultValue: 0,
|
|
73
38
|
}),
|
|
74
39
|
maxTokens: pieces_framework_1.Property.Number({
|
|
75
40
|
displayName: 'Maximum Tokens',
|
|
@@ -114,15 +79,25 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
114
79
|
required: false,
|
|
115
80
|
}),
|
|
116
81
|
},
|
|
117
|
-
run(
|
|
118
|
-
return tslib_1.__awaiter(this,
|
|
119
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p
|
|
120
|
-
const
|
|
121
|
-
const
|
|
82
|
+
run(context) {
|
|
83
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
85
|
+
const { auth, propsValue, store, project, flows } = context;
|
|
86
|
+
const { prompt, model, maxTokens, memoryKey, website, temperature, topP, frequencyPenalty, presencePenalty, } = propsValue;
|
|
87
|
+
const pxAuth = {
|
|
88
|
+
server: auth.props.server === 'production' ? 'production' : 'staging',
|
|
89
|
+
username: auth.props.username,
|
|
90
|
+
password: auth.props.password,
|
|
91
|
+
};
|
|
92
|
+
const accessToken = yield (0, pmtx_api_1.getAccessToken)(pxAuth);
|
|
93
|
+
const apiKey = yield (0, pmtx_api_1.getAiApiKey)(context.server.apiUrl, context.server.token);
|
|
94
|
+
const usage = yield (0, pmtx_api_1.getUsagePlan)(pxAuth.server, accessToken);
|
|
122
95
|
// Get store data
|
|
123
|
-
const { userId
|
|
124
|
-
|
|
125
|
-
|
|
96
|
+
const { userId } = yield (0, pmtx_api_1.getStoreData)(store, pxAuth.server, accessToken);
|
|
97
|
+
yield pieces_common_1.propsValidation.validateZod(propsValue, {
|
|
98
|
+
memoryKey: zod_1.z.string().max(128).optional(),
|
|
99
|
+
});
|
|
100
|
+
const openai = new openai_1.default({ apiKey });
|
|
126
101
|
// Check token is available
|
|
127
102
|
if (maxTokens && maxTokens > usage.token_available) {
|
|
128
103
|
throw new Error(common_1.billingIssueMessage);
|
|
@@ -132,11 +107,10 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
132
107
|
memoryKey: zod_1.z.string().max(128).optional(),
|
|
133
108
|
website: zod_1.z.string().optional(),
|
|
134
109
|
});
|
|
135
|
-
const openai = new openai_1.default({ apiKey });
|
|
136
110
|
let messageHistory = [];
|
|
137
111
|
// If memory key is set, retrieve messages stored in history
|
|
138
112
|
if (memoryKey) {
|
|
139
|
-
messageHistory = (
|
|
113
|
+
messageHistory = (_a = (yield store.get(memoryKey, pieces_framework_1.StoreScope.PROJECT))) !== null && _a !== void 0 ? _a : [];
|
|
140
114
|
}
|
|
141
115
|
// Add user prompt to message history
|
|
142
116
|
messageHistory.push({
|
|
@@ -144,16 +118,21 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
144
118
|
content: prompt,
|
|
145
119
|
});
|
|
146
120
|
// Add system instructions if set by user
|
|
147
|
-
const
|
|
148
|
-
const
|
|
149
|
-
|
|
121
|
+
const propRoles = propsValue.roles;
|
|
122
|
+
const rolesEnum = ['system', 'user', 'assistant'];
|
|
123
|
+
const systemRoleMessages = [];
|
|
124
|
+
propRoles.forEach((item) => {
|
|
150
125
|
if (!rolesEnum.includes(item.role)) {
|
|
151
126
|
throw new Error('The only available roles are: [system, user, assistant]');
|
|
152
127
|
}
|
|
153
|
-
|
|
154
|
-
role: item.role
|
|
128
|
+
systemRoleMessages.push({
|
|
129
|
+
role: item.role === 'system'
|
|
130
|
+
? 'system'
|
|
131
|
+
: item.role === 'user'
|
|
132
|
+
? 'user'
|
|
133
|
+
: 'assistant',
|
|
155
134
|
content: item.content,
|
|
156
|
-
};
|
|
135
|
+
});
|
|
157
136
|
});
|
|
158
137
|
let completion;
|
|
159
138
|
if (website && website.trim()) {
|
|
@@ -166,10 +145,10 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
166
145
|
method: 'POST',
|
|
167
146
|
headers: {
|
|
168
147
|
'Content-Type': 'application/json',
|
|
169
|
-
|
|
148
|
+
Authorization: `Bearer ${apiKey}`,
|
|
170
149
|
},
|
|
171
150
|
body: JSON.stringify({
|
|
172
|
-
input:
|
|
151
|
+
input: systemRoleMessages.concat(messageHistory),
|
|
173
152
|
model: model,
|
|
174
153
|
tools: [
|
|
175
154
|
{
|
|
@@ -192,33 +171,51 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
192
171
|
}
|
|
193
172
|
const result = yield response.json();
|
|
194
173
|
// Extract text content from the response output
|
|
195
|
-
const responseContent = ((
|
|
174
|
+
const responseContent = ((_e = (_d = (_c = (_b = result.output) === null || _b === void 0 ? void 0 : _b.find((item) => item.type === 'message')) === null || _c === void 0 ? void 0 : _c.content) === null || _d === void 0 ? void 0 : _d.find((content) => content.type === 'output_text')) === null || _e === void 0 ? void 0 : _e.text) || 'No response content found';
|
|
196
175
|
// Create a completion object for compatibility using actual usage data
|
|
197
176
|
completion = {
|
|
198
|
-
|
|
177
|
+
id: 'dummy',
|
|
178
|
+
created: 0,
|
|
179
|
+
model,
|
|
180
|
+
object: 'chat.completion',
|
|
181
|
+
choices: [
|
|
182
|
+
{
|
|
199
183
|
message: {
|
|
200
184
|
role: 'assistant',
|
|
201
185
|
content: responseContent,
|
|
202
|
-
|
|
203
|
-
|
|
186
|
+
refusal: null,
|
|
187
|
+
},
|
|
188
|
+
logprobs: null,
|
|
189
|
+
index: 0,
|
|
190
|
+
finish_reason: 'stop',
|
|
191
|
+
},
|
|
192
|
+
],
|
|
204
193
|
usage: {
|
|
205
|
-
prompt_tokens: ((
|
|
206
|
-
completion_tokens: ((
|
|
207
|
-
total_tokens: ((
|
|
208
|
-
}
|
|
194
|
+
prompt_tokens: ((_f = result.usage) === null || _f === void 0 ? void 0 : _f.input_tokens) || 0,
|
|
195
|
+
completion_tokens: ((_g = result.usage) === null || _g === void 0 ? void 0 : _g.output_tokens) || 0,
|
|
196
|
+
total_tokens: ((_h = result.usage) === null || _h === void 0 ? void 0 : _h.total_tokens) || 0,
|
|
197
|
+
},
|
|
209
198
|
};
|
|
210
199
|
}
|
|
211
200
|
else {
|
|
212
201
|
// Send prompt using regular chat completion
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
202
|
+
try {
|
|
203
|
+
completion = yield openai.chat.completions.create({
|
|
204
|
+
model: model,
|
|
205
|
+
messages: systemRoleMessages.concat(messageHistory),
|
|
206
|
+
temperature: temperature,
|
|
207
|
+
top_p: topP,
|
|
208
|
+
frequency_penalty: frequencyPenalty,
|
|
209
|
+
presence_penalty: presencePenalty,
|
|
210
|
+
max_completion_tokens: Math.floor(maxTokens),
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
if (e instanceof error_1.APIError) {
|
|
215
|
+
throw new Error(JSON.stringify(e.error));
|
|
216
|
+
}
|
|
217
|
+
throw e;
|
|
218
|
+
}
|
|
222
219
|
}
|
|
223
220
|
// Add response to message history
|
|
224
221
|
messageHistory = [...messageHistory, completion.choices[0].message];
|
|
@@ -241,11 +238,11 @@ exports.askOpenAI = (0, pieces_framework_1.createAction)({
|
|
|
241
238
|
flowId: flows.current.id,
|
|
242
239
|
component: 'Automationx',
|
|
243
240
|
usage: {
|
|
244
|
-
inputTokens: (
|
|
245
|
-
outputTokens: (
|
|
246
|
-
totalTokens: (
|
|
241
|
+
inputTokens: (_k = (_j = completion.usage) === null || _j === void 0 ? void 0 : _j.prompt_tokens) !== null && _k !== void 0 ? _k : 0,
|
|
242
|
+
outputTokens: (_m = (_l = completion.usage) === null || _l === void 0 ? void 0 : _l.completion_tokens) !== null && _m !== void 0 ? _m : 0,
|
|
243
|
+
totalTokens: (_p = (_o = completion.usage) === null || _o === void 0 ? void 0 : _o.total_tokens) !== null && _p !== void 0 ? _p : 0,
|
|
247
244
|
},
|
|
248
|
-
},
|
|
245
|
+
}, pxAuth.server, accessToken);
|
|
249
246
|
return completion.choices[0].message.content;
|
|
250
247
|
});
|
|
251
248
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-chatgpt.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/ask-chatgpt.ts"],"names":[],"mappings":";;;;AAAA,qEAIwC;AACxC,4DAA4B;AAC5B,6BAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"ask-chatgpt.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/ask-chatgpt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export declare const extractStructuredDataAction: import("@activepieces/pieces-f
|
|
|
3
3
|
username: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
4
|
password: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
5
|
}>, {
|
|
6
|
-
model: import("@activepieces/pieces-framework").
|
|
6
|
+
model: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
7
7
|
text: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
8
8
|
params: import("@activepieces/pieces-framework").ArrayProperty<true> | import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
9
9
|
}>;
|
|
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const __1 = require("../../");
|
|
6
6
|
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
7
|
const openai_1 = tslib_1.__importDefault(require("openai"));
|
|
8
|
-
const common_1 = require("../common/common");
|
|
9
8
|
const pmtx_api_1 = require("../common/pmtx-api");
|
|
10
9
|
exports.extractStructuredDataAction = (0, pieces_framework_1.createAction)({
|
|
11
10
|
auth: __1.promptxAuth,
|
|
@@ -13,49 +12,14 @@ exports.extractStructuredDataAction = (0, pieces_framework_1.createAction)({
|
|
|
13
12
|
displayName: 'Extract Structured Data from Text',
|
|
14
13
|
description: 'Returns structured data from provided unstructured text.',
|
|
15
14
|
props: {
|
|
16
|
-
model: pieces_framework_1.Property.
|
|
15
|
+
model: pieces_framework_1.Property.StaticDropdown({
|
|
17
16
|
displayName: 'Model',
|
|
18
17
|
required: true,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
let openApiKey;
|
|
25
|
-
try {
|
|
26
|
-
accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
27
|
-
openApiKey = yield (0, pmtx_api_1.getAiApiKey)(promptxAuth.server, accessToken);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
return {
|
|
31
|
-
disabled: true,
|
|
32
|
-
placeholder: 'Unable to fetch OpenAI key. Check connection',
|
|
33
|
-
options: [],
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
const openai = new openai_1.default({ apiKey: openApiKey });
|
|
38
|
-
const response = yield openai.models.list();
|
|
39
|
-
// We need to get only LLM models
|
|
40
|
-
const models = response.data.filter((model) => !common_1.notLLMs.includes(model.id));
|
|
41
|
-
return {
|
|
42
|
-
disabled: false,
|
|
43
|
-
options: models.map((model) => {
|
|
44
|
-
return {
|
|
45
|
-
label: model.id,
|
|
46
|
-
value: model.id,
|
|
47
|
-
};
|
|
48
|
-
}),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
return {
|
|
53
|
-
disabled: true,
|
|
54
|
-
options: [],
|
|
55
|
-
placeholder: "Couldn't load models, API key is invalid",
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
}),
|
|
18
|
+
defaultValue: 'gpt-5-mini',
|
|
19
|
+
options: {
|
|
20
|
+
disabled: false,
|
|
21
|
+
options: (0, pmtx_api_1.getOpenAiModelOptions)(),
|
|
22
|
+
},
|
|
59
23
|
}),
|
|
60
24
|
text: pieces_framework_1.Property.LongText({
|
|
61
25
|
displayName: 'Unstructured Text',
|
|
@@ -97,22 +61,27 @@ exports.extractStructuredDataAction = (0, pieces_framework_1.createAction)({
|
|
|
97
61
|
},
|
|
98
62
|
}),
|
|
99
63
|
},
|
|
100
|
-
run(
|
|
101
|
-
return tslib_1.__awaiter(this,
|
|
102
|
-
var _b, _c, _d, _e, _f, _g
|
|
103
|
-
const
|
|
104
|
-
const accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
105
|
-
const usage = yield (0, pmtx_api_1.getUsagePlan)(promptxAuth.server, accessToken);
|
|
106
|
-
// Get store data
|
|
107
|
-
const { userId, apiKey } = yield (0, pmtx_api_1.getStoreData)(store, promptxAuth.server, accessToken);
|
|
64
|
+
run(context) {
|
|
65
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
67
|
+
const { auth, propsValue, store, project, flows } = context;
|
|
108
68
|
const { model, text } = propsValue;
|
|
69
|
+
const pxAuth = {
|
|
70
|
+
server: auth.props.server === 'production' ? 'production' : 'staging',
|
|
71
|
+
username: auth.props.username,
|
|
72
|
+
password: auth.props.password,
|
|
73
|
+
};
|
|
74
|
+
const accessToken = yield (0, pmtx_api_1.getAccessToken)(pxAuth);
|
|
75
|
+
const apiKey = yield (0, pmtx_api_1.getAiApiKey)(context.server.apiUrl, context.server.token);
|
|
76
|
+
const usage = yield (0, pmtx_api_1.getUsagePlan)(pxAuth.server, accessToken);
|
|
77
|
+
const { userId } = yield (0, pmtx_api_1.getStoreData)(store, pxAuth.server, accessToken);
|
|
109
78
|
const paramInputArray = propsValue.params;
|
|
110
79
|
const functionParams = {};
|
|
111
80
|
const requiredFunctionParams = [];
|
|
112
81
|
for (const param of paramInputArray) {
|
|
113
82
|
functionParams[param.propName] = {
|
|
114
83
|
type: param.propDataType,
|
|
115
|
-
description: (
|
|
84
|
+
description: (_a = param.propDescription) !== null && _a !== void 0 ? _a : param.propName,
|
|
116
85
|
};
|
|
117
86
|
if (param.propIsRequired) {
|
|
118
87
|
requiredFunctionParams.push(param.propName);
|
|
@@ -155,11 +124,11 @@ exports.extractStructuredDataAction = (0, pieces_framework_1.createAction)({
|
|
|
155
124
|
flowId: flows.current.id,
|
|
156
125
|
component: 'Automationx',
|
|
157
126
|
usage: {
|
|
158
|
-
inputTokens: (
|
|
159
|
-
outputTokens: (
|
|
160
|
-
totalTokens: (
|
|
127
|
+
inputTokens: (_c = (_b = response.usage) === null || _b === void 0 ? void 0 : _b.prompt_tokens) !== null && _c !== void 0 ? _c : 0,
|
|
128
|
+
outputTokens: (_e = (_d = response.usage) === null || _d === void 0 ? void 0 : _d.completion_tokens) !== null && _e !== void 0 ? _e : 0,
|
|
129
|
+
totalTokens: (_g = (_f = response.usage) === null || _f === void 0 ? void 0 : _f.total_tokens) !== null && _g !== void 0 ? _g : 0,
|
|
161
130
|
},
|
|
162
|
-
},
|
|
131
|
+
}, pxAuth.server, accessToken);
|
|
163
132
|
return JSON.parse(toolCallsResponse[0].function.arguments);
|
|
164
133
|
}
|
|
165
134
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-structured-data-from-text.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/extract-structured-data-from-text.ts"],"names":[],"mappings":";;;;AAAA,8BAAqC;AACrC,qEAAwE;AACxE,4DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"extract-structured-data-from-text.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/extract-structured-data-from-text.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare const visionPrompt: import("@activepieces/pieces-framework").IAct
|
|
|
5
5
|
}>, {
|
|
6
6
|
image: import("@activepieces/pieces-framework").FileProperty<true>;
|
|
7
7
|
prompt: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
8
|
-
detail: import("@activepieces/pieces-framework").
|
|
8
|
+
detail: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
9
9
|
temperature: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
10
10
|
maxTokens: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
11
11
|
topP: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
@@ -25,30 +25,28 @@ exports.visionPrompt = (0, pieces_framework_1.createAction)({
|
|
|
25
25
|
description: 'What do you want ChatGPT to tell you about the image?',
|
|
26
26
|
required: true,
|
|
27
27
|
}),
|
|
28
|
-
detail: pieces_framework_1.Property.
|
|
28
|
+
detail: pieces_framework_1.Property.StaticDropdown({
|
|
29
29
|
displayName: 'Detail',
|
|
30
30
|
required: false,
|
|
31
31
|
description: 'Control how the model processes the image and generates textual understanding.',
|
|
32
32
|
defaultValue: 'auto',
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
}),
|
|
33
|
+
options: {
|
|
34
|
+
disabled: false,
|
|
35
|
+
options: [
|
|
36
|
+
{
|
|
37
|
+
label: 'low',
|
|
38
|
+
value: 'low',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'high',
|
|
42
|
+
value: 'high',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
label: 'auto',
|
|
46
|
+
value: 'auto',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
52
50
|
}),
|
|
53
51
|
temperature: pieces_framework_1.Property.Number({
|
|
54
52
|
displayName: 'Temperature',
|
|
@@ -89,15 +87,20 @@ exports.visionPrompt = (0, pieces_framework_1.createAction)({
|
|
|
89
87
|
],
|
|
90
88
|
}),
|
|
91
89
|
},
|
|
92
|
-
run(
|
|
93
|
-
return tslib_1.__awaiter(this,
|
|
94
|
-
var _b, _c, _d, _e, _f
|
|
95
|
-
const
|
|
96
|
-
const accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
97
|
-
// Get store data
|
|
98
|
-
const { userId, apiKey } = yield (0, pmtx_api_1.getStoreData)(store, promptxAuth.server, accessToken);
|
|
90
|
+
run(context) {
|
|
91
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
var _a, _b, _c, _d, _e, _f;
|
|
93
|
+
const { auth, propsValue, project, flows, store } = context;
|
|
99
94
|
const { temperature, maxTokens, topP, frequencyPenalty, presencePenalty } = propsValue;
|
|
100
|
-
const
|
|
95
|
+
const pxAuth = {
|
|
96
|
+
server: auth.props.server === 'production' ? 'production' : 'staging',
|
|
97
|
+
username: auth.props.username,
|
|
98
|
+
password: auth.props.password,
|
|
99
|
+
};
|
|
100
|
+
const accessToken = yield (0, pmtx_api_1.getAccessToken)(pxAuth);
|
|
101
|
+
const apiKey = yield (0, pmtx_api_1.getAiApiKey)(context.server.apiUrl, context.server.token);
|
|
102
|
+
const usage = yield (0, pmtx_api_1.getUsagePlan)(pxAuth.server, accessToken);
|
|
103
|
+
const { userId } = yield (0, pmtx_api_1.getStoreData)(store, pxAuth.server, accessToken);
|
|
101
104
|
// Check token is available
|
|
102
105
|
if (maxTokens && maxTokens > usage.token_available) {
|
|
103
106
|
throw new Error(common_1.billingIssueMessage);
|
|
@@ -106,27 +109,33 @@ exports.visionPrompt = (0, pieces_framework_1.createAction)({
|
|
|
106
109
|
temperature: zod_1.z.number().min(0).max(1),
|
|
107
110
|
});
|
|
108
111
|
const openai = new openai_1.default({ apiKey });
|
|
109
|
-
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
+
// Add system instructions if set by user
|
|
113
|
+
const propRoles = propsValue.roles;
|
|
114
|
+
const rolesEnum = ['system', 'user', 'assistant'];
|
|
115
|
+
const systemRoleMessages = [];
|
|
116
|
+
propRoles.forEach((item) => {
|
|
112
117
|
if (!rolesEnum.includes(item.role)) {
|
|
113
118
|
throw new Error('The only available roles are: [system, user, assistant]');
|
|
114
119
|
}
|
|
115
|
-
|
|
116
|
-
role: item.role
|
|
120
|
+
systemRoleMessages.push({
|
|
121
|
+
role: item.role === 'system'
|
|
122
|
+
? 'system'
|
|
123
|
+
: item.role === 'user'
|
|
124
|
+
? 'user'
|
|
125
|
+
: 'assistant',
|
|
117
126
|
content: item.content,
|
|
118
|
-
};
|
|
127
|
+
});
|
|
119
128
|
});
|
|
120
129
|
const completion = yield openai.chat.completions.create({
|
|
121
130
|
model: 'gpt-4o',
|
|
122
131
|
messages: [
|
|
123
|
-
...
|
|
132
|
+
...systemRoleMessages,
|
|
124
133
|
{
|
|
125
134
|
role: 'user',
|
|
126
135
|
content: [
|
|
127
136
|
{
|
|
128
137
|
type: 'text',
|
|
129
|
-
text: propsValue
|
|
138
|
+
text: propsValue.prompt,
|
|
130
139
|
},
|
|
131
140
|
{
|
|
132
141
|
type: 'image_url',
|
|
@@ -151,11 +160,11 @@ exports.visionPrompt = (0, pieces_framework_1.createAction)({
|
|
|
151
160
|
flowId: flows.current.id,
|
|
152
161
|
component: 'Automationx',
|
|
153
162
|
usage: {
|
|
154
|
-
inputTokens: (
|
|
155
|
-
outputTokens: (
|
|
156
|
-
totalTokens: (
|
|
163
|
+
inputTokens: (_b = (_a = completion.usage) === null || _a === void 0 ? void 0 : _a.prompt_tokens) !== null && _b !== void 0 ? _b : 0,
|
|
164
|
+
outputTokens: (_d = (_c = completion.usage) === null || _c === void 0 ? void 0 : _c.completion_tokens) !== null && _d !== void 0 ? _d : 0,
|
|
165
|
+
totalTokens: (_f = (_e = completion.usage) === null || _e === void 0 ? void 0 : _e.total_tokens) !== null && _f !== void 0 ? _f : 0,
|
|
157
166
|
},
|
|
158
|
-
},
|
|
167
|
+
}, pxAuth.server, accessToken);
|
|
159
168
|
return completion.choices[0].message.content;
|
|
160
169
|
});
|
|
161
170
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vision-prompt.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/vision-prompt.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,4DAA4B;AAC5B,6BAAoC;AACpC,6BAAwB;AACxB,+DAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"vision-prompt.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/vision-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ type UrlConfig = {
|
|
|
14
14
|
quotaCheckUrl: string;
|
|
15
15
|
addTokenUrl: string;
|
|
16
16
|
myProfileUrl: string;
|
|
17
|
-
getAIKeyUrl: string;
|
|
18
17
|
};
|
|
19
18
|
type UsagePackage = {
|
|
20
19
|
package_name: string;
|
|
@@ -52,7 +51,10 @@ export declare const getUsagePlan: (server: "production" | "staging", access_tok
|
|
|
52
51
|
export declare const getUserProfile: (server: "production" | "staging", access_token: string) => Promise<UserInfo>;
|
|
53
52
|
export declare const getStoreData: (store: Store, server: "production" | "staging", access_token: string) => Promise<{
|
|
54
53
|
userId: unknown;
|
|
55
|
-
apiKey: string;
|
|
56
54
|
}>;
|
|
57
|
-
export declare const getAiApiKey: (
|
|
55
|
+
export declare const getAiApiKey: (apiUrl: string, engineToken: string) => Promise<string>;
|
|
56
|
+
export declare const getOpenAiModelOptions: () => {
|
|
57
|
+
label: string;
|
|
58
|
+
value: string;
|
|
59
|
+
}[];
|
|
58
60
|
export {};
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAiApiKey = exports.getStoreData = exports.getUserProfile = exports.getUsagePlan = exports.addTokenUsage = exports.getAccessToken = exports.baseUrlMap = void 0;
|
|
3
|
+
exports.getOpenAiModelOptions = exports.getAiApiKey = exports.getStoreData = exports.getUserProfile = exports.getUsagePlan = exports.addTokenUsage = exports.getAccessToken = exports.baseUrlMap = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
5
6
|
exports.baseUrlMap = {
|
|
6
7
|
production: {
|
|
7
8
|
loginUrl: 'https://centerapp.io/center/auth/login',
|
|
8
9
|
quotaCheckUrl: 'https://promptxai.com/zero-service/pmtx-ai-token-api/v1/quota-check',
|
|
9
10
|
addTokenUrl: 'https://promptxai.com/zero-service/pmtx-ai-token-api/v1/token-used',
|
|
10
11
|
myProfileUrl: 'https://centerapp.io/center//api/v1/users/me',
|
|
11
|
-
getAIKeyUrl: 'https://promptxai.com/zero-service/pmtx-ai-token-api/v1/api-key?key=openAIKey',
|
|
12
12
|
},
|
|
13
13
|
staging: {
|
|
14
14
|
loginUrl: 'https://test.oneweb.tech/zero-service/pmtx/login',
|
|
15
15
|
quotaCheckUrl: 'https://test.oneweb.tech/zero-service/pmtx-ai-token-api/v1/quota-check',
|
|
16
16
|
addTokenUrl: 'https://test.oneweb.tech/zero-service/pmtx-ai-token-api/v1/token-used',
|
|
17
17
|
myProfileUrl: 'https://mocha.centerapp.io/center//api/v1/users/me',
|
|
18
|
-
getAIKeyUrl: 'https://test.oneweb.tech/zero-service/pmtx-ai-token-api/v1/api-key?key=openAIKey',
|
|
19
18
|
},
|
|
20
19
|
};
|
|
21
20
|
const getAccessToken = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ server, username, password, }) {
|
|
@@ -33,97 +32,93 @@ const getAccessToken = (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function*
|
|
|
33
32
|
body,
|
|
34
33
|
headers,
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
throw new Error((data === null || data === void 0 ? void 0 : data.error) || (data === null || data === void 0 ? void 0 : data.message));
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
39
37
|
}
|
|
38
|
+
const data = yield response.json();
|
|
40
39
|
if (!data.access_token) {
|
|
41
|
-
throw new Error(
|
|
40
|
+
throw new Error('No access token found in response');
|
|
42
41
|
}
|
|
43
42
|
return data.access_token;
|
|
44
43
|
});
|
|
45
44
|
exports.getAccessToken = getAccessToken;
|
|
46
45
|
const addTokenUsage = (data, server, access_token) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
throw new Error(`API error: ${response.statusText}`);
|
|
58
|
-
}
|
|
59
|
-
const result = yield response.json();
|
|
60
|
-
return result;
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
console.error('Failed to send token usage:', error);
|
|
64
|
-
throw error;
|
|
46
|
+
const response = yield fetch(exports.baseUrlMap[server].addTokenUrl, {
|
|
47
|
+
method: 'POST',
|
|
48
|
+
headers: {
|
|
49
|
+
'Content-Type': 'application/json',
|
|
50
|
+
Authorization: `Bearer ${access_token}`,
|
|
51
|
+
},
|
|
52
|
+
body: JSON.stringify(data),
|
|
53
|
+
});
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
65
56
|
}
|
|
57
|
+
const result = yield response.json();
|
|
58
|
+
return result;
|
|
66
59
|
});
|
|
67
60
|
exports.addTokenUsage = addTokenUsage;
|
|
68
61
|
const getUsagePlan = (server, access_token) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
69
|
-
const response = yield fetch(exports.baseUrlMap[server]
|
|
62
|
+
const response = yield fetch(exports.baseUrlMap[server].quotaCheckUrl, {
|
|
70
63
|
headers: {
|
|
71
64
|
'Content-Type': 'application/json',
|
|
72
65
|
Authorization: `Bearer ${access_token}`,
|
|
73
66
|
},
|
|
74
67
|
});
|
|
75
|
-
if (response.
|
|
76
|
-
throw new Error(`API error: ${response.statusText}`);
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
77
70
|
}
|
|
78
71
|
const result = yield response.json();
|
|
79
72
|
return result;
|
|
80
73
|
});
|
|
81
74
|
exports.getUsagePlan = getUsagePlan;
|
|
82
75
|
const getUserProfile = (server, access_token) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
83
|
-
const response = yield fetch(exports.baseUrlMap[server]
|
|
76
|
+
const response = yield fetch(exports.baseUrlMap[server].myProfileUrl, {
|
|
84
77
|
headers: {
|
|
85
78
|
'Content-Type': 'application/json',
|
|
86
79
|
Authorization: `Bearer ${access_token}`,
|
|
87
80
|
},
|
|
88
81
|
});
|
|
89
|
-
if (response.
|
|
90
|
-
throw new Error(`API error: ${response.statusText}`);
|
|
82
|
+
if (!response.ok) {
|
|
83
|
+
throw new Error(`API error: ${response.status} ${response.statusText}`);
|
|
91
84
|
}
|
|
92
85
|
const result = yield response.json();
|
|
93
86
|
return result;
|
|
94
87
|
});
|
|
95
88
|
exports.getUserProfile = getUserProfile;
|
|
96
89
|
const getStoreData = (store, server, access_token) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
97
|
-
// Get store data
|
|
98
90
|
let userId = yield store.get('userId');
|
|
99
|
-
const apiKey = yield (0, exports.getAiApiKey)(server, access_token);
|
|
100
91
|
if (!userId) {
|
|
101
92
|
const userInfo = yield (0, exports.getUserProfile)(server, access_token);
|
|
102
93
|
store.put('userId', userInfo.userIAM2ID);
|
|
103
94
|
userId = userInfo.userIAM2ID;
|
|
104
95
|
}
|
|
105
|
-
return {
|
|
106
|
-
userId,
|
|
107
|
-
apiKey,
|
|
108
|
-
};
|
|
96
|
+
return { userId };
|
|
109
97
|
});
|
|
110
98
|
exports.getStoreData = getStoreData;
|
|
111
|
-
const getAiApiKey = (
|
|
112
|
-
const response = yield
|
|
113
|
-
method:
|
|
99
|
+
const getAiApiKey = (apiUrl, engineToken) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
100
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
101
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
102
|
+
url: `${apiUrl}v1/platform-ai-providers/openai`,
|
|
114
103
|
headers: {
|
|
115
|
-
|
|
116
|
-
Authorization: `Bearer ${access_token}`,
|
|
104
|
+
Authorization: `Bearer ${engineToken}`,
|
|
117
105
|
},
|
|
118
106
|
});
|
|
119
|
-
if (response.status !==
|
|
120
|
-
throw new Error(`API error: ${response.
|
|
121
|
-
}
|
|
122
|
-
const result = yield response.json();
|
|
123
|
-
if (!result.openAIKey) {
|
|
124
|
-
throw new Error('No AI Api Key found for Avalant OpenAI');
|
|
107
|
+
if (response.status !== 200) {
|
|
108
|
+
throw new Error(`API error: ${response.status}`);
|
|
125
109
|
}
|
|
126
|
-
return
|
|
110
|
+
return response.body.apiKey;
|
|
127
111
|
});
|
|
128
112
|
exports.getAiApiKey = getAiApiKey;
|
|
113
|
+
const getOpenAiModelOptions = () => {
|
|
114
|
+
return [
|
|
115
|
+
{ label: 'GPT-5.1', value: 'gpt-5.1' },
|
|
116
|
+
{ label: 'GPT-5-mini', value: 'gpt-5-mini' },
|
|
117
|
+
{ label: 'GPT-5-nano', value: 'gpt-5-nano' },
|
|
118
|
+
{ label: 'GPT-4.1', value: 'gpt-4.1' },
|
|
119
|
+
{ label: 'GPT-4.1-mini', value: 'gpt-4.1-mini' },
|
|
120
|
+
{ label: 'GPT-4.1-nano', value: 'gpt-4.1-nano' },
|
|
121
|
+
];
|
|
122
|
+
};
|
|
123
|
+
exports.getOpenAiModelOptions = getOpenAiModelOptions;
|
|
129
124
|
//# sourceMappingURL=pmtx-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pmtx-api.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/common/pmtx-api.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"pmtx-api.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/common/pmtx-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const askAssistant: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
|
|
2
|
-
server: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
3
|
-
username: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
password: import("@activepieces/pieces-framework").SecretTextProperty<true>;
|
|
5
|
-
}>, {
|
|
6
|
-
assistant: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
7
|
-
prompt: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
8
|
-
memoryKey: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
-
}>;
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.askAssistant = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const openai_1 = tslib_1.__importDefault(require("openai"));
|
|
7
|
-
const __1 = require("../..");
|
|
8
|
-
const common_1 = require("../common/common");
|
|
9
|
-
const zod_1 = require("zod");
|
|
10
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
11
|
-
const pmtx_api_1 = require("../common/pmtx-api");
|
|
12
|
-
exports.askAssistant = (0, pieces_framework_1.createAction)({
|
|
13
|
-
auth: __1.promptxAuth,
|
|
14
|
-
name: 'ask_assistant',
|
|
15
|
-
displayName: 'Ask Assistant',
|
|
16
|
-
description: 'Ask a GPT assistant anything you want!',
|
|
17
|
-
props: {
|
|
18
|
-
assistant: pieces_framework_1.Property.Dropdown({
|
|
19
|
-
displayName: 'Assistant',
|
|
20
|
-
required: true,
|
|
21
|
-
description: 'The assistant which will generate the completion.',
|
|
22
|
-
refreshers: [],
|
|
23
|
-
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
24
|
-
const promptxAuth = auth;
|
|
25
|
-
let accessToken;
|
|
26
|
-
let openApiKey;
|
|
27
|
-
try {
|
|
28
|
-
accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
29
|
-
openApiKey = yield (0, pmtx_api_1.getAiApiKey)(promptxAuth.server, accessToken);
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
return {
|
|
33
|
-
disabled: true,
|
|
34
|
-
placeholder: 'Unable to fetch OpenAI key. Check connection',
|
|
35
|
-
options: [],
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
const openai = new openai_1.default({ apiKey: openApiKey });
|
|
40
|
-
const assistants = yield openai.beta.assistants.list();
|
|
41
|
-
return {
|
|
42
|
-
disabled: false,
|
|
43
|
-
options: assistants.data.map((assistant) => {
|
|
44
|
-
var _a;
|
|
45
|
-
return {
|
|
46
|
-
label: (_a = assistant.name) !== null && _a !== void 0 ? _a : `Assistant ${assistant.id}`,
|
|
47
|
-
value: assistant.id,
|
|
48
|
-
};
|
|
49
|
-
}),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
return {
|
|
54
|
-
disabled: true,
|
|
55
|
-
options: [],
|
|
56
|
-
placeholder: "Couldn't load assistants, API key is invalid",
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
}),
|
|
60
|
-
}),
|
|
61
|
-
prompt: pieces_framework_1.Property.LongText({
|
|
62
|
-
displayName: 'Question',
|
|
63
|
-
required: true,
|
|
64
|
-
}),
|
|
65
|
-
memoryKey: pieces_framework_1.Property.ShortText({
|
|
66
|
-
displayName: 'Memory Key',
|
|
67
|
-
description: 'A memory key that will keep the chat history shared across runs and flows. Keep it empty to leave your assistant without memory of previous messages.',
|
|
68
|
-
required: false,
|
|
69
|
-
}),
|
|
70
|
-
},
|
|
71
|
-
run(_a) {
|
|
72
|
-
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue, store, project, flows }) {
|
|
73
|
-
var _b, _c, _d;
|
|
74
|
-
const promptxAuth = auth;
|
|
75
|
-
const accessToken = yield (0, pmtx_api_1.getAccessToken)(promptxAuth);
|
|
76
|
-
const usage = yield (0, pmtx_api_1.getUsagePlan)(promptxAuth.server, accessToken);
|
|
77
|
-
// Get store data
|
|
78
|
-
const { userId, apiKey } = yield (0, pmtx_api_1.getStoreData)(store, promptxAuth.server, accessToken);
|
|
79
|
-
yield pieces_common_1.propsValidation.validateZod(propsValue, {
|
|
80
|
-
memoryKey: zod_1.z.string().max(128).optional(),
|
|
81
|
-
});
|
|
82
|
-
const openai = new openai_1.default({ apiKey: apiKey });
|
|
83
|
-
const { assistant, prompt, memoryKey } = propsValue;
|
|
84
|
-
const runCheckDelay = 1000;
|
|
85
|
-
let response;
|
|
86
|
-
let thread;
|
|
87
|
-
if (memoryKey) {
|
|
88
|
-
// Get existing thread ID or create a new thread for this memory key
|
|
89
|
-
thread = yield store.get(memoryKey, pieces_framework_1.StoreScope.PROJECT);
|
|
90
|
-
if (!thread) {
|
|
91
|
-
thread = yield openai.beta.threads.create();
|
|
92
|
-
store.put(memoryKey, thread, pieces_framework_1.StoreScope.PROJECT);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
96
|
-
thread = yield openai.beta.threads.create();
|
|
97
|
-
}
|
|
98
|
-
const message = yield openai.beta.threads.messages.create(thread.id, {
|
|
99
|
-
role: 'user',
|
|
100
|
-
content: prompt,
|
|
101
|
-
});
|
|
102
|
-
/*
|
|
103
|
-
* Since there is no prop for specifying a max value directly,
|
|
104
|
-
* we'll use the available tokens as the maximum.
|
|
105
|
-
* Also, this accounts for the limitation on maximum completion tokens.
|
|
106
|
-
*/
|
|
107
|
-
const maxTokens = usage.token_available;
|
|
108
|
-
const run = yield openai.beta.threads.runs.create(thread.id, {
|
|
109
|
-
assistant_id: assistant,
|
|
110
|
-
max_completion_tokens: Math.floor(maxTokens),
|
|
111
|
-
});
|
|
112
|
-
// Wait at least 400ms for inference to finish before checking to save requests
|
|
113
|
-
yield (0, common_1.sleep)(400);
|
|
114
|
-
let inputTokens = 0;
|
|
115
|
-
let outputTokens = 0;
|
|
116
|
-
let totalTokens = 0;
|
|
117
|
-
let model = '';
|
|
118
|
-
let maxPollAttempts = 5;
|
|
119
|
-
while (!response) {
|
|
120
|
-
const runCheck = yield openai.beta.threads.runs.retrieve(thread.id, run.id);
|
|
121
|
-
if (runCheck.status === 'completed') {
|
|
122
|
-
// Get the token usage
|
|
123
|
-
const usage = runCheck.usage;
|
|
124
|
-
inputTokens = (_b = usage === null || usage === void 0 ? void 0 : usage.prompt_tokens) !== null && _b !== void 0 ? _b : 0;
|
|
125
|
-
outputTokens = (_c = usage === null || usage === void 0 ? void 0 : usage.completion_tokens) !== null && _c !== void 0 ? _c : 0;
|
|
126
|
-
totalTokens = (_d = usage === null || usage === void 0 ? void 0 : usage.total_tokens) !== null && _d !== void 0 ? _d : 0;
|
|
127
|
-
model = runCheck.model;
|
|
128
|
-
const messages = yield openai.beta.threads.messages.list(thread.id);
|
|
129
|
-
// Return only messages that are newer than the user's latest message
|
|
130
|
-
response = messages.data.splice(0, messages.data.findIndex((m) => m.id == message.id));
|
|
131
|
-
break;
|
|
132
|
-
}
|
|
133
|
-
maxPollAttempts -= 1;
|
|
134
|
-
if (maxPollAttempts <= 0)
|
|
135
|
-
break;
|
|
136
|
-
yield (0, common_1.sleep)(runCheckDelay);
|
|
137
|
-
}
|
|
138
|
-
(0, pmtx_api_1.addTokenUsage)({
|
|
139
|
-
userId: `${userId}`,
|
|
140
|
-
model: model,
|
|
141
|
-
projectId: project.id,
|
|
142
|
-
flowId: flows.current.id,
|
|
143
|
-
component: 'Automationx',
|
|
144
|
-
usage: {
|
|
145
|
-
inputTokens,
|
|
146
|
-
outputTokens,
|
|
147
|
-
totalTokens,
|
|
148
|
-
},
|
|
149
|
-
}, promptxAuth.server, accessToken);
|
|
150
|
-
if (!response && maxPollAttempts <= 0) {
|
|
151
|
-
const err = 'Max poll attempts to assistants API breached';
|
|
152
|
-
console.log(err);
|
|
153
|
-
return { error: err };
|
|
154
|
-
}
|
|
155
|
-
return response;
|
|
156
|
-
});
|
|
157
|
-
},
|
|
158
|
-
});
|
|
159
|
-
//# sourceMappingURL=ask-assistant.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ask-assistant.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/promptx-openai/src/lib/actions/ask-assistant.ts"],"names":[],"mappings":"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"}
|