@inductiv/node-red-openai-api 0.5.0 → 0.7.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 +10 -16
- package/lib.js +176 -121
- package/locales/en-US/node.json +2 -1
- package/node.html +25 -2
- package/node.js +15 -4
- package/package.json +1 -1
- package/.eslintrc.json +0 -12
- package/.prettierrc +0 -4
package/README.md
CHANGED
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
_@inductiv/node-red-openai-api_ offers a versatile and configurable Node-RED node, designed specifically for seamless integration with OpenAI's advanced platform services. It empowers you to effortlessly connect and orchestrate various OpenAI functionalities, leveraging the full power of Node-RED's sophisticated application nodes. Whether you're aiming to enhance your workflows with cutting-edge AI capabilities or create innovative applications, this node serves as your gateway to harnessing the latest in AI technology from OpenAI, all within the intuitive and flexible environment of Node-RED.
|
|
11
11
|
|
|
12
|
-
## New in Version 0.
|
|
12
|
+
## New in Version 0.7.0
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
- The ```createChatCompletion``` endpoint now retains top-level message (```msg```) properties in responses. This means that all custom message properties--aside from the `msg.payload` object--are returned from ```createChatCompletion``` requests.
|
|
15
|
+
|
|
16
|
+
Please report any issues [here on Github](https://github.com/allanbunch/node-red-openai-api/issues).
|
|
17
17
|
|
|
18
18
|
## Key Features
|
|
19
19
|
|
|
@@ -92,21 +92,15 @@ I very much appreciate community input and invite everyone to shape the future o
|
|
|
92
92
|
|
|
93
93
|
### Engage in Various Discussions
|
|
94
94
|
|
|
95
|
-
- **Announcements**: Stay updated with the latest project news.
|
|
96
|
-
- **General**: Share thoughts or seek advice on broader topics.
|
|
97
|
-
- **Ideas**: Propose new features or improvements.
|
|
98
|
-
- **Polls**: Participate in polls to influence project decisions.
|
|
99
|
-
- **Q&A**: Get answers to your questions and share your expertise.
|
|
100
|
-
- **Show and Tell**: Showcase your creative implementations and inspire others.
|
|
95
|
+
- **[Announcements](https://github.com/allanbunch/node-red-openai-api/discussions/categories/announcements)**: Stay updated with the latest project news.
|
|
96
|
+
- **[General](https://github.com/allanbunch/node-red-openai-api/discussions/categories/general)**: Share thoughts or seek advice on broader topics.
|
|
97
|
+
- **[Ideas](https://github.com/allanbunch/node-red-openai-api/discussions/categories/ideas)**: Propose new features or improvements.
|
|
98
|
+
- **[Polls](https://github.com/allanbunch/node-red-openai-api/discussions/categories/polls)**: Participate in polls to influence project decisions.
|
|
99
|
+
- **[Q&A](https://github.com/allanbunch/node-red-openai-api/discussions/categories/q-a)**: Get answers to your questions and share your expertise.
|
|
100
|
+
- **[Show and Tell](https://github.com/allanbunch/node-red-openai-api/discussions/categories/show-and-tell)**: Showcase your creative implementations and inspire others.
|
|
101
101
|
|
|
102
102
|
Join the conversation [here](https://github.com/allanbunch/node-red-openai-api/discussions) and let's build a vibrant and collaborative community together!
|
|
103
103
|
|
|
104
104
|
## License
|
|
105
105
|
|
|
106
106
|
[MIT](./LICENSE)
|
|
107
|
-
|
|
108
|
-
## Acknowledgements
|
|
109
|
-
|
|
110
|
-
- [node-red-nodegen](https://github.com/node-red/node-red-nodegen)
|
|
111
|
-
- For boilerplate code generation, though the auto-generated code has been largely refactored.
|
|
112
|
-
- **Note:** This package uses `axios` in place of node-red-nodegen's `request` default.
|
package/lib.js
CHANGED
|
@@ -17,10 +17,10 @@ let OpenaiApi = (function () {
|
|
|
17
17
|
|
|
18
18
|
const openai = new OpenAI(clientParams);
|
|
19
19
|
const response = await openai.chat.completions.create({
|
|
20
|
-
...parameters.payload,
|
|
20
|
+
...parameters.msg.payload,
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
if (parameters.payload.stream) {
|
|
23
|
+
if (parameters.msg.payload.stream) {
|
|
24
24
|
node.status({
|
|
25
25
|
fill: "green",
|
|
26
26
|
shape: "dot",
|
|
@@ -28,8 +28,9 @@ let OpenaiApi = (function () {
|
|
|
28
28
|
});
|
|
29
29
|
for await (const chunk of response) {
|
|
30
30
|
if (typeof chunk === "object") {
|
|
31
|
-
let
|
|
32
|
-
|
|
31
|
+
let msg = parameters.msg;
|
|
32
|
+
msg.payload = chunk;
|
|
33
|
+
node.send(msg);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
36
|
node.status({});
|
|
@@ -47,7 +48,7 @@ let OpenaiApi = (function () {
|
|
|
47
48
|
|
|
48
49
|
const openai = new OpenAI(clientParams);
|
|
49
50
|
const response = await openai.images.generate({
|
|
50
|
-
...parameters.payload,
|
|
51
|
+
...parameters.msg.payload,
|
|
51
52
|
});
|
|
52
53
|
|
|
53
54
|
return response;
|
|
@@ -61,13 +62,17 @@ let OpenaiApi = (function () {
|
|
|
61
62
|
};
|
|
62
63
|
const openai = new OpenAI(clientParams);
|
|
63
64
|
|
|
64
|
-
parameters.payload.image = fs.createReadStream(
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
parameters.msg.payload.image = fs.createReadStream(
|
|
66
|
+
parameters.msg.payload.image,
|
|
67
|
+
);
|
|
68
|
+
if (parameters.msg.payload.mask) {
|
|
69
|
+
parameters.msg.payload.mask = fs.createReadStream(
|
|
70
|
+
parameters.msg.payload.mask,
|
|
71
|
+
);
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
const response = await openai.images.edit({
|
|
70
|
-
...parameters.payload,
|
|
75
|
+
...parameters.msg.payload,
|
|
71
76
|
});
|
|
72
77
|
|
|
73
78
|
return response;
|
|
@@ -81,9 +86,11 @@ let OpenaiApi = (function () {
|
|
|
81
86
|
};
|
|
82
87
|
const openai = new OpenAI(clientParams);
|
|
83
88
|
|
|
84
|
-
parameters.payload.image = fs.createReadStream(
|
|
89
|
+
parameters.msg.payload.image = fs.createReadStream(
|
|
90
|
+
parameters.msg.payload.image,
|
|
91
|
+
);
|
|
85
92
|
const response = await openai.images.createVariation({
|
|
86
|
-
...parameters.payload,
|
|
93
|
+
...parameters.msg.payload,
|
|
87
94
|
});
|
|
88
95
|
|
|
89
96
|
return response;
|
|
@@ -98,7 +105,7 @@ let OpenaiApi = (function () {
|
|
|
98
105
|
const openai = new OpenAI(clientParams);
|
|
99
106
|
|
|
100
107
|
const response = await openai.embeddings.create({
|
|
101
|
-
...parameters.payload,
|
|
108
|
+
...parameters.msg.payload,
|
|
102
109
|
});
|
|
103
110
|
|
|
104
111
|
return response;
|
|
@@ -112,7 +119,9 @@ let OpenaiApi = (function () {
|
|
|
112
119
|
};
|
|
113
120
|
const openai = new OpenAI(clientParams);
|
|
114
121
|
|
|
115
|
-
const audio = await openai.audio.speech.create({
|
|
122
|
+
const audio = await openai.audio.speech.create({
|
|
123
|
+
...parameters.msg.payload,
|
|
124
|
+
});
|
|
116
125
|
const response = Buffer.from(await audio.arrayBuffer());
|
|
117
126
|
|
|
118
127
|
return response;
|
|
@@ -126,10 +135,12 @@ let OpenaiApi = (function () {
|
|
|
126
135
|
};
|
|
127
136
|
const openai = new OpenAI(clientParams);
|
|
128
137
|
|
|
129
|
-
parameters.payload.file = fs.createReadStream(
|
|
138
|
+
parameters.msg.payload.file = fs.createReadStream(
|
|
139
|
+
parameters.msg.payload.file,
|
|
140
|
+
);
|
|
130
141
|
|
|
131
142
|
const response = await openai.audio.transcriptions.create({
|
|
132
|
-
...parameters.payload,
|
|
143
|
+
...parameters.msg.payload,
|
|
133
144
|
});
|
|
134
145
|
|
|
135
146
|
return response;
|
|
@@ -143,9 +154,11 @@ let OpenaiApi = (function () {
|
|
|
143
154
|
};
|
|
144
155
|
const openai = new OpenAI(clientParams);
|
|
145
156
|
|
|
146
|
-
parameters.payload.file = fs.createReadStream(
|
|
157
|
+
parameters.msg.payload.file = fs.createReadStream(
|
|
158
|
+
parameters.msg.payload.file,
|
|
159
|
+
);
|
|
147
160
|
const response = await openai.audio.translations.create({
|
|
148
|
-
...parameters.payload,
|
|
161
|
+
...parameters.msg.payload,
|
|
149
162
|
});
|
|
150
163
|
|
|
151
164
|
return response;
|
|
@@ -160,7 +173,7 @@ let OpenaiApi = (function () {
|
|
|
160
173
|
const openai = new OpenAI(clientParams);
|
|
161
174
|
|
|
162
175
|
const list = await openai.files.list({
|
|
163
|
-
...parameters.payload,
|
|
176
|
+
...parameters.msg.payload,
|
|
164
177
|
});
|
|
165
178
|
|
|
166
179
|
let files = [];
|
|
@@ -179,13 +192,16 @@ let OpenaiApi = (function () {
|
|
|
179
192
|
};
|
|
180
193
|
const openai = new OpenAI(clientParams);
|
|
181
194
|
|
|
182
|
-
parameters.payload.file = fs.createReadStream(
|
|
195
|
+
parameters.msg.payload.file = fs.createReadStream(
|
|
196
|
+
parameters.msg.payload.file,
|
|
197
|
+
);
|
|
183
198
|
const response = await openai.files.create({
|
|
184
|
-
...parameters.payload,
|
|
199
|
+
...parameters.msg.payload,
|
|
185
200
|
});
|
|
186
201
|
|
|
187
202
|
return response;
|
|
188
203
|
}
|
|
204
|
+
|
|
189
205
|
async deleteFile(parameters) {
|
|
190
206
|
const clientParams = {
|
|
191
207
|
apiKey: parameters.apiKey,
|
|
@@ -195,11 +211,12 @@ let OpenaiApi = (function () {
|
|
|
195
211
|
const openai = new OpenAI(clientParams);
|
|
196
212
|
|
|
197
213
|
const response = await openai.files.del({
|
|
198
|
-
...parameters.payload,
|
|
214
|
+
...parameters.msg.payload,
|
|
199
215
|
});
|
|
200
216
|
|
|
201
217
|
return response;
|
|
202
218
|
}
|
|
219
|
+
|
|
203
220
|
async retrieveFile(parameters) {
|
|
204
221
|
const clientParams = {
|
|
205
222
|
apiKey: parameters.apiKey,
|
|
@@ -208,15 +225,16 @@ let OpenaiApi = (function () {
|
|
|
208
225
|
};
|
|
209
226
|
const openai = new OpenAI(clientParams);
|
|
210
227
|
|
|
211
|
-
const file_id = parameters.payload.file_id;
|
|
212
|
-
delete parameters.payload.file_id;
|
|
228
|
+
const file_id = parameters.msg.payload.file_id;
|
|
229
|
+
delete parameters.msg.payload.file_id;
|
|
213
230
|
|
|
214
231
|
const response = await openai.files.retrieve(file_id, {
|
|
215
|
-
...parameters.payload,
|
|
232
|
+
...parameters.msg.payload,
|
|
216
233
|
});
|
|
217
234
|
|
|
218
235
|
return response;
|
|
219
236
|
}
|
|
237
|
+
|
|
220
238
|
async downloadFile(parameters) {
|
|
221
239
|
const clientParams = {
|
|
222
240
|
apiKey: parameters.apiKey,
|
|
@@ -225,15 +243,16 @@ let OpenaiApi = (function () {
|
|
|
225
243
|
};
|
|
226
244
|
const openai = new OpenAI(clientParams);
|
|
227
245
|
|
|
228
|
-
const file_id = parameters.payload.file_id;
|
|
229
|
-
delete parameters.payload.file_id;
|
|
246
|
+
const file_id = parameters.msg.payload.file_id;
|
|
247
|
+
delete parameters.msg.payload.file_id;
|
|
230
248
|
|
|
231
249
|
const response = await openai.files.retrieveContent(file_id, {
|
|
232
|
-
...parameters.payload,
|
|
250
|
+
...parameters.msg.payload,
|
|
233
251
|
});
|
|
234
252
|
|
|
235
253
|
return response;
|
|
236
254
|
}
|
|
255
|
+
|
|
237
256
|
async createFineTuningJob(parameters) {
|
|
238
257
|
const clientParams = {
|
|
239
258
|
apiKey: parameters.apiKey,
|
|
@@ -243,11 +262,12 @@ let OpenaiApi = (function () {
|
|
|
243
262
|
const openai = new OpenAI(clientParams);
|
|
244
263
|
|
|
245
264
|
const response = await openai.fineTuning.jobs.create({
|
|
246
|
-
...parameters.payload,
|
|
265
|
+
...parameters.msg.payload,
|
|
247
266
|
});
|
|
248
267
|
|
|
249
268
|
return response;
|
|
250
269
|
}
|
|
270
|
+
|
|
251
271
|
async listPaginatedFineTuningJobs(parameters) {
|
|
252
272
|
const clientParams = {
|
|
253
273
|
apiKey: parameters.apiKey,
|
|
@@ -257,7 +277,7 @@ let OpenaiApi = (function () {
|
|
|
257
277
|
const openai = new OpenAI(clientParams);
|
|
258
278
|
|
|
259
279
|
const list = await openai.fineTuning.jobs.list({
|
|
260
|
-
...parameters.payload,
|
|
280
|
+
...parameters.msg.payload,
|
|
261
281
|
});
|
|
262
282
|
|
|
263
283
|
let response = [];
|
|
@@ -267,6 +287,7 @@ let OpenaiApi = (function () {
|
|
|
267
287
|
|
|
268
288
|
return response;
|
|
269
289
|
}
|
|
290
|
+
|
|
270
291
|
async retrieveFineTuningJob(parameters) {
|
|
271
292
|
const clientParams = {
|
|
272
293
|
apiKey: parameters.apiKey,
|
|
@@ -276,11 +297,12 @@ let OpenaiApi = (function () {
|
|
|
276
297
|
const openai = new OpenAI(clientParams);
|
|
277
298
|
|
|
278
299
|
const response = await openai.fineTuning.jobs.retrieve(
|
|
279
|
-
parameters.payload.fine_tuning_job_id,
|
|
300
|
+
parameters.msg.payload.fine_tuning_job_id,
|
|
280
301
|
);
|
|
281
302
|
|
|
282
303
|
return response;
|
|
283
304
|
}
|
|
305
|
+
|
|
284
306
|
async listFineTuningEvents(parameters) {
|
|
285
307
|
const clientParams = {
|
|
286
308
|
apiKey: parameters.apiKey,
|
|
@@ -291,13 +313,14 @@ let OpenaiApi = (function () {
|
|
|
291
313
|
|
|
292
314
|
let response = [];
|
|
293
315
|
const list = await openai.fineTuning.jobs.listEvents(
|
|
294
|
-
parameters.payload.fine_tuning_job_id,
|
|
316
|
+
parameters.msg.payload.fine_tuning_job_id,
|
|
295
317
|
);
|
|
296
318
|
for await (const fineTuneEvent of list) {
|
|
297
319
|
response.push(fineTuneEvent);
|
|
298
320
|
}
|
|
299
321
|
return response;
|
|
300
322
|
}
|
|
323
|
+
|
|
301
324
|
async cancelFineTuningJob(parameters) {
|
|
302
325
|
const clientParams = {
|
|
303
326
|
apiKey: parameters.apiKey,
|
|
@@ -307,11 +330,12 @@ let OpenaiApi = (function () {
|
|
|
307
330
|
const openai = new OpenAI(clientParams);
|
|
308
331
|
|
|
309
332
|
const response = await openai.fineTuning.jobs.cancel(
|
|
310
|
-
parameters.payload.fine_tuning_job_id,
|
|
333
|
+
parameters.msg.payload.fine_tuning_job_id,
|
|
311
334
|
);
|
|
312
335
|
|
|
313
336
|
return response;
|
|
314
337
|
}
|
|
338
|
+
|
|
315
339
|
async listModels(parameters) {
|
|
316
340
|
const clientParams = {
|
|
317
341
|
apiKey: parameters.apiKey,
|
|
@@ -324,6 +348,7 @@ let OpenaiApi = (function () {
|
|
|
324
348
|
|
|
325
349
|
return response.body;
|
|
326
350
|
}
|
|
351
|
+
|
|
327
352
|
async retrieveModel(parameters) {
|
|
328
353
|
const clientParams = {
|
|
329
354
|
apiKey: parameters.apiKey,
|
|
@@ -332,11 +357,12 @@ let OpenaiApi = (function () {
|
|
|
332
357
|
};
|
|
333
358
|
const openai = new OpenAI(clientParams);
|
|
334
359
|
|
|
335
|
-
const model = parameters.payload.model;
|
|
360
|
+
const model = parameters.msg.payload.model;
|
|
336
361
|
const response = await openai.models.retrieve(model);
|
|
337
362
|
|
|
338
363
|
return response;
|
|
339
364
|
}
|
|
365
|
+
|
|
340
366
|
async deleteModel(parameters) {
|
|
341
367
|
const clientParams = {
|
|
342
368
|
apiKey: parameters.apiKey,
|
|
@@ -345,11 +371,12 @@ let OpenaiApi = (function () {
|
|
|
345
371
|
};
|
|
346
372
|
const openai = new OpenAI(clientParams);
|
|
347
373
|
|
|
348
|
-
const model = parameters.payload.model;
|
|
374
|
+
const model = parameters.msg.payload.model;
|
|
349
375
|
const response = await openai.models.del(model);
|
|
350
376
|
|
|
351
377
|
return response;
|
|
352
378
|
}
|
|
379
|
+
|
|
353
380
|
async createModeration(parameters) {
|
|
354
381
|
const clientParams = {
|
|
355
382
|
apiKey: parameters.apiKey,
|
|
@@ -358,9 +385,10 @@ let OpenaiApi = (function () {
|
|
|
358
385
|
};
|
|
359
386
|
const openai = new OpenAI(clientParams);
|
|
360
387
|
|
|
361
|
-
const response = await openai.moderations.create(parameters.payload);
|
|
388
|
+
const response = await openai.moderations.create(parameters.msg.payload);
|
|
362
389
|
return response;
|
|
363
390
|
}
|
|
391
|
+
|
|
364
392
|
async listAssistants(parameters) {
|
|
365
393
|
const clientParams = {
|
|
366
394
|
apiKey: parameters.apiKey,
|
|
@@ -370,11 +398,12 @@ let OpenaiApi = (function () {
|
|
|
370
398
|
const openai = new OpenAI(clientParams);
|
|
371
399
|
|
|
372
400
|
const response = await openai.beta.assistants.list({
|
|
373
|
-
...parameters.payload,
|
|
401
|
+
...parameters.msg.payload,
|
|
374
402
|
});
|
|
375
403
|
|
|
376
404
|
return response.body;
|
|
377
405
|
}
|
|
406
|
+
|
|
378
407
|
async createAssistant(parameters) {
|
|
379
408
|
const clientParams = {
|
|
380
409
|
apiKey: parameters.apiKey,
|
|
@@ -384,11 +413,12 @@ let OpenaiApi = (function () {
|
|
|
384
413
|
const openai = new OpenAI(clientParams);
|
|
385
414
|
|
|
386
415
|
const response = await openai.beta.assistants.create({
|
|
387
|
-
...parameters.payload,
|
|
416
|
+
...parameters.msg.payload,
|
|
388
417
|
});
|
|
389
418
|
|
|
390
419
|
return response;
|
|
391
420
|
}
|
|
421
|
+
|
|
392
422
|
async getAssistant(parameters) {
|
|
393
423
|
const clientParams = {
|
|
394
424
|
apiKey: parameters.apiKey,
|
|
@@ -397,11 +427,12 @@ let OpenaiApi = (function () {
|
|
|
397
427
|
};
|
|
398
428
|
const openai = new OpenAI(clientParams);
|
|
399
429
|
|
|
400
|
-
const id = parameters.payload.assistant_id;
|
|
430
|
+
const id = parameters.msg.payload.assistant_id;
|
|
401
431
|
const response = await openai.beta.assistants.retrieve(id);
|
|
402
432
|
|
|
403
433
|
return response;
|
|
404
434
|
}
|
|
435
|
+
|
|
405
436
|
async modifyAssistant(parameters) {
|
|
406
437
|
const clientParams = {
|
|
407
438
|
apiKey: parameters.apiKey,
|
|
@@ -410,15 +441,16 @@ let OpenaiApi = (function () {
|
|
|
410
441
|
};
|
|
411
442
|
const openai = new OpenAI(clientParams);
|
|
412
443
|
|
|
413
|
-
const id = parameters.payload.assistant_id;
|
|
414
|
-
delete parameters.payload.assistant_id;
|
|
444
|
+
const id = parameters.msg.payload.assistant_id;
|
|
445
|
+
delete parameters.msg.payload.assistant_id;
|
|
415
446
|
|
|
416
447
|
const response = await openai.beta.assistants.update(id, {
|
|
417
|
-
...parameters.payload,
|
|
448
|
+
...parameters.msg.payload,
|
|
418
449
|
});
|
|
419
450
|
|
|
420
451
|
return response;
|
|
421
452
|
}
|
|
453
|
+
|
|
422
454
|
async deleteAssistant(parameters) {
|
|
423
455
|
const clientParams = {
|
|
424
456
|
apiKey: parameters.apiKey,
|
|
@@ -427,11 +459,12 @@ let OpenaiApi = (function () {
|
|
|
427
459
|
};
|
|
428
460
|
const openai = new OpenAI(clientParams);
|
|
429
461
|
|
|
430
|
-
const id = parameters.payload.assistant_id;
|
|
462
|
+
const id = parameters.msg.payload.assistant_id;
|
|
431
463
|
const response = await openai.beta.assistants.del(id);
|
|
432
464
|
|
|
433
465
|
return response;
|
|
434
466
|
}
|
|
467
|
+
|
|
435
468
|
async createThread(parameters) {
|
|
436
469
|
const clientParams = {
|
|
437
470
|
apiKey: parameters.apiKey,
|
|
@@ -441,11 +474,12 @@ let OpenaiApi = (function () {
|
|
|
441
474
|
const openai = new OpenAI(clientParams);
|
|
442
475
|
|
|
443
476
|
const response = await openai.beta.threads.create({
|
|
444
|
-
...parameters.payload,
|
|
477
|
+
...parameters.msg.payload,
|
|
445
478
|
});
|
|
446
479
|
|
|
447
480
|
return response;
|
|
448
481
|
}
|
|
482
|
+
|
|
449
483
|
async getThread(parameters) {
|
|
450
484
|
const clientParams = {
|
|
451
485
|
apiKey: parameters.apiKey,
|
|
@@ -454,11 +488,12 @@ let OpenaiApi = (function () {
|
|
|
454
488
|
};
|
|
455
489
|
const openai = new OpenAI(clientParams);
|
|
456
490
|
|
|
457
|
-
const id = parameters.payload.thread_id;
|
|
491
|
+
const id = parameters.msg.payload.thread_id;
|
|
458
492
|
const response = await openai.beta.threads.retrieve(id);
|
|
459
493
|
|
|
460
494
|
return response;
|
|
461
495
|
}
|
|
496
|
+
|
|
462
497
|
async modifyThread(parameters) {
|
|
463
498
|
const clientParams = {
|
|
464
499
|
apiKey: parameters.apiKey,
|
|
@@ -467,15 +502,16 @@ let OpenaiApi = (function () {
|
|
|
467
502
|
};
|
|
468
503
|
const openai = new OpenAI(clientParams);
|
|
469
504
|
|
|
470
|
-
const id = parameters.payload.thread_id;
|
|
471
|
-
delete parameters.payload.thread_id;
|
|
505
|
+
const id = parameters.msg.payload.thread_id;
|
|
506
|
+
delete parameters.msg.payload.thread_id;
|
|
472
507
|
|
|
473
508
|
const response = await openai.beta.threads.update(id, {
|
|
474
|
-
...parameters.payload,
|
|
509
|
+
...parameters.msg.payload,
|
|
475
510
|
});
|
|
476
511
|
|
|
477
512
|
return response;
|
|
478
513
|
}
|
|
514
|
+
|
|
479
515
|
async deleteThread(parameters) {
|
|
480
516
|
const clientParams = {
|
|
481
517
|
apiKey: parameters.apiKey,
|
|
@@ -484,11 +520,12 @@ let OpenaiApi = (function () {
|
|
|
484
520
|
};
|
|
485
521
|
const openai = new OpenAI(clientParams);
|
|
486
522
|
|
|
487
|
-
const id = parameters.payload.thread_id;
|
|
523
|
+
const id = parameters.msg.payload.thread_id;
|
|
488
524
|
const response = await openai.beta.threads.del(id);
|
|
489
525
|
|
|
490
526
|
return response;
|
|
491
527
|
}
|
|
528
|
+
|
|
492
529
|
async listMessages(parameters) {
|
|
493
530
|
const clientParams = {
|
|
494
531
|
apiKey: parameters.apiKey,
|
|
@@ -497,11 +534,12 @@ let OpenaiApi = (function () {
|
|
|
497
534
|
};
|
|
498
535
|
const openai = new OpenAI(clientParams);
|
|
499
536
|
|
|
500
|
-
const id = parameters.payload.thread_id;
|
|
537
|
+
const id = parameters.msg.payload.thread_id;
|
|
501
538
|
const response = await openai.beta.threads.messages.list(id);
|
|
502
539
|
|
|
503
540
|
return response.body;
|
|
504
541
|
}
|
|
542
|
+
|
|
505
543
|
async createMessage(parameters) {
|
|
506
544
|
const clientParams = {
|
|
507
545
|
apiKey: parameters.apiKey,
|
|
@@ -510,15 +548,16 @@ let OpenaiApi = (function () {
|
|
|
510
548
|
};
|
|
511
549
|
const openai = new OpenAI(clientParams);
|
|
512
550
|
|
|
513
|
-
const thread_id = parameters.payload.thread_id;
|
|
514
|
-
delete parameters.payload.thread_id;
|
|
551
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
552
|
+
delete parameters.msg.payload.thread_id;
|
|
515
553
|
|
|
516
554
|
const response = await openai.beta.threads.messages.create(thread_id, {
|
|
517
|
-
...parameters.payload,
|
|
555
|
+
...parameters.msg.payload,
|
|
518
556
|
});
|
|
519
557
|
|
|
520
558
|
return response;
|
|
521
559
|
}
|
|
560
|
+
|
|
522
561
|
async getMessage(parameters) {
|
|
523
562
|
const clientParams = {
|
|
524
563
|
apiKey: parameters.apiKey,
|
|
@@ -527,8 +566,8 @@ let OpenaiApi = (function () {
|
|
|
527
566
|
};
|
|
528
567
|
const openai = new OpenAI(clientParams);
|
|
529
568
|
|
|
530
|
-
const thread_id = parameters.payload.thread_id;
|
|
531
|
-
const message_id = parameters.payload.message_id;
|
|
569
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
570
|
+
const message_id = parameters.msg.payload.message_id;
|
|
532
571
|
|
|
533
572
|
const response = await openai.beta.threads.messages.retrieve(
|
|
534
573
|
thread_id,
|
|
@@ -537,6 +576,7 @@ let OpenaiApi = (function () {
|
|
|
537
576
|
|
|
538
577
|
return response;
|
|
539
578
|
}
|
|
579
|
+
|
|
540
580
|
async modifyMessage(parameters) {
|
|
541
581
|
const clientParams = {
|
|
542
582
|
apiKey: parameters.apiKey,
|
|
@@ -545,21 +585,22 @@ let OpenaiApi = (function () {
|
|
|
545
585
|
};
|
|
546
586
|
const openai = new OpenAI(clientParams);
|
|
547
587
|
|
|
548
|
-
const thread_id = parameters.payload.thread_id;
|
|
549
|
-
const message_id = parameters.payload.message_id;
|
|
550
|
-
delete parameters.payload.thread_id;
|
|
551
|
-
delete parameters.payload.message_id;
|
|
588
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
589
|
+
const message_id = parameters.msg.payload.message_id;
|
|
590
|
+
delete parameters.msg.payload.thread_id;
|
|
591
|
+
delete parameters.msg.payload.message_id;
|
|
552
592
|
|
|
553
593
|
const response = await openai.beta.threads.messages.update(
|
|
554
594
|
thread_id,
|
|
555
595
|
message_id,
|
|
556
596
|
{
|
|
557
|
-
...parameters.payload,
|
|
597
|
+
...parameters.msg.payload,
|
|
558
598
|
},
|
|
559
599
|
);
|
|
560
600
|
|
|
561
601
|
return response;
|
|
562
602
|
}
|
|
603
|
+
|
|
563
604
|
async createThreadAndRun(parameters) {
|
|
564
605
|
const clientParams = {
|
|
565
606
|
apiKey: parameters.apiKey,
|
|
@@ -569,11 +610,12 @@ let OpenaiApi = (function () {
|
|
|
569
610
|
const openai = new OpenAI(clientParams);
|
|
570
611
|
|
|
571
612
|
const response = await openai.beta.threads.createAndRun({
|
|
572
|
-
...parameters.payload,
|
|
613
|
+
...parameters.msg.payload,
|
|
573
614
|
});
|
|
574
615
|
|
|
575
616
|
return response;
|
|
576
617
|
}
|
|
618
|
+
|
|
577
619
|
async listRuns(parameters) {
|
|
578
620
|
const clientParams = {
|
|
579
621
|
apiKey: parameters.apiKey,
|
|
@@ -582,15 +624,16 @@ let OpenaiApi = (function () {
|
|
|
582
624
|
};
|
|
583
625
|
const openai = new OpenAI(clientParams);
|
|
584
626
|
|
|
585
|
-
const thred_id = parameters.payload.thread_id;
|
|
586
|
-
delete parameters.payload.thread_id;
|
|
627
|
+
const thred_id = parameters.msg.payload.thread_id;
|
|
628
|
+
delete parameters.msg.payload.thread_id;
|
|
587
629
|
|
|
588
630
|
const response = await openai.beta.threads.runs.list(thred_id, {
|
|
589
|
-
...parameters.payload,
|
|
631
|
+
...parameters.msg.payload,
|
|
590
632
|
});
|
|
591
633
|
|
|
592
634
|
return response.body;
|
|
593
635
|
}
|
|
636
|
+
|
|
594
637
|
async createRun(parameters) {
|
|
595
638
|
const clientParams = {
|
|
596
639
|
apiKey: parameters.apiKey,
|
|
@@ -599,15 +642,16 @@ let OpenaiApi = (function () {
|
|
|
599
642
|
};
|
|
600
643
|
const openai = new OpenAI(clientParams);
|
|
601
644
|
|
|
602
|
-
const thread_id = parameters.payload.thread_id;
|
|
603
|
-
delete parameters.payload.thread_id;
|
|
645
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
646
|
+
delete parameters.msg.payload.thread_id;
|
|
604
647
|
|
|
605
648
|
const response = await openai.beta.threads.runs.create(thread_id, {
|
|
606
|
-
...parameters.payload,
|
|
649
|
+
...parameters.msg.payload,
|
|
607
650
|
});
|
|
608
651
|
|
|
609
652
|
return response;
|
|
610
653
|
}
|
|
654
|
+
|
|
611
655
|
async getRun(parameters) {
|
|
612
656
|
const clientParams = {
|
|
613
657
|
apiKey: parameters.apiKey,
|
|
@@ -616,10 +660,10 @@ let OpenaiApi = (function () {
|
|
|
616
660
|
};
|
|
617
661
|
const openai = new OpenAI(clientParams);
|
|
618
662
|
|
|
619
|
-
const thread_id = parameters.payload.thread_id;
|
|
620
|
-
const run_id = parameters.payload.run_id;
|
|
621
|
-
delete parameters.payload.thread_id;
|
|
622
|
-
delete parameters.payload.run_id;
|
|
663
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
664
|
+
const run_id = parameters.msg.payload.run_id;
|
|
665
|
+
delete parameters.msg.payload.thread_id;
|
|
666
|
+
delete parameters.msg.payload.run_id;
|
|
623
667
|
|
|
624
668
|
const response = await openai.beta.threads.runs.retrieve(
|
|
625
669
|
thread_id,
|
|
@@ -628,6 +672,7 @@ let OpenaiApi = (function () {
|
|
|
628
672
|
|
|
629
673
|
return response;
|
|
630
674
|
}
|
|
675
|
+
|
|
631
676
|
async modifyRun(parameters) {
|
|
632
677
|
const clientParams = {
|
|
633
678
|
apiKey: parameters.apiKey,
|
|
@@ -636,21 +681,22 @@ let OpenaiApi = (function () {
|
|
|
636
681
|
};
|
|
637
682
|
const openai = new OpenAI(clientParams);
|
|
638
683
|
|
|
639
|
-
const thread_id = parameters.payload.thread_id;
|
|
640
|
-
const run_id = parameters.payload.run_id;
|
|
641
|
-
delete parameters.payload.thread_id;
|
|
642
|
-
delete parameters.payload.run_id;
|
|
684
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
685
|
+
const run_id = parameters.msg.payload.run_id;
|
|
686
|
+
delete parameters.msg.payload.thread_id;
|
|
687
|
+
delete parameters.msg.payload.run_id;
|
|
643
688
|
|
|
644
689
|
const response = await openai.beta.threads.runs.update(
|
|
645
690
|
thread_id,
|
|
646
691
|
run_id,
|
|
647
692
|
{
|
|
648
|
-
...parameters.payload,
|
|
693
|
+
...parameters.msg.payload,
|
|
649
694
|
},
|
|
650
695
|
);
|
|
651
696
|
|
|
652
697
|
return response;
|
|
653
698
|
}
|
|
699
|
+
|
|
654
700
|
async submitToolOuputsToRun(parameters) {
|
|
655
701
|
const clientParams = {
|
|
656
702
|
apiKey: parameters.apiKey,
|
|
@@ -659,21 +705,22 @@ let OpenaiApi = (function () {
|
|
|
659
705
|
};
|
|
660
706
|
const openai = new OpenAI(clientParams);
|
|
661
707
|
|
|
662
|
-
const thread_id = parameters.payload.thread_id;
|
|
663
|
-
const run_id = parameters.payload.run_id;
|
|
664
|
-
delete parameters.payload.thread_id;
|
|
665
|
-
delete parameters.payload.run_id;
|
|
708
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
709
|
+
const run_id = parameters.msg.payload.run_id;
|
|
710
|
+
delete parameters.msg.payload.thread_id;
|
|
711
|
+
delete parameters.msg.payload.run_id;
|
|
666
712
|
|
|
667
713
|
const response = await openai.beta.threads.runs.submitToolOutputs(
|
|
668
714
|
thread_id,
|
|
669
715
|
run_id,
|
|
670
716
|
{
|
|
671
|
-
...parameters.payload,
|
|
717
|
+
...parameters.msg.payload,
|
|
672
718
|
},
|
|
673
719
|
);
|
|
674
720
|
|
|
675
721
|
return response;
|
|
676
722
|
}
|
|
723
|
+
|
|
677
724
|
async cancelRun(parameters) {
|
|
678
725
|
const clientParams = {
|
|
679
726
|
apiKey: parameters.apiKey,
|
|
@@ -682,21 +729,22 @@ let OpenaiApi = (function () {
|
|
|
682
729
|
};
|
|
683
730
|
const openai = new OpenAI(clientParams);
|
|
684
731
|
|
|
685
|
-
const thread_id = parameters.payload.thread_id;
|
|
686
|
-
const run_id = parameters.payload.run_id;
|
|
687
|
-
delete parameters.payload.thread_id;
|
|
688
|
-
delete parameters.payload.run_id;
|
|
732
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
733
|
+
const run_id = parameters.msg.payload.run_id;
|
|
734
|
+
delete parameters.msg.payload.thread_id;
|
|
735
|
+
delete parameters.msg.payload.run_id;
|
|
689
736
|
|
|
690
737
|
const response = await openai.beta.threads.runs.cancel(
|
|
691
738
|
thread_id,
|
|
692
739
|
run_id,
|
|
693
740
|
{
|
|
694
|
-
...parameters.payload,
|
|
741
|
+
...parameters.msg.payload,
|
|
695
742
|
},
|
|
696
743
|
);
|
|
697
744
|
|
|
698
745
|
return response;
|
|
699
746
|
}
|
|
747
|
+
|
|
700
748
|
async listRunSteps(parameters) {
|
|
701
749
|
const clientParams = {
|
|
702
750
|
apiKey: parameters.apiKey,
|
|
@@ -705,21 +753,22 @@ let OpenaiApi = (function () {
|
|
|
705
753
|
};
|
|
706
754
|
const openai = new OpenAI(clientParams);
|
|
707
755
|
|
|
708
|
-
const thread_id = parameters.payload.thread_id;
|
|
709
|
-
const run_id = parameters.payload.run_id;
|
|
710
|
-
delete parameters.payload.thread_id;
|
|
711
|
-
delete parameters.payload.run_id;
|
|
756
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
757
|
+
const run_id = parameters.msg.payload.run_id;
|
|
758
|
+
delete parameters.msg.payload.thread_id;
|
|
759
|
+
delete parameters.msg.payload.run_id;
|
|
712
760
|
|
|
713
761
|
const response = await openai.beta.threads.runs.steps.list(
|
|
714
762
|
thread_id,
|
|
715
763
|
run_id,
|
|
716
764
|
{
|
|
717
|
-
...parameters.payload,
|
|
765
|
+
...parameters.msg.payload,
|
|
718
766
|
},
|
|
719
767
|
);
|
|
720
768
|
|
|
721
769
|
return response.body;
|
|
722
770
|
}
|
|
771
|
+
|
|
723
772
|
async getRunStep(parameters) {
|
|
724
773
|
const clientParams = {
|
|
725
774
|
apiKey: parameters.apiKey,
|
|
@@ -728,9 +777,9 @@ let OpenaiApi = (function () {
|
|
|
728
777
|
};
|
|
729
778
|
const openai = new OpenAI(clientParams);
|
|
730
779
|
|
|
731
|
-
const thread_id = parameters.payload.thread_id;
|
|
732
|
-
const run_id = parameters.payload.run_id;
|
|
733
|
-
const step_id = parameters.payload.step_id;
|
|
780
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
781
|
+
const run_id = parameters.msg.payload.run_id;
|
|
782
|
+
const step_id = parameters.msg.payload.step_id;
|
|
734
783
|
|
|
735
784
|
const response = await openai.beta.threads.runs.steps.retrieve(
|
|
736
785
|
thread_id,
|
|
@@ -740,6 +789,7 @@ let OpenaiApi = (function () {
|
|
|
740
789
|
|
|
741
790
|
return response;
|
|
742
791
|
}
|
|
792
|
+
|
|
743
793
|
async listAssistantFiles(parameters) {
|
|
744
794
|
const clientParams = {
|
|
745
795
|
apiKey: parameters.apiKey,
|
|
@@ -748,15 +798,16 @@ let OpenaiApi = (function () {
|
|
|
748
798
|
};
|
|
749
799
|
const openai = new OpenAI(clientParams);
|
|
750
800
|
|
|
751
|
-
const assistant_id = parameters.payload.assistant_id;
|
|
752
|
-
delete parameters.payload.assistant_id;
|
|
801
|
+
const assistant_id = parameters.msg.payload.assistant_id;
|
|
802
|
+
delete parameters.msg.payload.assistant_id;
|
|
753
803
|
|
|
754
804
|
const response = await openai.beta.assistants.files.list(assistant_id, {
|
|
755
|
-
...parameters.payload,
|
|
805
|
+
...parameters.msg.payload,
|
|
756
806
|
});
|
|
757
807
|
|
|
758
808
|
return response.body;
|
|
759
809
|
}
|
|
810
|
+
|
|
760
811
|
async createAssistantFile(parameters) {
|
|
761
812
|
const clientParams = {
|
|
762
813
|
apiKey: parameters.apiKey,
|
|
@@ -765,15 +816,16 @@ let OpenaiApi = (function () {
|
|
|
765
816
|
};
|
|
766
817
|
const openai = new OpenAI(clientParams);
|
|
767
818
|
|
|
768
|
-
const assistant_id = parameters.payload.assistant_id;
|
|
769
|
-
delete parameters.payload.assistant_id;
|
|
819
|
+
const assistant_id = parameters.msg.payload.assistant_id;
|
|
820
|
+
delete parameters.msg.payload.assistant_id;
|
|
770
821
|
|
|
771
822
|
const response = await openai.beta.assistants.files.create(assistant_id, {
|
|
772
|
-
...parameters.payload,
|
|
823
|
+
...parameters.msg.payload,
|
|
773
824
|
});
|
|
774
825
|
|
|
775
826
|
return response;
|
|
776
827
|
}
|
|
828
|
+
|
|
777
829
|
async getAssistantFile(parameters) {
|
|
778
830
|
const clientParams = {
|
|
779
831
|
apiKey: parameters.apiKey,
|
|
@@ -782,21 +834,22 @@ let OpenaiApi = (function () {
|
|
|
782
834
|
};
|
|
783
835
|
const openai = new OpenAI(clientParams);
|
|
784
836
|
|
|
785
|
-
const assistant_id = parameters.payload.assistant_id;
|
|
786
|
-
const file_id = parameters.payload.file_id;
|
|
787
|
-
delete parameters.payload.assistant_id;
|
|
788
|
-
delete parameters.payload.file_id;
|
|
837
|
+
const assistant_id = parameters.msg.payload.assistant_id;
|
|
838
|
+
const file_id = parameters.msg.payload.file_id;
|
|
839
|
+
delete parameters.msg.payload.assistant_id;
|
|
840
|
+
delete parameters.msg.payload.file_id;
|
|
789
841
|
|
|
790
842
|
const response = await openai.beta.assistants.files.retrieve(
|
|
791
843
|
assistant_id,
|
|
792
844
|
file_id,
|
|
793
845
|
{
|
|
794
|
-
...parameters.payload,
|
|
846
|
+
...parameters.msg.payload,
|
|
795
847
|
},
|
|
796
848
|
);
|
|
797
849
|
|
|
798
850
|
return response;
|
|
799
851
|
}
|
|
852
|
+
|
|
800
853
|
async deleteAssistantFile(parameters) {
|
|
801
854
|
const clientParams = {
|
|
802
855
|
apiKey: parameters.apiKey,
|
|
@@ -805,21 +858,22 @@ let OpenaiApi = (function () {
|
|
|
805
858
|
};
|
|
806
859
|
const openai = new OpenAI(clientParams);
|
|
807
860
|
|
|
808
|
-
const assistant_id = parameters.payload.assistant_id;
|
|
809
|
-
const file_id = parameters.payload.file_id;
|
|
810
|
-
delete parameters.payload.assistant_id;
|
|
811
|
-
delete parameters.payload.file_id;
|
|
861
|
+
const assistant_id = parameters.msg.payload.assistant_id;
|
|
862
|
+
const file_id = parameters.msg.payload.file_id;
|
|
863
|
+
delete parameters.msg.payload.assistant_id;
|
|
864
|
+
delete parameters.msg.payload.file_id;
|
|
812
865
|
|
|
813
866
|
const response = await openai.beta.assistants.files.del(
|
|
814
867
|
assistant_id,
|
|
815
868
|
file_id,
|
|
816
869
|
{
|
|
817
|
-
...parameters.payload,
|
|
870
|
+
...parameters.msg.payload,
|
|
818
871
|
},
|
|
819
872
|
);
|
|
820
873
|
|
|
821
874
|
return response;
|
|
822
875
|
}
|
|
876
|
+
|
|
823
877
|
async listMessageFiles(parameters) {
|
|
824
878
|
const clientParams = {
|
|
825
879
|
apiKey: parameters.apiKey,
|
|
@@ -828,21 +882,22 @@ let OpenaiApi = (function () {
|
|
|
828
882
|
};
|
|
829
883
|
const openai = new OpenAI(clientParams);
|
|
830
884
|
|
|
831
|
-
const thread_id = parameters.payload.thread_id;
|
|
832
|
-
const message_id = parameters.payload.message_id;
|
|
833
|
-
delete parameters.payload.thread_id;
|
|
834
|
-
delete parameters.payload.message_id;
|
|
885
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
886
|
+
const message_id = parameters.msg.payload.message_id;
|
|
887
|
+
delete parameters.msg.payload.thread_id;
|
|
888
|
+
delete parameters.msg.payload.message_id;
|
|
835
889
|
|
|
836
890
|
const response = await openai.beta.threads.messages.files.list(
|
|
837
891
|
thread_id,
|
|
838
892
|
message_id,
|
|
839
893
|
{
|
|
840
|
-
...parameters.payload,
|
|
894
|
+
...parameters.msg.payload,
|
|
841
895
|
},
|
|
842
896
|
);
|
|
843
897
|
|
|
844
898
|
return response;
|
|
845
899
|
}
|
|
900
|
+
|
|
846
901
|
async getMessageFile(parameters) {
|
|
847
902
|
const clientParams = {
|
|
848
903
|
apiKey: parameters.apiKey,
|
|
@@ -851,20 +906,20 @@ let OpenaiApi = (function () {
|
|
|
851
906
|
};
|
|
852
907
|
const openai = new OpenAI(clientParams);
|
|
853
908
|
|
|
854
|
-
const thread_id = parameters.payload.thread_id;
|
|
855
|
-
const message_id = parameters.payload.message_id;
|
|
856
|
-
const file_id = parameters.payload.file_id;
|
|
909
|
+
const thread_id = parameters.msg.payload.thread_id;
|
|
910
|
+
const message_id = parameters.msg.payload.message_id;
|
|
911
|
+
const file_id = parameters.msg.payload.file_id;
|
|
857
912
|
|
|
858
|
-
delete parameters.payload.thread_id;
|
|
859
|
-
delete parameters.payload.message_id;
|
|
860
|
-
delete parameters.payload.file_id;
|
|
913
|
+
delete parameters.msg.payload.thread_id;
|
|
914
|
+
delete parameters.msg.payload.message_id;
|
|
915
|
+
delete parameters.msg.payload.file_id;
|
|
861
916
|
|
|
862
917
|
const response = await openai.beta.threads.messages.files.retrieve(
|
|
863
918
|
thread_id,
|
|
864
919
|
message_id,
|
|
865
920
|
file_id,
|
|
866
921
|
{
|
|
867
|
-
...parameters.payload,
|
|
922
|
+
...parameters.msg.payload,
|
|
868
923
|
},
|
|
869
924
|
);
|
|
870
925
|
|
package/locales/en-US/node.json
CHANGED
package/node.html
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
color: "#B8B1FB",
|
|
5
5
|
defaults: {
|
|
6
6
|
name: { value: "" },
|
|
7
|
+
property: { value: "payload", required: true },
|
|
8
|
+
propertyType: { value: "msg" },
|
|
7
9
|
service: { value: "", type: "Service Host", required: true },
|
|
8
10
|
method: { value: "", required: true },
|
|
9
11
|
},
|
|
@@ -22,8 +24,20 @@
|
|
|
22
24
|
var methods = $("#node-input-method").children();
|
|
23
25
|
var firstMethod = methods.first();
|
|
24
26
|
$("#node-input-method").val(firstMethod.val());
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// set the default property type value to "payload"
|
|
30
|
+
if (this.property === undefined) {
|
|
31
|
+
$("#node-input-property").val("payload");
|
|
25
32
|
}
|
|
26
|
-
|
|
33
|
+
|
|
34
|
+
$("#node-input-property").typedInput({
|
|
35
|
+
default: "msg",
|
|
36
|
+
value: "payload",
|
|
37
|
+
types:["msg", "flow", "global"],
|
|
38
|
+
typeField: "#node-input-propertyType"
|
|
39
|
+
})
|
|
40
|
+
}
|
|
27
41
|
});
|
|
28
42
|
</script>
|
|
29
43
|
|
|
@@ -49,6 +63,15 @@
|
|
|
49
63
|
<input type="text" id="node-input-service" />
|
|
50
64
|
</div>
|
|
51
65
|
|
|
66
|
+
<div class="form-row">
|
|
67
|
+
<label for="node-input-property"
|
|
68
|
+
><i class="fa fa-ellipsis-h"></i>
|
|
69
|
+
<span data-i18n="OpenaiApi.label.property"></span
|
|
70
|
+
></label>
|
|
71
|
+
<input type="text" id="node-input-property">
|
|
72
|
+
<input type="hidden" id="node-input-propertyType">
|
|
73
|
+
</div>
|
|
74
|
+
|
|
52
75
|
<div class="form-row">
|
|
53
76
|
<label for="node-input-method"
|
|
54
77
|
><i class="fa fa-tasks"></i>
|
|
@@ -2681,7 +2704,7 @@
|
|
|
2681
2704
|
);
|
|
2682
2705
|
if (!selected.val()) {
|
|
2683
2706
|
$("#node-config-input-secureApiKeyIsQuery").val(false);
|
|
2684
|
-
}
|
|
2707
|
+
};
|
|
2685
2708
|
},
|
|
2686
2709
|
});
|
|
2687
2710
|
</script>
|
package/node.js
CHANGED
|
@@ -5,21 +5,32 @@ module.exports = function (RED) {
|
|
|
5
5
|
class OpenaiApiNode {
|
|
6
6
|
constructor(config) {
|
|
7
7
|
RED.nodes.createNode(this, config);
|
|
8
|
-
this.service = RED.nodes.getNode(config.service);
|
|
9
|
-
this.method = config.method;
|
|
10
8
|
|
|
11
9
|
let node = this;
|
|
10
|
+
node.service = RED.nodes.getNode(config.service);
|
|
11
|
+
node.config = config;
|
|
12
12
|
|
|
13
13
|
node.on("input", function (msg) {
|
|
14
14
|
let client = new lib.OpenaiApi();
|
|
15
|
+
let payload;
|
|
15
16
|
|
|
16
|
-
const
|
|
17
|
+
const propertyType = node.config.propertyType || "msg";
|
|
18
|
+
const propertyPath = node.config.property || "payload";
|
|
19
|
+
|
|
20
|
+
if (propertyType === "msg") {
|
|
21
|
+
payload = RED.util.getMessageProperty(msg, propertyPath);
|
|
22
|
+
} else {
|
|
23
|
+
// For flow and global contexts
|
|
24
|
+
payload = node.context()[propertyType].get(propertyPath);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const serviceName = node.config.method; // Set the service name to call.
|
|
17
28
|
let serviceParametersObject = {
|
|
18
29
|
organization: node.service.organizationId,
|
|
19
30
|
apiBase: node.service.apiBase,
|
|
20
31
|
apiKey: node.service.credentials.secureApiKeyValue || "",
|
|
21
32
|
_node: node,
|
|
22
|
-
|
|
33
|
+
msg: msg,
|
|
23
34
|
};
|
|
24
35
|
|
|
25
36
|
// Dynamically call the function based on the service name
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inductiv/node-red-openai-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Go beyond ChatGPT and DALL·E 3: this Node-RED node seamlessly integrates a range of OpenAI services, including Assistants, Threads, Vision, and Audio, enabling feature-rich enhancement of your AI workflows with any OpenAI REST API-compatible solution.",
|
|
5
5
|
"main": "node.js",
|
|
6
6
|
"engines": {
|
package/.eslintrc.json
DELETED
package/.prettierrc
DELETED