@inductiv/node-red-openai-api 0.8.0 → 1.0.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 +50 -62
- package/examples/assistants.json +156 -189
- package/examples/chat.json +5 -3
- package/examples/embeddings.json +9 -2
- package/examples/fine-tuning.json +3 -1
- package/examples/messages.json +4 -2
- package/examples/models.json +3 -1
- package/examples/threads.json +3 -1
- package/lib.js +362 -333
- package/locales/de-DE/node.json +20 -2
- package/locales/en-US/node.json +18 -1
- package/locales/ja/node.json +18 -3
- package/locales/zh-CN/node.json +20 -2
- package/node.html +983 -148
- package/package.json +22 -15
package/lib.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
const { response } = require("express");
|
|
2
|
+
|
|
1
3
|
let OpenaiApi = (function () {
|
|
2
4
|
"use strict";
|
|
3
5
|
|
|
@@ -9,35 +11,213 @@ let OpenaiApi = (function () {
|
|
|
9
11
|
this.clientParams = {
|
|
10
12
|
apiKey: apiKey,
|
|
11
13
|
baseURL: baseURL,
|
|
12
|
-
organization: organization
|
|
13
|
-
}
|
|
14
|
+
organization: organization,
|
|
15
|
+
};
|
|
14
16
|
}
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
// Begin Vector Store File functions
|
|
19
|
+
async createVectorStoreFile(parameters) {
|
|
20
|
+
const openai = new OpenAI(this.clientParams);
|
|
21
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
22
|
+
const response = await openai.beta.vectorStores.files.create(
|
|
23
|
+
vector_store_id,
|
|
24
|
+
params,
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
return response;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async listVectorStoreFiles(parameters) {
|
|
31
|
+
/* Returns a list of vector store files. */
|
|
32
|
+
|
|
33
|
+
const openai = new OpenAI(this.clientParams);
|
|
34
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
35
|
+
const list = await openai.beta.vectorStores.files.list(
|
|
36
|
+
vector_store_id,
|
|
37
|
+
params,
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
return [...list.data];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async retrieveVectorStoreFile(parameters) {
|
|
44
|
+
/* Retrieves a vector store file. */
|
|
45
|
+
|
|
46
|
+
const openai = new OpenAI(this.clientParams);
|
|
47
|
+
const { vector_store_id, file_id } = parameters.msg.payload;
|
|
48
|
+
const response = openai.beta.vectorStores.files.retrieve(
|
|
49
|
+
vector_store_id,
|
|
50
|
+
file_id,
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return response;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async deleteVectorStoreFile(parameters) {
|
|
57
|
+
/* Removes a file from the vector store. */
|
|
58
|
+
|
|
59
|
+
const openai = new OpenAI(this.clientParams);
|
|
60
|
+
const { vector_store_id, file_id, ...params } = parameters.msg.payload;
|
|
61
|
+
const response = openai.beta.vectorStores.files.del(
|
|
62
|
+
vector_store_id,
|
|
63
|
+
file_id,
|
|
64
|
+
params,
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
return response;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// End Vector Store File functions
|
|
71
|
+
|
|
72
|
+
async createVectorStoreFileBatch(parameters) {
|
|
73
|
+
const openai = new OpenAI(this.clientParams);
|
|
74
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
75
|
+
const response = await openai.beta.vectorStores.fileBatches.create(
|
|
76
|
+
vector_store_id,
|
|
77
|
+
params,
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
return response;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async retrieveVectorStoreFileBatch(parameters) {
|
|
84
|
+
const openai = new OpenAI(this.clientParams);
|
|
85
|
+
const { vector_store_id, batch_id, ...params } = parameters.msg.payload;
|
|
86
|
+
const response = await openai.beta.vectorStores.fileBatches.retrieve(
|
|
87
|
+
vector_store_id,
|
|
88
|
+
batch_id,
|
|
89
|
+
params,
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
return response;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async cancelVectorStoreFileBatch(parameters) {
|
|
96
|
+
const openai = new OpenAI(this.clientParams);
|
|
97
|
+
const { vector_store_id, batch_id, ...params } = parameters.msg.payload;
|
|
98
|
+
const response = await openai.beta.vectorStores.fileBatches.retrieve(
|
|
99
|
+
vector_store_id,
|
|
100
|
+
batch_id,
|
|
101
|
+
params,
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
return response;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
async listVectorStoreBatchFiles(parameters) {
|
|
108
|
+
const openai = new OpenAI(this.clientParams);
|
|
109
|
+
const { vector_store_id, batch_id, ...params } = parameters.msg.payload;
|
|
110
|
+
const list = await openai.beta.vectorStores.fileBatches.listFiles(
|
|
111
|
+
vector_store_id,
|
|
112
|
+
batch_id,
|
|
113
|
+
params,
|
|
114
|
+
);
|
|
115
|
+
const batchFiles = [...list.data];
|
|
116
|
+
|
|
117
|
+
return batchFiles;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async createVectorStore(parameters) {
|
|
121
|
+
const openai = new OpenAI(this.clientParams);
|
|
122
|
+
const response = await openai.beta.vectorStores.create(
|
|
123
|
+
parameters.msg.payload,
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
return response;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async listVectorStores(parameters) {
|
|
130
|
+
const openai = new OpenAI(this.clientParams);
|
|
131
|
+
const list = await openai.beta.vectorStores.list(parameters.msg.payload);
|
|
132
|
+
const vectorStores = [...list.data];
|
|
19
133
|
|
|
134
|
+
return vectorStores;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async retrieveVectorStore(parameters) {
|
|
138
|
+
const openai = new OpenAI(this.clientParams);
|
|
139
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
140
|
+
const response = await openai.beta.vectorStores.retrieve(
|
|
141
|
+
vector_store_id,
|
|
142
|
+
params,
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
return response;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
async modifyVectorStore(parameters) {
|
|
149
|
+
const openai = new OpenAI(this.clientParams);
|
|
150
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
151
|
+
const response = await openai.beta.vectorStores.update(
|
|
152
|
+
vector_store_id,
|
|
153
|
+
params,
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
return response;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async deleteVectorStore(parameters) {
|
|
160
|
+
const openai = new OpenAI(this.clientParams);
|
|
161
|
+
const { vector_store_id, ...params } = parameters.msg.payload;
|
|
162
|
+
const response = await openai.beta.vectorStores.del(
|
|
163
|
+
vector_store_id,
|
|
164
|
+
params,
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
return response;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
async createBatch(parameters) {
|
|
171
|
+
const openai = new OpenAI(this.clientParams);
|
|
172
|
+
const response = await openai.batches.create(parameters.msg.payload);
|
|
173
|
+
|
|
174
|
+
return response;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
async retrieveBatch(parameters) {
|
|
178
|
+
const openai = new OpenAI(this.clientParams);
|
|
179
|
+
const { batch_id, ...params } = parameters.msg.payload;
|
|
180
|
+
const response = await openai.batches.retrieve(batch_id, params);
|
|
181
|
+
|
|
182
|
+
return response;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
async listBatch(parameters) {
|
|
186
|
+
const openai = new OpenAI(this.clientParams);
|
|
187
|
+
const list = await openai.batches.list(parameters.msg.payload);
|
|
188
|
+
const batches = [...list.data];
|
|
189
|
+
|
|
190
|
+
return batches;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async cancelBatch(parameters) {
|
|
194
|
+
const openai = new OpenAI(this.clientParams);
|
|
195
|
+
const { batch_id, ...params } = parameters.msg.payload;
|
|
196
|
+
const response = await openai.batches.cancel(batch_id, params);
|
|
197
|
+
|
|
198
|
+
return response;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
async createChatCompletion(parameters) {
|
|
202
|
+
const { _node, ...params } = parameters;
|
|
20
203
|
const openai = new OpenAI(this.clientParams);
|
|
21
|
-
const response = await openai.chat.completions.create(
|
|
22
|
-
...parameters.msg.payload,
|
|
23
|
-
});
|
|
204
|
+
const response = await openai.chat.completions.create(params.msg.payload);
|
|
24
205
|
|
|
25
|
-
if (
|
|
26
|
-
|
|
206
|
+
if (params.msg.payload.stream) {
|
|
207
|
+
_node.status({
|
|
27
208
|
fill: "green",
|
|
28
209
|
shape: "dot",
|
|
29
210
|
text: "OpenaiApi.status.streaming",
|
|
30
211
|
});
|
|
31
212
|
for await (const chunk of response) {
|
|
32
213
|
if (typeof chunk === "object") {
|
|
33
|
-
|
|
34
|
-
let {_msgid, ...newMsg} = parameters.msg;
|
|
214
|
+
let { _msgid, ...newMsg } = parameters.msg;
|
|
35
215
|
newMsg.payload = chunk;
|
|
36
216
|
|
|
37
|
-
|
|
217
|
+
_node.send(newMsg);
|
|
38
218
|
}
|
|
39
219
|
}
|
|
40
|
-
|
|
220
|
+
_node.status({});
|
|
41
221
|
} else {
|
|
42
222
|
return response;
|
|
43
223
|
}
|
|
@@ -45,61 +225,44 @@ let OpenaiApi = (function () {
|
|
|
45
225
|
|
|
46
226
|
async createImage(parameters) {
|
|
47
227
|
const openai = new OpenAI(this.clientParams);
|
|
48
|
-
const response = await openai.images.generate(
|
|
49
|
-
...parameters.msg.payload,
|
|
50
|
-
});
|
|
228
|
+
const response = await openai.images.generate(parameters.msg.payload);
|
|
51
229
|
|
|
52
|
-
return response;
|
|
230
|
+
return response.data;
|
|
53
231
|
}
|
|
54
232
|
|
|
55
233
|
async createImageEdit(parameters) {
|
|
56
234
|
const openai = new OpenAI(this.clientParams);
|
|
235
|
+
let { image, mask, ...params } = parameters.msg.payload;
|
|
57
236
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (parameters.msg.payload.mask) {
|
|
62
|
-
parameters.msg.payload.mask = fs.createReadStream(
|
|
63
|
-
parameters.msg.payload.mask,
|
|
64
|
-
);
|
|
237
|
+
params.image = fs.createReadStream(image);
|
|
238
|
+
if (mask) {
|
|
239
|
+
params.mask = fs.createReadStream(mask);
|
|
65
240
|
}
|
|
241
|
+
const response = await openai.images.edit(params);
|
|
66
242
|
|
|
67
|
-
|
|
68
|
-
...parameters.msg.payload,
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
return response;
|
|
243
|
+
return response.data;
|
|
72
244
|
}
|
|
73
245
|
|
|
74
246
|
async createImageVariation(parameters) {
|
|
75
247
|
const openai = new OpenAI(this.clientParams);
|
|
248
|
+
let { image, ...params } = parameters.msg.payload;
|
|
76
249
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
);
|
|
80
|
-
const response = await openai.images.createVariation({
|
|
81
|
-
...parameters.msg.payload,
|
|
82
|
-
});
|
|
250
|
+
params.image = fs.createReadStream(image);
|
|
251
|
+
const response = await openai.images.createVariation(params);
|
|
83
252
|
|
|
84
|
-
return response;
|
|
253
|
+
return response.data;
|
|
85
254
|
}
|
|
86
255
|
|
|
87
256
|
async createEmbedding(parameters) {
|
|
88
257
|
const openai = new OpenAI(this.clientParams);
|
|
258
|
+
const response = await openai.embeddings.create(parameters.msg.payload);
|
|
89
259
|
|
|
90
|
-
|
|
91
|
-
...parameters.msg.payload,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
return response;
|
|
260
|
+
return response.data;
|
|
95
261
|
}
|
|
96
262
|
|
|
97
263
|
async createSpeech(parameters) {
|
|
98
264
|
const openai = new OpenAI(this.clientParams);
|
|
99
|
-
|
|
100
|
-
const audio = await openai.audio.speech.create({
|
|
101
|
-
...parameters.msg.payload,
|
|
102
|
-
});
|
|
265
|
+
const audio = await openai.audio.speech.create(parameters.msg.payload);
|
|
103
266
|
const response = Buffer.from(await audio.arrayBuffer());
|
|
104
267
|
|
|
105
268
|
return response;
|
|
@@ -107,125 +270,90 @@ let OpenaiApi = (function () {
|
|
|
107
270
|
|
|
108
271
|
async createTranscription(parameters) {
|
|
109
272
|
const openai = new OpenAI(this.clientParams);
|
|
273
|
+
let { file, ...params } = parameters.msg.payload;
|
|
110
274
|
|
|
111
|
-
|
|
112
|
-
parameters.msg.payload.file,
|
|
113
|
-
);
|
|
275
|
+
params.file = fs.createReadStream(file);
|
|
114
276
|
|
|
115
|
-
const response = await openai.audio.transcriptions.create(
|
|
116
|
-
...parameters.msg.payload,
|
|
117
|
-
});
|
|
277
|
+
const response = await openai.audio.transcriptions.create(params);
|
|
118
278
|
|
|
119
279
|
return response;
|
|
120
280
|
}
|
|
121
281
|
|
|
122
282
|
async createTranslation(parameters) {
|
|
123
283
|
const openai = new OpenAI(this.clientParams);
|
|
284
|
+
let { file, ...params } = parameters.msg.payload;
|
|
124
285
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
);
|
|
128
|
-
const response = await openai.audio.translations.create({
|
|
129
|
-
...parameters.msg.payload,
|
|
130
|
-
});
|
|
286
|
+
params.file = fs.createReadStream(file);
|
|
287
|
+
|
|
288
|
+
const response = await openai.audio.translations.create(params);
|
|
131
289
|
|
|
132
290
|
return response;
|
|
133
291
|
}
|
|
134
292
|
|
|
135
293
|
async listFiles(parameters) {
|
|
136
294
|
const openai = new OpenAI(this.clientParams);
|
|
295
|
+
const list = await openai.files.list(parameters.msg.payload);
|
|
137
296
|
|
|
138
|
-
|
|
139
|
-
...parameters.msg.payload,
|
|
140
|
-
});
|
|
141
|
-
|
|
142
|
-
let files = [];
|
|
143
|
-
for await (const file of list) {
|
|
144
|
-
files.push(file);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return files;
|
|
297
|
+
return [...list.data];
|
|
148
298
|
}
|
|
149
299
|
|
|
150
300
|
async createFile(parameters) {
|
|
151
301
|
const openai = new OpenAI(this.clientParams);
|
|
302
|
+
let { file, ...params } = parameters.msg.payload;
|
|
152
303
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
);
|
|
156
|
-
const response = await openai.files.create({
|
|
157
|
-
...parameters.msg.payload,
|
|
158
|
-
});
|
|
304
|
+
params.file = fs.createReadStream(file);
|
|
305
|
+
|
|
306
|
+
const response = await openai.files.create(params);
|
|
159
307
|
|
|
160
308
|
return response;
|
|
161
309
|
}
|
|
162
310
|
|
|
163
311
|
async deleteFile(parameters) {
|
|
164
312
|
const openai = new OpenAI(this.clientParams);
|
|
165
|
-
|
|
166
|
-
const response = await openai.files.del(
|
|
167
|
-
...parameters.msg.payload,
|
|
168
|
-
});
|
|
313
|
+
const { file_id, ...params } = parameters.msg.payload;
|
|
314
|
+
const response = await openai.files.del(file_id, params);
|
|
169
315
|
|
|
170
316
|
return response;
|
|
171
317
|
}
|
|
172
318
|
|
|
173
319
|
async retrieveFile(parameters) {
|
|
174
320
|
const openai = new OpenAI(this.clientParams);
|
|
175
|
-
|
|
176
|
-
const
|
|
177
|
-
delete parameters.msg.payload.file_id;
|
|
178
|
-
|
|
179
|
-
const response = await openai.files.retrieve(file_id, {
|
|
180
|
-
...parameters.msg.payload,
|
|
181
|
-
});
|
|
321
|
+
const { file_id, ...params } = parameters.msg.payload;
|
|
322
|
+
const response = await openai.files.retrieve(file_id, params);
|
|
182
323
|
|
|
183
324
|
return response;
|
|
184
325
|
}
|
|
185
326
|
|
|
186
327
|
async downloadFile(parameters) {
|
|
187
328
|
const openai = new OpenAI(this.clientParams);
|
|
188
|
-
|
|
189
|
-
const
|
|
190
|
-
delete parameters.msg.payload.file_id;
|
|
191
|
-
|
|
192
|
-
const response = await openai.files.retrieveContent(file_id, {
|
|
193
|
-
...parameters.msg.payload,
|
|
194
|
-
});
|
|
329
|
+
const { file_id, ...params } = parameters.msg.payload;
|
|
330
|
+
const response = await openai.files.content(file_id, params);
|
|
195
331
|
|
|
196
332
|
return response;
|
|
197
333
|
}
|
|
198
334
|
|
|
199
335
|
async createFineTuningJob(parameters) {
|
|
200
336
|
const openai = new OpenAI(this.clientParams);
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
});
|
|
337
|
+
const response = await openai.fineTuning.jobs.create(
|
|
338
|
+
parameters.msg.payload,
|
|
339
|
+
);
|
|
205
340
|
|
|
206
341
|
return response;
|
|
207
342
|
}
|
|
208
343
|
|
|
209
344
|
async listPaginatedFineTuningJobs(parameters) {
|
|
210
345
|
const openai = new OpenAI(this.clientParams);
|
|
346
|
+
const list = await openai.fineTuning.jobs.list(parameters.msg.payload);
|
|
211
347
|
|
|
212
|
-
|
|
213
|
-
...parameters.msg.payload,
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
let response = [];
|
|
217
|
-
for await (const fineTune of list) {
|
|
218
|
-
response.push(fineTune);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
return response;
|
|
348
|
+
return [...list.data];
|
|
222
349
|
}
|
|
223
350
|
|
|
224
351
|
async retrieveFineTuningJob(parameters) {
|
|
225
352
|
const openai = new OpenAI(this.clientParams);
|
|
226
|
-
|
|
353
|
+
const { fine_tuning_job_id, ...params } = parameters.msg.payload;
|
|
227
354
|
const response = await openai.fineTuning.jobs.retrieve(
|
|
228
|
-
|
|
355
|
+
fine_tuning_job_id,
|
|
356
|
+
params,
|
|
229
357
|
);
|
|
230
358
|
|
|
231
359
|
return response;
|
|
@@ -233,22 +361,21 @@ let OpenaiApi = (function () {
|
|
|
233
361
|
|
|
234
362
|
async listFineTuningEvents(parameters) {
|
|
235
363
|
const openai = new OpenAI(this.clientParams);
|
|
236
|
-
|
|
237
|
-
let response = [];
|
|
364
|
+
const { fine_tuning_job_id, ...params } = parameters.msg.payload;
|
|
238
365
|
const list = await openai.fineTuning.jobs.listEvents(
|
|
239
|
-
|
|
366
|
+
fine_tuning_job_id,
|
|
367
|
+
params,
|
|
240
368
|
);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
return response;
|
|
369
|
+
|
|
370
|
+
return [...list.data];
|
|
245
371
|
}
|
|
246
372
|
|
|
247
373
|
async cancelFineTuningJob(parameters) {
|
|
248
374
|
const openai = new OpenAI(this.clientParams);
|
|
249
|
-
|
|
375
|
+
const { fine_tuning_job_id, ...params } = parameters.msg.payload;
|
|
250
376
|
const response = await openai.fineTuning.jobs.cancel(
|
|
251
|
-
|
|
377
|
+
fine_tuning_job_id,
|
|
378
|
+
params,
|
|
252
379
|
);
|
|
253
380
|
|
|
254
381
|
return response;
|
|
@@ -256,9 +383,9 @@ let OpenaiApi = (function () {
|
|
|
256
383
|
|
|
257
384
|
async listModels(parameters) {
|
|
258
385
|
const openai = new OpenAI(this.clientParams);
|
|
259
|
-
const
|
|
386
|
+
const list = await openai.models.list();
|
|
260
387
|
|
|
261
|
-
return
|
|
388
|
+
return [...list.data];
|
|
262
389
|
}
|
|
263
390
|
|
|
264
391
|
async retrieveModel(parameters) {
|
|
@@ -285,115 +412,107 @@ let OpenaiApi = (function () {
|
|
|
285
412
|
|
|
286
413
|
async listAssistants(parameters) {
|
|
287
414
|
const openai = new OpenAI(this.clientParams);
|
|
288
|
-
const
|
|
289
|
-
...parameters.msg.payload,
|
|
290
|
-
});
|
|
415
|
+
const list = await openai.beta.assistants.list(parameters.msg.payload);
|
|
291
416
|
|
|
292
|
-
return
|
|
417
|
+
return [...list.data];
|
|
293
418
|
}
|
|
294
419
|
|
|
295
420
|
async createAssistant(parameters) {
|
|
296
421
|
const openai = new OpenAI(this.clientParams);
|
|
297
|
-
const response = await openai.beta.assistants.create(
|
|
298
|
-
|
|
299
|
-
|
|
422
|
+
const response = await openai.beta.assistants.create(
|
|
423
|
+
parameters.msg.payload,
|
|
424
|
+
);
|
|
300
425
|
|
|
301
426
|
return response;
|
|
302
427
|
}
|
|
303
428
|
|
|
304
429
|
async getAssistant(parameters) {
|
|
305
430
|
const openai = new OpenAI(this.clientParams);
|
|
306
|
-
const
|
|
307
|
-
const response = await openai.beta.assistants.retrieve(
|
|
431
|
+
const { assistant_id, ...params } = parameters.msg.payload;
|
|
432
|
+
const response = await openai.beta.assistants.retrieve(
|
|
433
|
+
assistant_id,
|
|
434
|
+
params,
|
|
435
|
+
);
|
|
308
436
|
|
|
309
437
|
return response;
|
|
310
438
|
}
|
|
311
439
|
|
|
312
440
|
async modifyAssistant(parameters) {
|
|
313
441
|
const openai = new OpenAI(this.clientParams);
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
});
|
|
442
|
+
const { assistant_id, ...params } = parameters.msg.payload;
|
|
443
|
+
const response = await openai.beta.assistants.update(
|
|
444
|
+
assistant_id,
|
|
445
|
+
params,
|
|
446
|
+
);
|
|
320
447
|
|
|
321
448
|
return response;
|
|
322
449
|
}
|
|
323
450
|
|
|
324
451
|
async deleteAssistant(parameters) {
|
|
325
452
|
const openai = new OpenAI(this.clientParams);
|
|
326
|
-
const
|
|
327
|
-
const response = await openai.beta.assistants.del(
|
|
453
|
+
const { assistant_id, ...params } = parameters.msg.payload;
|
|
454
|
+
const response = await openai.beta.assistants.del(assistant_id, params);
|
|
328
455
|
|
|
329
456
|
return response;
|
|
330
457
|
}
|
|
331
458
|
|
|
332
459
|
async createThread(parameters) {
|
|
333
460
|
const openai = new OpenAI(this.clientParams);
|
|
334
|
-
const response = await openai.beta.threads.create(
|
|
335
|
-
...parameters.msg.payload,
|
|
336
|
-
});
|
|
461
|
+
const response = await openai.beta.threads.create(parameters.msg.payload);
|
|
337
462
|
|
|
338
463
|
return response;
|
|
339
464
|
}
|
|
340
465
|
|
|
341
466
|
async getThread(parameters) {
|
|
342
467
|
const openai = new OpenAI(this.clientParams);
|
|
343
|
-
const
|
|
344
|
-
const response = await openai.beta.threads.retrieve(
|
|
468
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
469
|
+
const response = await openai.beta.threads.retrieve(thread_id, params);
|
|
345
470
|
|
|
346
471
|
return response;
|
|
347
472
|
}
|
|
348
473
|
|
|
349
474
|
async modifyThread(parameters) {
|
|
350
475
|
const openai = new OpenAI(this.clientParams);
|
|
351
|
-
const
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
const response = await openai.beta.threads.update(id, {
|
|
355
|
-
...parameters.msg.payload,
|
|
356
|
-
});
|
|
476
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
477
|
+
const response = await openai.beta.threads.update(thread_id, params);
|
|
357
478
|
|
|
358
479
|
return response;
|
|
359
480
|
}
|
|
360
481
|
|
|
361
482
|
async deleteThread(parameters) {
|
|
362
483
|
const openai = new OpenAI(this.clientParams);
|
|
363
|
-
const
|
|
364
|
-
const response = await openai.beta.threads.del(
|
|
484
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
485
|
+
const response = await openai.beta.threads.del(thread_id, params);
|
|
365
486
|
|
|
366
487
|
return response;
|
|
367
488
|
}
|
|
368
489
|
|
|
369
490
|
async listMessages(parameters) {
|
|
370
491
|
const openai = new OpenAI(this.clientParams);
|
|
371
|
-
const
|
|
372
|
-
const
|
|
492
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
493
|
+
const list = await openai.beta.threads.messages.list(thread_id, params);
|
|
373
494
|
|
|
374
|
-
return
|
|
495
|
+
return [...list.data];
|
|
375
496
|
}
|
|
376
497
|
|
|
377
498
|
async createMessage(parameters) {
|
|
378
499
|
const openai = new OpenAI(this.clientParams);
|
|
379
|
-
const thread_id = parameters.msg.payload
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
});
|
|
500
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
501
|
+
const response = await openai.beta.threads.messages.create(
|
|
502
|
+
thread_id,
|
|
503
|
+
params,
|
|
504
|
+
);
|
|
385
505
|
|
|
386
506
|
return response;
|
|
387
507
|
}
|
|
388
508
|
|
|
389
509
|
async getMessage(parameters) {
|
|
390
510
|
const openai = new OpenAI(this.clientParams);
|
|
391
|
-
const thread_id = parameters.msg.payload
|
|
392
|
-
const message_id = parameters.msg.payload.message_id;
|
|
393
|
-
|
|
511
|
+
const { thread_id, message_id, ...params } = parameters.msg.payload;
|
|
394
512
|
const response = await openai.beta.threads.messages.retrieve(
|
|
395
513
|
thread_id,
|
|
396
514
|
message_id,
|
|
515
|
+
params,
|
|
397
516
|
);
|
|
398
517
|
|
|
399
518
|
return response;
|
|
@@ -401,17 +520,11 @@ let OpenaiApi = (function () {
|
|
|
401
520
|
|
|
402
521
|
async modifyMessage(parameters) {
|
|
403
522
|
const openai = new OpenAI(this.clientParams);
|
|
404
|
-
const thread_id = parameters.msg.payload
|
|
405
|
-
const message_id = parameters.msg.payload.message_id;
|
|
406
|
-
delete parameters.msg.payload.thread_id;
|
|
407
|
-
delete parameters.msg.payload.message_id;
|
|
408
|
-
|
|
523
|
+
const { thread_id, message_id, ...params } = parameters.msg.payload;
|
|
409
524
|
const response = await openai.beta.threads.messages.update(
|
|
410
525
|
thread_id,
|
|
411
526
|
message_id,
|
|
412
|
-
|
|
413
|
-
...parameters.msg.payload,
|
|
414
|
-
},
|
|
527
|
+
params,
|
|
415
528
|
);
|
|
416
529
|
|
|
417
530
|
return response;
|
|
@@ -419,47 +532,74 @@ let OpenaiApi = (function () {
|
|
|
419
532
|
|
|
420
533
|
async createThreadAndRun(parameters) {
|
|
421
534
|
const openai = new OpenAI(this.clientParams);
|
|
422
|
-
const response = await openai.beta.threads.createAndRun({
|
|
423
|
-
...parameters.msg.payload,
|
|
424
|
-
});
|
|
425
535
|
|
|
426
|
-
|
|
536
|
+
const { _node, ...params } = parameters;
|
|
537
|
+
const response = await openai.beta.threads.createAndRun(
|
|
538
|
+
params.msg.payload,
|
|
539
|
+
);
|
|
540
|
+
|
|
541
|
+
if (params.msg.payload.stream) {
|
|
542
|
+
_node.status({
|
|
543
|
+
fill: "green",
|
|
544
|
+
shape: "dot",
|
|
545
|
+
text: "OpenaiApi.status.streaming",
|
|
546
|
+
});
|
|
547
|
+
for await (const chunk of response) {
|
|
548
|
+
if (typeof chunk === "object") {
|
|
549
|
+
let { _msgid, ...newMsg } = parameters.msg;
|
|
550
|
+
newMsg.payload = chunk.data;
|
|
551
|
+
|
|
552
|
+
_node.send(newMsg);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
_node.status({});
|
|
556
|
+
} else {
|
|
557
|
+
return response;
|
|
558
|
+
}
|
|
427
559
|
}
|
|
428
560
|
|
|
429
561
|
async listRuns(parameters) {
|
|
430
562
|
const openai = new OpenAI(this.clientParams);
|
|
431
|
-
const
|
|
432
|
-
|
|
563
|
+
const { thread_id, ...params } = parameters.msg.payload;
|
|
564
|
+
const list = await openai.beta.threads.runs.list(thread_id, params);
|
|
433
565
|
|
|
434
|
-
|
|
435
|
-
...parameters.msg.payload,
|
|
436
|
-
});
|
|
437
|
-
|
|
438
|
-
return response.body;
|
|
566
|
+
return [...list.data];
|
|
439
567
|
}
|
|
440
568
|
|
|
441
569
|
async createRun(parameters) {
|
|
442
570
|
const openai = new OpenAI(this.clientParams);
|
|
443
|
-
const thread_id = parameters.msg.payload.thread_id;
|
|
444
|
-
delete parameters.msg.payload.thread_id;
|
|
445
571
|
|
|
446
|
-
const
|
|
447
|
-
|
|
448
|
-
|
|
572
|
+
const { _node, ..._params } = parameters;
|
|
573
|
+
const { thread_id, ...params } = _params.msg.payload;
|
|
574
|
+
const response = await openai.beta.threads.runs.create(thread_id, params);
|
|
449
575
|
|
|
450
|
-
|
|
576
|
+
if (params.stream) {
|
|
577
|
+
_node.status({
|
|
578
|
+
fill: "green",
|
|
579
|
+
shape: "dot",
|
|
580
|
+
text: "OpenaiApi.status.streaming",
|
|
581
|
+
});
|
|
582
|
+
for await (const chunk of response) {
|
|
583
|
+
if (typeof chunk === "object") {
|
|
584
|
+
let { _msgid, ...newMsg } = parameters.msg;
|
|
585
|
+
newMsg.payload = chunk.data;
|
|
586
|
+
|
|
587
|
+
_node.send(newMsg);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
_node.status({});
|
|
591
|
+
} else {
|
|
592
|
+
return response;
|
|
593
|
+
}
|
|
451
594
|
}
|
|
452
595
|
|
|
453
596
|
async getRun(parameters) {
|
|
454
597
|
const openai = new OpenAI(this.clientParams);
|
|
455
|
-
const thread_id = parameters.msg.payload
|
|
456
|
-
const run_id = parameters.msg.payload.run_id;
|
|
457
|
-
delete parameters.msg.payload.thread_id;
|
|
458
|
-
delete parameters.msg.payload.run_id;
|
|
459
|
-
|
|
598
|
+
const { thread_id, run_id, ...params } = parameters.msg.payload;
|
|
460
599
|
const response = await openai.beta.threads.runs.retrieve(
|
|
461
600
|
thread_id,
|
|
462
601
|
run_id,
|
|
602
|
+
params,
|
|
463
603
|
);
|
|
464
604
|
|
|
465
605
|
return response;
|
|
@@ -467,53 +607,54 @@ let OpenaiApi = (function () {
|
|
|
467
607
|
|
|
468
608
|
async modifyRun(parameters) {
|
|
469
609
|
const openai = new OpenAI(this.clientParams);
|
|
470
|
-
const thread_id = parameters.msg.payload
|
|
471
|
-
const run_id = parameters.msg.payload.run_id;
|
|
472
|
-
delete parameters.msg.payload.thread_id;
|
|
473
|
-
delete parameters.msg.payload.run_id;
|
|
474
|
-
|
|
610
|
+
const { thread_id, run_id, ...params } = parameters.msg.payload;
|
|
475
611
|
const response = await openai.beta.threads.runs.update(
|
|
476
612
|
thread_id,
|
|
477
613
|
run_id,
|
|
478
|
-
|
|
479
|
-
...parameters.msg.payload,
|
|
480
|
-
},
|
|
614
|
+
params,
|
|
481
615
|
);
|
|
482
616
|
|
|
483
617
|
return response;
|
|
484
618
|
}
|
|
485
619
|
|
|
486
|
-
async
|
|
620
|
+
async submitToolOutputsToRun(parameters) {
|
|
487
621
|
const openai = new OpenAI(this.clientParams);
|
|
488
|
-
const thread_id = parameters.msg.payload.thread_id;
|
|
489
|
-
const run_id = parameters.msg.payload.run_id;
|
|
490
|
-
delete parameters.msg.payload.thread_id;
|
|
491
|
-
delete parameters.msg.payload.run_id;
|
|
492
622
|
|
|
623
|
+
const {_node, ..._params} = parameters;
|
|
624
|
+
const { thread_id, run_id, ...params } = _params.msg.payload;
|
|
493
625
|
const response = await openai.beta.threads.runs.submitToolOutputs(
|
|
494
626
|
thread_id,
|
|
495
627
|
run_id,
|
|
496
|
-
|
|
497
|
-
...parameters.msg.payload,
|
|
498
|
-
},
|
|
628
|
+
params,
|
|
499
629
|
);
|
|
500
630
|
|
|
501
|
-
|
|
631
|
+
if (params.stream) {
|
|
632
|
+
_node.status({
|
|
633
|
+
fill: "green",
|
|
634
|
+
shape: "dot",
|
|
635
|
+
text: "OpenaiApi.status.streaming",
|
|
636
|
+
});
|
|
637
|
+
for await (const chunk of response) {
|
|
638
|
+
if (typeof chunk === "object") {
|
|
639
|
+
let { _msgid, ...newMsg } = parameters.msg;
|
|
640
|
+
newMsg.payload = chunk.data;
|
|
641
|
+
|
|
642
|
+
_node.send(newMsg);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
_node.status({});
|
|
646
|
+
} else {
|
|
647
|
+
return response;
|
|
648
|
+
}
|
|
502
649
|
}
|
|
503
650
|
|
|
504
651
|
async cancelRun(parameters) {
|
|
505
652
|
const openai = new OpenAI(this.clientParams);
|
|
506
|
-
const thread_id = parameters.msg.payload
|
|
507
|
-
const run_id = parameters.msg.payload.run_id;
|
|
508
|
-
delete parameters.msg.payload.thread_id;
|
|
509
|
-
delete parameters.msg.payload.run_id;
|
|
510
|
-
|
|
653
|
+
const { thread_id, run_id, ...params } = parameters.msg.payload;
|
|
511
654
|
const response = await openai.beta.threads.runs.cancel(
|
|
512
655
|
thread_id,
|
|
513
656
|
run_id,
|
|
514
|
-
|
|
515
|
-
...parameters.msg.payload,
|
|
516
|
-
},
|
|
657
|
+
params,
|
|
517
658
|
);
|
|
518
659
|
|
|
519
660
|
return response;
|
|
@@ -521,132 +662,20 @@ let OpenaiApi = (function () {
|
|
|
521
662
|
|
|
522
663
|
async listRunSteps(parameters) {
|
|
523
664
|
const openai = new OpenAI(this.clientParams);
|
|
524
|
-
const thread_id = parameters.msg.payload
|
|
525
|
-
const
|
|
526
|
-
delete parameters.msg.payload.thread_id;
|
|
527
|
-
delete parameters.msg.payload.run_id;
|
|
528
|
-
|
|
529
|
-
const response = await openai.beta.threads.runs.steps.list(
|
|
530
|
-
thread_id,
|
|
531
|
-
run_id,
|
|
532
|
-
{
|
|
533
|
-
...parameters.msg.payload,
|
|
534
|
-
},
|
|
535
|
-
);
|
|
665
|
+
const { thread_id, run_id, ...params } = parameters.msg.payload;
|
|
666
|
+
const list = await openai.beta.threads.runs.steps.list(run_id, params);
|
|
536
667
|
|
|
537
|
-
return
|
|
668
|
+
return [...list.data];
|
|
538
669
|
}
|
|
539
670
|
|
|
540
671
|
async getRunStep(parameters) {
|
|
541
672
|
const openai = new OpenAI(this.clientParams);
|
|
542
|
-
const thread_id = parameters.msg.payload
|
|
543
|
-
const run_id = parameters.msg.payload.run_id;
|
|
544
|
-
const step_id = parameters.msg.payload.step_id;
|
|
545
|
-
|
|
673
|
+
const { thread_id, run_id, step_id, ...params } = parameters.msg.payload;
|
|
546
674
|
const response = await openai.beta.threads.runs.steps.retrieve(
|
|
547
675
|
thread_id,
|
|
548
676
|
run_id,
|
|
549
677
|
step_id,
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
return response;
|
|
553
|
-
}
|
|
554
|
-
|
|
555
|
-
async listAssistantFiles(parameters) {
|
|
556
|
-
const openai = new OpenAI(this.clientParams);
|
|
557
|
-
const assistant_id = parameters.msg.payload.assistant_id;
|
|
558
|
-
delete parameters.msg.payload.assistant_id;
|
|
559
|
-
|
|
560
|
-
const response = await openai.beta.assistants.files.list(assistant_id, {
|
|
561
|
-
...parameters.msg.payload,
|
|
562
|
-
});
|
|
563
|
-
|
|
564
|
-
return response.body;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
async createAssistantFile(parameters) {
|
|
568
|
-
const openai = new OpenAI(this.clientParams);
|
|
569
|
-
const assistant_id = parameters.msg.payload.assistant_id;
|
|
570
|
-
delete parameters.msg.payload.assistant_id;
|
|
571
|
-
|
|
572
|
-
const response = await openai.beta.assistants.files.create(assistant_id, {
|
|
573
|
-
...parameters.msg.payload,
|
|
574
|
-
});
|
|
575
|
-
|
|
576
|
-
return response;
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
async getAssistantFile(parameters) {
|
|
580
|
-
const openai = new OpenAI(this.clientParams);
|
|
581
|
-
const assistant_id = parameters.msg.payload.assistant_id;
|
|
582
|
-
const file_id = parameters.msg.payload.file_id;
|
|
583
|
-
delete parameters.msg.payload.assistant_id;
|
|
584
|
-
delete parameters.msg.payload.file_id;
|
|
585
|
-
|
|
586
|
-
const response = await openai.beta.assistants.files.retrieve(
|
|
587
|
-
assistant_id,
|
|
588
|
-
file_id,
|
|
589
|
-
{
|
|
590
|
-
...parameters.msg.payload,
|
|
591
|
-
},
|
|
592
|
-
);
|
|
593
|
-
|
|
594
|
-
return response;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
async deleteAssistantFile(parameters) {
|
|
598
|
-
const openai = new OpenAI(this.clientParams);
|
|
599
|
-
const assistant_id = parameters.msg.payload.assistant_id;
|
|
600
|
-
const file_id = parameters.msg.payload.file_id;
|
|
601
|
-
delete parameters.msg.payload.assistant_id;
|
|
602
|
-
delete parameters.msg.payload.file_id;
|
|
603
|
-
|
|
604
|
-
const response = await openai.beta.assistants.files.del(
|
|
605
|
-
assistant_id,
|
|
606
|
-
file_id,
|
|
607
|
-
{
|
|
608
|
-
...parameters.msg.payload,
|
|
609
|
-
},
|
|
610
|
-
);
|
|
611
|
-
|
|
612
|
-
return response;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
async listMessageFiles(parameters) {
|
|
616
|
-
const openai = new OpenAI(this.clientParams);
|
|
617
|
-
const thread_id = parameters.msg.payload.thread_id;
|
|
618
|
-
const message_id = parameters.msg.payload.message_id;
|
|
619
|
-
delete parameters.msg.payload.thread_id;
|
|
620
|
-
delete parameters.msg.payload.message_id;
|
|
621
|
-
|
|
622
|
-
const response = await openai.beta.threads.messages.files.list(
|
|
623
|
-
thread_id,
|
|
624
|
-
message_id,
|
|
625
|
-
{
|
|
626
|
-
...parameters.msg.payload,
|
|
627
|
-
},
|
|
628
|
-
);
|
|
629
|
-
|
|
630
|
-
return response;
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
async getMessageFile(parameters) {
|
|
634
|
-
const openai = new OpenAI(this.clientParams);
|
|
635
|
-
const thread_id = parameters.msg.payload.thread_id;
|
|
636
|
-
const message_id = parameters.msg.payload.message_id;
|
|
637
|
-
const file_id = parameters.msg.payload.file_id;
|
|
638
|
-
|
|
639
|
-
delete parameters.msg.payload.thread_id;
|
|
640
|
-
delete parameters.msg.payload.message_id;
|
|
641
|
-
delete parameters.msg.payload.file_id;
|
|
642
|
-
|
|
643
|
-
const response = await openai.beta.threads.messages.files.retrieve(
|
|
644
|
-
thread_id,
|
|
645
|
-
message_id,
|
|
646
|
-
file_id,
|
|
647
|
-
{
|
|
648
|
-
...parameters.msg.payload,
|
|
649
|
-
},
|
|
678
|
+
params,
|
|
650
679
|
);
|
|
651
680
|
|
|
652
681
|
return response;
|