@inductiv/node-red-openai-api 0.3.9 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib.js CHANGED
@@ -1,788 +1,868 @@
1
- var OpenaiApi = (function () {
1
+ let OpenaiApi = (function () {
2
2
  "use strict";
3
3
 
4
- const axios = require("axios");
5
- const FormData = require("form-data"); // Only if you handle form data
4
+ const fs = require("fs");
5
+ const OpenAI = require("openai").OpenAI;
6
6
 
7
7
  class OpenaiApi {
8
- constructor(options) {
9
- this.apiKey =
10
- typeof options === "object"
11
- ? options.apiKey
12
- ? options.apiKey
13
- : {}
14
- : {};
15
- }
8
+ async createChatCompletion(parameters) {
9
+ let node = parameters._node;
10
+ delete parameters._node;
11
+
12
+ const clientParams = {
13
+ apiKey: parameters.apiKey,
14
+ baseURL: parameters.apiBase,
15
+ organization: parameters.organization,
16
+ }
16
17
 
17
- setApiKey(value, headerOrQueryName, isQuery) {
18
- this.apiKey.value = value;
19
- this.apiKey.headerOrQueryName = headerOrQueryName;
20
- this.apiKey.isQuery = isQuery;
21
- }
22
- setApiBase(apiBase) {
23
- this.domain = apiBase;
24
- }
18
+ const openai = new OpenAI(clientParams);
19
+ const response = await openai.chat.completions.create({
20
+ ...parameters.payload,
21
+ });
25
22
 
26
- setOrganizationIdHeader(organizationId) {
27
- this.organizationId = organizationId;
23
+ if (parameters.payload.stream) {
24
+ for await (const chunk of response) {
25
+ node.send(chunk);
26
+ }
27
+ return { code: 0, status: "complete" };
28
+ } else {
29
+ return response;
30
+ }
28
31
  }
29
32
 
30
- setAuthHeaders(headerParams) {
31
- var headers = headerParams ? headerParams : {};
32
- if (!this.apiKey.isQuery && this.apiKey.headerOrQueryName) {
33
- headers[this.apiKey.headerOrQueryName] = `Bearer ${this.apiKey.value}`;
33
+ async createImage(parameters) {
34
+
35
+ const clientParams = {
36
+ apiKey: parameters.apiKey,
37
+ baseURL: parameters.apiBase,
38
+ organization: parameters.organization,
34
39
  }
35
- return headers;
36
- }
37
40
 
38
- setNodeRef(node) {
39
- this.node = node;
40
- }
41
+ const openai = new OpenAI(clientParams);
42
+ const response = await openai.images.generate({
43
+ ...parameters.payload,
44
+ });
41
45
 
42
- getFromEndpoint(path, parameters, expectedQueryParams, customHeaders = {}) {
43
- return new Promise((resolve, reject) => {
44
- var domain = this.domain;
45
- var organizationId = this.organizationId;
46
- var queryParameters = {};
47
- var baseHeaders = {};
46
+ return response;
47
+ }
48
48
 
49
- baseHeaders = this.setAuthHeaders(headers);
50
- baseHeaders["Accept"] = "application/json";
51
- if (organizationId) {
52
- customHeaders["OpenAI-Organization"] = organizationId;
53
- }
49
+ async createImageEdit(parameters) {
50
+ const clientParams = {
51
+ apiKey: parameters.apiKey,
52
+ baseURL: parameters.apiBase,
53
+ organization: parameters.organization,
54
+ }
55
+ const openai = new OpenAI(clientParams);
54
56
 
55
- var headers = {
56
- ...baseHeaders,
57
- ...customHeaders,
58
- };
59
-
60
- // Only add query parameters if they are expected and exist
61
- if (expectedQueryParams) {
62
- expectedQueryParams.forEach((param) => {
63
- if (parameters.body[param] !== undefined) {
64
- queryParameters[param] = parameters.body[param];
65
- }
66
- });
67
- }
57
+ parameters.payload.image = fs.createReadStream(parameters.payload.image);
58
+ if (parameters.payload.mask) {
59
+ parameters.payload.mask = fs.createReadStream(parameters.payload.mask);
60
+ }
68
61
 
69
- // Merge any additional query parameters from the parameters object
70
- queryParameters = mergeQueryParams(parameters, queryParameters);
71
-
72
- // Axios request configuration
73
- const config = {
74
- method: "GET",
75
- url: domain + path,
76
- headers: headers,
77
- params: queryParameters,
78
- };
79
-
80
- // Axios GET request
81
- axios(config)
82
- .then((response) => {
83
- resolve(response);
84
- })
85
- .catch((error) => {
86
- reject(error);
87
- });
62
+ const response = await openai.images.edit({
63
+ ...parameters.payload,
88
64
  });
65
+
66
+ return response;
89
67
  }
90
68
 
91
- postToEndpoint(
92
- path,
93
- parameters,
94
- expectedQueryParams,
95
- contentType,
96
- filePath,
97
- customHeaders = {},
98
- ) {
99
- return new Promise((resolve, reject) => {
100
- const _path = require("path");
101
-
102
- parameters = parameters || {};
103
- var domain = this.domain;
104
- var organizationId = this.organizationId;
105
- var queryParameters = {},
106
- baseHeaders = {},
107
- data;
108
-
109
- baseHeaders = this.setAuthHeaders(baseHeaders);
110
- baseHeaders["Accept"] = "application/json";
111
-
112
- if (organizationId) {
113
- customHeaders["OpenAI-Organization"] = organizationId;
114
- }
69
+ async createImageVariation(parameters) {
70
+ const clientParams = {
71
+ apiKey: parameters.apiKey,
72
+ baseURL: parameters.apiBase,
73
+ organization: parameters.organization,
74
+ }
75
+ const openai = new OpenAI(clientParams);
115
76
 
116
- var headers = {
117
- ...baseHeaders,
118
- ...customHeaders,
119
- };
120
-
121
- // Determine the Content-Type
122
- if (contentType === "form-data") {
123
- var formData = new FormData();
124
-
125
- Object.entries(parameters.body).forEach(([key, value]) => {
126
- if (value instanceof Buffer) {
127
- if (!filePath) {
128
- throw new Error(
129
- "msg.payload must include a `filename` property.",
130
- );
131
- }
132
-
133
- const filename = _path.basename(filePath);
134
- formData.append(key, value, filename);
135
- } else {
136
- if (parameters.body[key] !== undefined) {
137
- formData.append(key, value);
138
- }
139
- }
140
- });
141
-
142
- data = formData;
143
-
144
- let formHeaders = formData.getHeaders();
145
- Object.assign(headers, formHeaders);
146
- } else {
147
- // Handle JSON payloads
148
- headers["Content-Type"] = "application/json";
149
- data = parameters.body || {};
150
- }
77
+ parameters.payload.image = fs.createReadStream(parameters.payload.image);
78
+ const response = await openai.images.createVariation({
79
+ ...parameters.payload,
80
+ });
151
81
 
152
- // Add expected query parameters to the queryParameters object
153
- if (expectedQueryParams) {
154
- expectedQueryParams.forEach((param) => {
155
- if (parameters.body[param] !== undefined) {
156
- queryParameters[param] = parameters.body[param];
157
- }
158
- });
159
- }
82
+ return response;
83
+ }
84
+
85
+ async createEmbedding(parameters) {
86
+ const clientParams = {
87
+ apiKey: parameters.apiKey,
88
+ baseURL: parameters.apiBase,
89
+ organization: parameters.organization,
90
+ }
91
+ const openai = new OpenAI(clientParams);
160
92
 
161
- // Merge any additional query parameters from the parameters object
162
- queryParameters = mergeQueryParams(parameters.body, queryParameters);
163
-
164
- // Axios request configuration
165
- const config = {
166
- method: "POST",
167
- url: domain + path,
168
- headers: headers,
169
- params: queryParameters,
170
- data: data,
171
- responseType: data.stream === true ? "stream" : "json",
172
- };
173
-
174
- axios(config)
175
- .then((response) => {
176
- if (config.responseType === "stream") {
177
- // Handle the stream response
178
- response.data
179
- .on("data", (chunk) => {
180
- // Convert chunk from Uint8Array to string
181
- const chunkAsString = new TextDecoder().decode(chunk);
182
-
183
- // Emit converted data chunks as Node-RED messages
184
- this.node.send({ payload: chunkAsString });
185
- })
186
- .on("end", () => {
187
- // Handle the end of the stream
188
- resolve({ payload: "Stream ended" });
189
- })
190
- .on("error", (err) => {
191
- // Handle any errors
192
- reject(err);
193
- });
194
- } else {
195
- // Handle non-stream response (e.g., JSON)
196
- resolve(response);
197
- }
198
- })
199
- .catch((error) => {
200
- reject(error);
201
- });
93
+ const response = await openai.embeddings.create({
94
+ ...parameters.payload,
202
95
  });
96
+
97
+ return response;
203
98
  }
204
99
 
205
- deleteFromEndpoint(
206
- path,
207
- parameters,
208
- expectedQueryParams,
209
- customHeaders = {},
210
- ) {
211
- return new Promise((resolve, reject) => {
212
- parameters = parameters || {};
213
- var domain = this.domain;
214
- var organizationId = this.organizationId;
215
- var queryParameters = {},
216
- baseHeaders = {};
217
-
218
- baseHeaders = this.setAuthHeaders(headers);
219
- baseHeaders["Accept"] = "application/json";
220
-
221
- if (organizationId) {
222
- customHeaders["OpenAI-Organization"] = organizationId;
223
- }
100
+ async createSpeech(parameters) {
101
+ const clientParams = {
102
+ apiKey: parameters.apiKey,
103
+ baseURL: parameters.apiBase,
104
+ organization: parameters.organization,
105
+ }
106
+ const openai = new OpenAI(clientParams);
224
107
 
225
- var headers = {
226
- ...baseHeaders,
227
- ...customHeaders,
228
- };
229
-
230
- // Only add query parameters if they are expected and exist
231
- if (expectedQueryParams) {
232
- expectedQueryParams.forEach((param) => {
233
- if (parameters[param] !== undefined) {
234
- queryParameters[param] = parameters.body[param];
235
- }
236
- });
237
- }
108
+ const audio = await openai.audio.speech.create({ ...parameters.payload });
109
+ const response = Buffer.from(await audio.arrayBuffer());
238
110
 
239
- // Merge any additional query parameters from the parameters object
240
- queryParameters = mergeQueryParams(parameters, queryParameters);
241
-
242
- // Axios request configuration
243
- const config = {
244
- method: "DELETE",
245
- url: domain + path,
246
- headers: headers,
247
- params: queryParameters,
248
- };
249
-
250
- // Axios DELETE request
251
- axios(config)
252
- .then((response) => {
253
- resolve(response);
254
- })
255
- .catch((error) => {
256
- reject(error);
257
- });
258
- });
111
+ return response;
259
112
  }
260
113
 
261
- createChatCompletion(parameters) {
262
- const response = this.postToEndpoint("/chat/completions", parameters);
114
+ async createTranscription(parameters) {
115
+ const clientParams = {
116
+ apiKey: parameters.apiKey,
117
+ baseURL: parameters.apiBase,
118
+ organization: parameters.organization,
119
+ }
120
+ const openai = new OpenAI(clientParams);
121
+
122
+ parameters.payload.file = fs.createReadStream(parameters.payload.file);
123
+
124
+ const response = await openai.audio.transcriptions.create({
125
+ ...parameters.payload,
126
+ });
127
+
263
128
  return response;
264
129
  }
265
- createImage(parameters) {
266
- return this.postToEndpoint("/images/generations", parameters);
267
- }
268
- createImageEdit(parameters) {
269
- const filename = parameters.body.filename;
270
- delete parameters.body.filename;
271
130
 
272
- return this.postToEndpoint(
273
- "/images/edits",
274
- parameters,
275
- null,
276
- "form-data",
277
- filename,
278
- );
279
- }
280
- createImageVariation(parameters) {
281
- const filename = parameters.body.filename;
282
- delete parameters.body.filename;
131
+ async createTranslation(parameters) {
132
+ const clientParams = {
133
+ apiKey: parameters.apiKey,
134
+ baseURL: parameters.apiBase,
135
+ organization: parameters.organization,
136
+ }
137
+ const openai = new OpenAI(clientParams);
283
138
 
284
- return this.postToEndpoint(
285
- "/images/variations",
286
- parameters,
287
- null,
288
- "form-data",
289
- filename,
290
- );
139
+ parameters.payload.file = fs.createReadStream(parameters.payload.file);
140
+ const response = await openai.audio.translations.create({
141
+ ...parameters.payload,
142
+ });
143
+
144
+ return response;
291
145
  }
292
- createEmbedding(parameters) {
293
- return this.postToEndpoint("/embeddings", parameters);
146
+
147
+ async listFiles(parameters) {
148
+ const clientParams = {
149
+ apiKey: parameters.apiKey,
150
+ baseURL: parameters.apiBase,
151
+ organization: parameters.organization,
152
+ }
153
+ const openai = new OpenAI(clientParams);
154
+
155
+ const list = await openai.files.list({
156
+ ...parameters.payload,
157
+ });
158
+
159
+ let files = [];
160
+ for await (const file of list) {
161
+ files.push(file);
162
+ }
163
+
164
+ return files;
294
165
  }
295
- createSpeech(parameters) {
296
- return this.postToEndpoint("/audio/speech", parameters);
166
+
167
+ async createFile(parameters) {
168
+ const clientParams = {
169
+ apiKey: parameters.apiKey,
170
+ baseURL: parameters.apiBase,
171
+ organization: parameters.organization,
172
+ }
173
+ const openai = new OpenAI(clientParams);
174
+
175
+ parameters.payload.file = fs.createReadStream(parameters.payload.file);
176
+ const response = await openai.files.create({
177
+ ...parameters.payload,
178
+ });
179
+
180
+ return response;
297
181
  }
298
- createTranscription(parameters) {
299
- const filename = parameters.body.filename;
300
- delete parameters.body.filename;
182
+ async deleteFile(parameters) {
183
+ const clientParams = {
184
+ apiKey: parameters.apiKey,
185
+ baseURL: parameters.apiBase,
186
+ organization: parameters.organization,
187
+ }
188
+ const openai = new OpenAI(clientParams);
301
189
 
302
- return this.postToEndpoint(
303
- "/audio/transcriptions",
304
- parameters,
305
- null,
306
- "form-data",
307
- filename,
308
- );
190
+ const response = await openai.files.del({
191
+ ...parameters.payload,
192
+ });
193
+
194
+ return response;
309
195
  }
310
- createTranslation(parameters) {
311
- const filename = parameters.body.filename;
312
- delete parameters.body.filename;
196
+ async retrieveFile(parameters) {
197
+ const clientParams = {
198
+ apiKey: parameters.apiKey,
199
+ baseURL: parameters.apiBase,
200
+ organization: parameters.organization,
201
+ }
202
+ const openai = new OpenAI(clientParams);
313
203
 
314
- return this.postToEndpoint(
315
- "/audio/translations",
316
- parameters,
317
- null,
318
- "form-data",
319
- filename,
320
- );
204
+ const file_id = parameters.payload.file_id;
205
+ delete parameters.payload.file_id;
206
+
207
+ const response = await openai.files.retrieve(file_id, {
208
+ ...parameters.payload,
209
+ });
210
+
211
+ return response;
321
212
  }
322
- listFiles(parameters) {
323
- const expectedQueryParameters = ["purpose"];
324
- return this.getFromEndpoint(
325
- "/files",
326
- parameters,
327
- expectedQueryParameters,
328
- );
213
+ async downloadFile(parameters) {
214
+ const clientParams = {
215
+ apiKey: parameters.apiKey,
216
+ baseURL: parameters.apiBase,
217
+ organization: parameters.organization,
218
+ }
219
+ const openai = new OpenAI(clientParams);
220
+
221
+ const file_id = parameters.payload.file_id;
222
+ delete parameters.payload.file_id;
223
+
224
+ const response = await openai.files.retrieveContent(file_id, {
225
+ ...parameters.payload,
226
+ });
227
+
228
+ return response;
329
229
  }
330
- createFile(parameters) {
331
- let filename;
230
+ async createFineTuningJob(parameters) {
231
+ const clientParams = {
232
+ apiKey: parameters.apiKey,
233
+ baseURL: parameters.apiBase,
234
+ organization: parameters.organization,
235
+ }
236
+ const openai = new OpenAI(clientParams);
332
237
 
333
- // reference the incoming filename
334
- filename = parameters.body.filename;
335
- delete parameters.body.filename;
238
+ const response = await openai.fineTuning.jobs.create({
239
+ ...parameters.payload,
240
+ });
336
241
 
337
- return this.postToEndpoint(
338
- "/files",
339
- parameters,
340
- null,
341
- "form-data",
342
- filename,
343
- );
242
+ return response;
344
243
  }
345
- deleteFile(parameters) {
346
- const file_id = parameters.body.file_id;
347
- delete parameters.body.file_id;
348
- return this.deleteFromEndpoint(`/files/${file_id}`, parameters);
349
- }
350
- retrieveFile(parameters) {
351
- const file_id = parameters.body.file_id;
352
- delete parameters.body.file_id;
353
- return this.getFromEndpoint(`/files/${file_id}`, parameters);
354
- }
355
- downloadFile(parameters) {
356
- const file_id = parameters.body.file_id;
357
- delete parameters.body.file_id;
358
- return this.getFromEndpoint(`/files/${file_id}/content`, parameters);
359
- }
360
- createFineTuningJob(parameters) {
361
- return this.postToEndpoint("/fine_tuning/jobs", parameters);
362
- }
363
- listPaginatedFineTuningJobs(parameters) {
364
- const expectedQueryParameters = ["after", "limit"];
365
- return this.getFromEndpoint(
366
- "/fine_tuning/jobs",
367
- parameters,
368
- expectedQueryParameters,
369
- );
244
+ async listPaginatedFineTuningJobs(parameters) {
245
+ const clientParams = {
246
+ apiKey: parameters.apiKey,
247
+ baseURL: parameters.apiBase,
248
+ organization: parameters.organization,
249
+ }
250
+ const openai = new OpenAI(clientParams);
251
+
252
+ const list = await openai.fineTuning.jobs.list({
253
+ ...parameters.payload,
254
+ });
255
+
256
+ let response = [];
257
+ for await (const fineTune of list) {
258
+ response.push(fineTune);
259
+ }
260
+
261
+ return response;
370
262
  }
371
- retrieveFineTuningJob(parameters) {
372
- const fine_tuning_job_id = parameters.body.fine_tuning_job_id;
373
- delete parameters.body.fine_tuning_job_id;
374
- return this.getFromEndpoint(
375
- `/fine_tuning/jobs/${fine_tuning_job_id}`,
376
- parameters,
263
+ async retrieveFineTuningJob(parameters) {
264
+ const clientParams = {
265
+ apiKey: parameters.apiKey,
266
+ baseURL: parameters.apiBase,
267
+ organization: parameters.organization,
268
+ }
269
+ const openai = new OpenAI(clientParams);
270
+
271
+ const response = await openai.fineTuning.jobs.retrieve(
272
+ parameters.payload.fine_tuning_job_id,
377
273
  );
274
+
275
+ return response;
378
276
  }
379
- listFineTuningEvents(parameters) {
380
- const expectedQueryParameters = ["after", "limit"];
381
- const fine_tuning_job_id = parameters.body.fine_tuning_job_id;
382
- delete parameters.body.fine_tuning_job_id;
277
+ async listFineTuningEvents(parameters) {
278
+ const clientParams = {
279
+ apiKey: parameters.apiKey,
280
+ baseURL: parameters.apiBase,
281
+ organization: parameters.organization,
282
+ }
283
+ const openai = new OpenAI(clientParams);
383
284
 
384
- return this.getFromEndpoint(
385
- `/fine_tuning/jobs/${fine_tuning_job_id}/events`,
386
- parameters,
387
- expectedQueryParameters,
285
+ let response = [];
286
+ const list = await openai.fineTuning.jobs.listEvents(
287
+ parameters.payload.fine_tuning_job_id,
388
288
  );
289
+ for await (const fineTuneEvent of list) {
290
+ response.push(fineTuneEvent);
291
+ }
292
+ return response;
389
293
  }
390
- cancelFineTuningJob(parameters) {
391
- const fine_tuning_job_id = parameters.body.fine_tuning_job_id;
392
- delete parameters.body.fine_tuning_job_id;
393
- return this.postToEndpoint(
394
- `/fine_tuning/jobs/${fine_tuning_job_id}/cancel`,
395
- parameters,
294
+ async cancelFineTuningJob(parameters) {
295
+ const clientParams = {
296
+ apiKey: parameters.apiKey,
297
+ baseURL: parameters.apiBase,
298
+ organization: parameters.organization,
299
+ }
300
+ const openai = new OpenAI(clientParams);
301
+
302
+ const response = await openai.fineTuning.jobs.cancel(
303
+ parameters.payload.fine_tuning_job_id,
396
304
  );
305
+
306
+ return response;
397
307
  }
398
- listModels(parameters) {
399
- return this.getFromEndpoint("/models", parameters);
308
+ async listModels(parameters) {
309
+ const clientParams = {
310
+ apiKey: parameters.apiKey,
311
+ baseURL: parameters.apiBase,
312
+ organization: parameters.organization,
313
+ }
314
+ const openai = new OpenAI(clientParams);
315
+
316
+ const response = await openai.models.list();
317
+
318
+ return response.body;
400
319
  }
401
- retrieveModel(parameters) {
402
- const model = parameters.body.model;
403
- delete parameters.body.model;
404
- return this.getFromEndpoint(`/models/${model}`, parameters);
320
+ async retrieveModel(parameters) {
321
+ const clientParams = {
322
+ apiKey: parameters.apiKey,
323
+ baseURL: parameters.apiBase,
324
+ organization: parameters.organization,
325
+ }
326
+ const openai = new OpenAI(clientParams);
327
+
328
+ const model = parameters.payload.model;
329
+ const response = await openai.models.retrieve(model);
330
+
331
+ return response;
405
332
  }
406
- deleteModel(parameters) {
407
- const model = parameters.body.model;
408
- delete parameters.body.model;
409
- return this.deleteFromEndpoint(`/models/${model}`, parameters);
333
+ async deleteModel(parameters) {
334
+ const clientParams = {
335
+ apiKey: parameters.apiKey,
336
+ baseURL: parameters.apiBase,
337
+ organization: parameters.organization,
338
+ }
339
+ const openai = new OpenAI(clientParams);
340
+
341
+ const model = parameters.payload.model;
342
+ const response = await openai.models.del(model);
343
+
344
+ return response;
410
345
  }
411
- createModeration(parameters) {
412
- return this.postToEndpoint("/moderations", parameters);
346
+ async createModeration(parameters) {
347
+ const clientParams = {
348
+ apiKey: parameters.apiKey,
349
+ baseURL: parameters.apiBase,
350
+ organization: parameters.organization,
351
+ }
352
+ const openai = new OpenAI(clientParams);
353
+
354
+ const response = await openai.moderations.create(parameters.payload);
355
+ return response;
413
356
  }
414
- listAssistants(parameters) {
415
- const expectedQueryParameters = ["limit", "order", "after", "before"];
416
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
357
+ async listAssistants(parameters) {
358
+ const clientParams = {
359
+ apiKey: parameters.apiKey,
360
+ baseURL: parameters.apiBase,
361
+ organization: parameters.organization,
362
+ }
363
+ const openai = new OpenAI(clientParams);
417
364
 
418
- return this.getFromEndpoint(
419
- "/assistants",
420
- parameters,
421
- expectedQueryParameters,
422
- customHeaders,
423
- );
365
+ const response = await openai.beta.assistants.list({
366
+ ...parameters.payload,
367
+ });
368
+
369
+ return response.body;
424
370
  }
425
- createAssistant(parameters) {
426
- var customHeaders = { "OpenAI-Beta": "assistants=v1" };
371
+ async createAssistant(parameters) {
372
+ const clientParams = {
373
+ apiKey: parameters.apiKey,
374
+ baseURL: parameters.apiBase,
375
+ organization: parameters.organization,
376
+ }
377
+ const openai = new OpenAI(clientParams);
427
378
 
428
- return this.postToEndpoint(
429
- "/assistants",
430
- parameters,
431
- null,
432
- null,
433
- null,
434
- customHeaders,
435
- );
379
+ const response = await openai.beta.assistants.create({
380
+ ...parameters.payload,
381
+ });
382
+
383
+ return response;
436
384
  }
437
- getAssistant(parameters) {
438
- const assistantId = parameters.body.assistant_id;
439
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
440
- delete parameters.body.assistant_id;
441
- return this.getFromEndpoint(
442
- `/assistants/${assistantId}`,
443
- parameters,
444
- null,
445
- customHeaders,
446
- );
385
+ async getAssistant(parameters) {
386
+ const clientParams = {
387
+ apiKey: parameters.apiKey,
388
+ baseURL: parameters.apiBase,
389
+ organization: parameters.organization,
390
+ }
391
+ const openai = new OpenAI(clientParams);
392
+
393
+ const id = parameters.payload.assistant_id;
394
+ const response = await openai.beta.assistants.retrieve(id);
395
+
396
+ return response;
447
397
  }
448
- modifyAssistant(parameters) {
449
- const assistant_id = parameters.body.assistant_id;
450
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
451
- delete parameters.body.assistant_id;
452
- return this.postToEndpoint(
453
- `/assistants/${assistant_id}`,
454
- parameters,
455
- null,
456
- null,
457
- null,
458
- customHeaders,
459
- );
398
+ async modifyAssistant(parameters) {
399
+ const clientParams = {
400
+ apiKey: parameters.apiKey,
401
+ baseURL: parameters.apiBase,
402
+ organization: parameters.organization,
403
+ }
404
+ const openai = new OpenAI(clientParams);
405
+
406
+ const id = parameters.payload.assistant_id;
407
+ delete parameters.payload.assistant_id;
408
+
409
+ const response = await openai.beta.assistants.update(id, {
410
+ ...parameters.payload,
411
+ });
412
+
413
+ return response;
460
414
  }
461
- deleteAssistant(parameters) {
462
- const assistant_id = parameters.body.assistant_id;
463
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
464
- delete parameters.body.assistant_id;
465
- return this.deleteFromEndpoint(
466
- `/assistants/${assistant_id}`,
467
- parameters,
468
- null,
469
- customHeaders,
470
- );
415
+ async deleteAssistant(parameters) {
416
+ const clientParams = {
417
+ apiKey: parameters.apiKey,
418
+ baseURL: parameters.apiBase,
419
+ organization: parameters.organization,
420
+ }
421
+ const openai = new OpenAI(clientParams);
422
+
423
+ const id = parameters.payload.assistant_id;
424
+ const response = await openai.beta.assistants.del(id);
425
+
426
+ return response;
471
427
  }
472
- createThread(parameters) {
473
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
474
- return this.postToEndpoint(
475
- "/threads",
476
- parameters,
477
- null,
478
- null,
479
- null,
480
- customHeaders,
481
- );
428
+ async createThread(parameters) {
429
+ const clientParams = {
430
+ apiKey: parameters.apiKey,
431
+ baseURL: parameters.apiBase,
432
+ organization: parameters.organization,
433
+ }
434
+ const openai = new OpenAI(clientParams);
435
+
436
+ const response = await openai.beta.threads.create({
437
+ ...parameters.payload,
438
+ });
439
+
440
+ return response;
482
441
  }
483
- getThread(parameters) {
484
- const threadId = parameters.body.thread_id;
485
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
486
- delete parameters.body.thread_id;
487
- return this.getFromEndpoint(
488
- `/threads/${threadId}`,
489
- parameters,
490
- null,
491
- customHeaders,
492
- );
442
+ async getThread(parameters) {
443
+ const clientParams = {
444
+ apiKey: parameters.apiKey,
445
+ baseURL: parameters.apiBase,
446
+ organization: parameters.organization,
447
+ }
448
+ const openai = new OpenAI(clientParams);
449
+
450
+ const id = parameters.payload.thread_id;
451
+ const response = await openai.beta.threads.retrieve(id);
452
+
453
+ return response;
493
454
  }
494
- modifyThread(parameters) {
495
- const threadId = parameters.body.thread_id;
496
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
497
- delete parameters.body.thread_id;
498
- return this.postToEndpoint(
499
- `/threads/${threadId}`,
500
- parameters,
501
- null,
502
- null,
503
- null,
504
- customHeaders,
505
- );
455
+ async modifyThread(parameters) {
456
+ const clientParams = {
457
+ apiKey: parameters.apiKey,
458
+ baseURL: parameters.apiBase,
459
+ organization: parameters.organization,
460
+ }
461
+ const openai = new OpenAI(clientParams);
462
+
463
+ const id = parameters.payload.thread_id;
464
+ delete parameters.payload.thread_id;
465
+
466
+ const response = await openai.beta.threads.update(id, {
467
+ ...parameters.payload,
468
+ });
469
+
470
+ return response;
506
471
  }
507
- deleteThread(parameters) {
508
- const threadId = parameters.body.thread_id;
509
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
510
- delete parameters.body.thread_id;
511
- return this.deleteFromEndpoint(
512
- `/threads/${threadId}`,
513
- parameters,
514
- null,
515
- customHeaders,
516
- );
472
+ async deleteThread(parameters) {
473
+ const clientParams = {
474
+ apiKey: parameters.apiKey,
475
+ baseURL: parameters.apiBase,
476
+ organization: parameters.organization,
477
+ }
478
+ const openai = new OpenAI(clientParams);
479
+
480
+ const id = parameters.payload.thread_id;
481
+ const response = await openai.beta.threads.del(id);
482
+
483
+ return response;
517
484
  }
518
- listMessages(parameters) {
519
- const threadId = parameters.body.thread_id;
520
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
521
- const expectedQueryParameters = ["limit", "order", "after", "before"];
522
- delete parameters.body.thread_id;
523
- return this.getFromEndpoint(
524
- `/threads/${threadId}/messages`,
525
- parameters,
526
- expectedQueryParameters,
527
- customHeaders,
528
- );
485
+ async listMessages(parameters) {
486
+ const clientParams = {
487
+ apiKey: parameters.apiKey,
488
+ baseURL: parameters.apiBase,
489
+ organization: parameters.organization,
490
+ }
491
+ const openai = new OpenAI(clientParams);
492
+
493
+ const id = parameters.payload.thread_id;
494
+ const response = await openai.beta.threads.messages.list(id);
495
+
496
+ return response.body;
529
497
  }
530
- createMessage(parameters) {
531
- const threadId = parameters.body.thread_id;
532
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
533
- delete parameters.body.thread_id;
534
- return this.postToEndpoint(
535
- `/threads/${threadId}/messages`,
536
- parameters,
537
- null,
538
- null,
539
- null,
540
- customHeaders,
541
- );
498
+ async createMessage(parameters) {
499
+ const clientParams = {
500
+ apiKey: parameters.apiKey,
501
+ baseURL: parameters.apiBase,
502
+ organization: parameters.organization,
503
+ }
504
+ const openai = new OpenAI(clientParams);
505
+
506
+ const thread_id = parameters.payload.thread_id;
507
+ delete parameters.payload.thread_id;
508
+
509
+ const response = await openai.beta.threads.messages.create(thread_id, {
510
+ ...parameters.payload,
511
+ });
512
+
513
+ return response;
542
514
  }
543
- getMessage(parameters) {
544
- const threadId = parameters.body.thread_id;
545
- const messageId = parameters.body.message_id;
546
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
547
- delete parameters.body.thread_id;
548
- delete parameters.body.message_id;
549
- return this.getFromEndpoint(
550
- `/threads/${threadId}/messages/${messageId}`,
551
- parameters,
552
- null,
553
- customHeaders,
515
+ async getMessage(parameters) {
516
+ const clientParams = {
517
+ apiKey: parameters.apiKey,
518
+ baseURL: parameters.apiBase,
519
+ organization: parameters.organization,
520
+ }
521
+ const openai = new OpenAI(clientParams);
522
+
523
+ const thread_id = parameters.payload.thread_id;
524
+ const message_id = parameters.payload.message_id;
525
+
526
+ const response = await openai.beta.threads.messages.retrieve(
527
+ thread_id,
528
+ message_id,
554
529
  );
530
+
531
+ return response;
555
532
  }
556
- modifyMessage(parameters) {
557
- const threadId = parameters.body.thread_id;
558
- const messageId = parameters.body.message_id;
559
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
560
- delete parameters.body.thread_id;
561
- delete parameters.body.message_id;
562
- return this.postToEndpoint(
563
- `/threads/${threadId}/messages/${messageId}`,
564
- parameters,
565
- null,
566
- null,
567
- null,
568
- customHeaders,
533
+ async modifyMessage(parameters) {
534
+ const clientParams = {
535
+ apiKey: parameters.apiKey,
536
+ baseURL: parameters.apiBase,
537
+ organization: parameters.organization,
538
+ }
539
+ const openai = new OpenAI(clientParams);
540
+
541
+ const thread_id = parameters.payload.thread_id;
542
+ const message_id = parameters.payload.message_id;
543
+ delete parameters.payload.thread_id;
544
+ delete parameters.payload.message_id;
545
+
546
+ const response = await openai.beta.threads.messages.update(
547
+ thread_id,
548
+ message_id,
549
+ {
550
+ ...parameters.payload,
551
+ },
569
552
  );
570
- }
571
- createThreadAndRun(parameters) {
572
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
573
553
 
574
- return this.postToEndpoint(
575
- "/threads/runs",
576
- parameters,
577
- null,
578
- null,
579
- null,
580
- customHeaders,
581
- );
554
+ return response;
582
555
  }
583
- listRuns(parameters) {
584
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
585
- const expectedQueryParameters = ["limit", "order", "after", "before"];
586
- const threadId = parameters.body.thread_id;
587
- delete parameters.body.thread_id;
588
- return this.getFromEndpoint(
589
- `/threads/${threadId}/runs`,
590
- parameters,
591
- expectedQueryParameters,
592
- customHeaders,
593
- );
556
+ async createThreadAndRun(parameters) {
557
+ const clientParams = {
558
+ apiKey: parameters.apiKey,
559
+ baseURL: parameters.apiBase,
560
+ organization: parameters.organization,
561
+ }
562
+ const openai = new OpenAI(clientParams);
563
+
564
+ const response = await openai.beta.threads.createAndRun({
565
+ ...parameters.payload,
566
+ });
567
+
568
+ return response;
594
569
  }
595
- createRun(parameters) {
596
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
597
- const threadId = parameters.body.thread_id;
598
- delete parameters.body.thread_id;
599
- return this.postToEndpoint(
600
- `/threads/${threadId}/runs`,
601
- parameters,
602
- null,
603
- null,
604
- null,
605
- customHeaders,
606
- );
570
+ async listRuns(parameters) {
571
+ const clientParams = {
572
+ apiKey: parameters.apiKey,
573
+ baseURL: parameters.apiBase,
574
+ organization: parameters.organization,
575
+ }
576
+ const openai = new OpenAI(clientParams);
577
+
578
+ const thred_id = parameters.payload.thread_id;
579
+ delete parameters.payload.thread_id;
580
+
581
+ const response = await openai.beta.threads.runs.list(thred_id, {
582
+ ...parameters.payload,
583
+ });
584
+
585
+ return response.body;
607
586
  }
608
- getRun(parameters) {
609
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
610
- const threadId = parameters.body.thread_id;
611
- const runId = parameters.body.run_id;
612
- delete parameters.body.thread_id;
613
- delete parameters.body.run_id;
614
- return this.getFromEndpoint(
615
- `/threads/${threadId}/runs/${runId}`,
616
- parameters,
617
- null,
618
- customHeaders,
619
- );
587
+ async createRun(parameters) {
588
+ const clientParams = {
589
+ apiKey: parameters.apiKey,
590
+ baseURL: parameters.apiBase,
591
+ organization: parameters.organization,
592
+ }
593
+ const openai = new OpenAI(clientParams);
594
+
595
+ const thread_id = parameters.payload.thread_id;
596
+ delete parameters.payload.thread_id;
597
+
598
+ const response = await openai.beta.threads.runs.create(thread_id, {
599
+ ...parameters.payload,
600
+ });
601
+
602
+ return response;
620
603
  }
621
- modifyRun(parameters) {
622
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
623
- const threadId = parameters.body.thread_id;
624
- const runId = parameters.body.run_id;
625
- delete parameters.body.thread_id;
626
- delete parameters.body.run_id;
627
- return this.postToEndpoint(
628
- `/threads/${threadId}/runs/${runId}`,
629
- parameters,
630
- null,
631
- null,
632
- null,
633
- customHeaders,
604
+ async getRun(parameters) {
605
+ const clientParams = {
606
+ apiKey: parameters.apiKey,
607
+ baseURL: parameters.apiBase,
608
+ organization: parameters.organization,
609
+ }
610
+ const openai = new OpenAI(clientParams);
611
+
612
+ const thread_id = parameters.payload.thread_id;
613
+ const run_id = parameters.payload.run_id;
614
+ delete parameters.payload.thread_id;
615
+ delete parameters.payload.run_id;
616
+
617
+ const response = await openai.beta.threads.runs.retrieve(
618
+ thread_id,
619
+ run_id,
634
620
  );
621
+
622
+ return response;
635
623
  }
636
- submitToolOuputsToRun(parameters) {
637
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
638
- const threadId = parameters.body.thread_id;
639
- const runId = parameters.body.run_id;
640
- delete parameters.body.thread_id;
641
- delete parameters.body.run_id;
642
- return this.postToEndpoint(
643
- `/threads/${threadId}/runs/${runId}/submit_tool_outputs`,
644
- parameters,
645
- null,
646
- null,
647
- null,
648
- customHeaders,
624
+ async modifyRun(parameters) {
625
+ const clientParams = {
626
+ apiKey: parameters.apiKey,
627
+ baseURL: parameters.apiBase,
628
+ organization: parameters.organization,
629
+ }
630
+ const openai = new OpenAI(clientParams);
631
+
632
+ const thread_id = parameters.payload.thread_id;
633
+ const run_id = parameters.payload.run_id;
634
+ delete parameters.payload.thread_id;
635
+ delete parameters.payload.run_id;
636
+
637
+ const response = await openai.beta.threads.runs.update(
638
+ thread_id,
639
+ run_id,
640
+ {
641
+ ...parameters.payload,
642
+ },
649
643
  );
644
+
645
+ return response;
650
646
  }
651
- cancelRun(parameters) {
652
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
653
- const threadId = parameters.body.thread_id;
654
- const runId = parameters.body.run_id;
655
- delete parameters.body.thread_id;
656
- delete parameters.body.run_id;
657
- return this.postToEndpoint(
658
- `/threads/${threadId}/runs/${runId}/cancel`,
659
- parameters,
660
- null,
661
- null,
662
- null,
663
- customHeaders,
647
+ async submitToolOuputsToRun(parameters) {
648
+ const clientParams = {
649
+ apiKey: parameters.apiKey,
650
+ baseURL: parameters.apiBase,
651
+ organization: parameters.organization,
652
+ }
653
+ const openai = new OpenAI(clientParams);
654
+
655
+ const thread_id = parameters.payload.thread_id;
656
+ const run_id = parameters.payload.run_id;
657
+ delete parameters.payload.thread_id;
658
+ delete parameters.payload.run_id;
659
+
660
+ const response = await openai.beta.threads.runs.submitToolOutputs(
661
+ thread_id,
662
+ run_id,
663
+ {
664
+ ...parameters.payload,
665
+ },
664
666
  );
667
+
668
+ return response;
665
669
  }
666
- listRunSteps(parameters) {
667
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
668
- const threadId = parameters.body.thread_id;
669
- const runId = parameters.body.run_id;
670
- const expectedQueryParameters = ["limit", "order", "after", "before"];
671
- delete parameters.body.thread_id;
672
- delete parameters.body.run_id;
673
- return this.getFromEndpoint(
674
- `/threads/${threadId}/runs/${runId}/steps`,
675
- parameters,
676
- expectedQueryParameters,
677
- customHeaders,
670
+ async cancelRun(parameters) {
671
+ const clientParams = {
672
+ apiKey: parameters.apiKey,
673
+ baseURL: parameters.apiBase,
674
+ organization: parameters.organization,
675
+ }
676
+ const openai = new OpenAI(clientParams);
677
+
678
+ const thread_id = parameters.payload.thread_id;
679
+ const run_id = parameters.payload.run_id;
680
+ delete parameters.payload.thread_id;
681
+ delete parameters.payload.run_id;
682
+
683
+ const response = await openai.beta.threads.runs.cancel(
684
+ thread_id,
685
+ run_id,
686
+ {
687
+ ...parameters.payload,
688
+ },
678
689
  );
690
+
691
+ return response;
679
692
  }
680
- getRunStep(parameters) {
681
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
682
- const threadId = parameters.body.thread_id;
683
- const runId = parameters.body.run_id;
684
- const stepId = parameters.body.step_id;
685
- delete parameters.body.thread_id;
686
- delete parameters.body.step_id;
687
- return this.getFromEndpoint(
688
- `/threads/${threadId}/runs/${runId}/steps/${stepId}`,
689
- parameters,
690
- null,
691
- customHeaders,
693
+ async listRunSteps(parameters) {
694
+ const clientParams = {
695
+ apiKey: parameters.apiKey,
696
+ baseURL: parameters.apiBase,
697
+ organization: parameters.organization,
698
+ }
699
+ const openai = new OpenAI(clientParams);
700
+
701
+ const thread_id = parameters.payload.thread_id;
702
+ const run_id = parameters.payload.run_id;
703
+ delete parameters.payload.thread_id;
704
+ delete parameters.payload.run_id;
705
+
706
+ const response = await openai.beta.threads.runs.steps.list(
707
+ thread_id,
708
+ run_id,
709
+ {
710
+ ...parameters.payload,
711
+ },
692
712
  );
713
+
714
+ return response.body;
693
715
  }
694
- listAssistantFiles(parameters) {
695
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
696
- const assistantId = parameters.body.assistant_id;
697
- const expectedQueryParameters = ["limit", "order", "after", "before"];
698
- delete parameters.body.assistant_id;
699
- return this.getFromEndpoint(
700
- `/assistants/${assistantId}/files`,
701
- parameters,
702
- expectedQueryParameters,
703
- customHeaders,
716
+ async getRunStep(parameters) {
717
+ const clientParams = {
718
+ apiKey: parameters.apiKey,
719
+ baseURL: parameters.apiBase,
720
+ organization: parameters.organization,
721
+ }
722
+ const openai = new OpenAI(clientParams);
723
+
724
+ const thread_id = parameters.payload.thread_id;
725
+ const run_id = parameters.payload.run_id;
726
+ const step_id = parameters.payload.step_id;
727
+
728
+ const response = await openai.beta.threads.runs.steps.retrieve(
729
+ thread_id,
730
+ run_id,
731
+ step_id,
704
732
  );
733
+
734
+ return response;
705
735
  }
706
- createAssistantFile(parameters) {
707
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
708
- const assistantId = parameters.body.assistant_id;
709
- delete parameters.body.assistant_id;
710
- return this.postToEndpoint(
711
- `/assistants/${assistantId}/files`,
712
- parameters,
713
- null,
714
- null,
715
- null,
716
- customHeaders,
717
- );
736
+ async listAssistantFiles(parameters) {
737
+ const clientParams = {
738
+ apiKey: parameters.apiKey,
739
+ baseURL: parameters.apiBase,
740
+ organization: parameters.organization,
741
+ }
742
+ const openai = new OpenAI(clientParams);
743
+
744
+ const assistant_id = parameters.payload.assistant_id;
745
+ delete parameters.payload.assistant_id;
746
+
747
+ const response = await openai.beta.assistants.files.list(assistant_id, {
748
+ ...parameters.payload,
749
+ });
750
+
751
+ return response.body;
718
752
  }
719
- getAssistantFile(parameters) {
720
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
721
- const assistantId = parameters.body.assistant_id;
722
- const fileId = parameters.body.file_id;
723
- delete parameters.body.assistant_id;
724
- delete parameters.body.file_id;
725
- return this.getFromEndpoint(
726
- `/assistants/${assistantId}/files/${fileId}`,
727
- parameters,
728
- null,
729
- customHeaders,
730
- );
753
+ async createAssistantFile(parameters) {
754
+ const clientParams = {
755
+ apiKey: parameters.apiKey,
756
+ baseURL: parameters.apiBase,
757
+ organization: parameters.organization,
758
+ }
759
+ const openai = new OpenAI(clientParams);
760
+
761
+ const assistant_id = parameters.payload.assistant_id;
762
+ delete parameters.payload.assistant_id;
763
+
764
+ const response = await openai.beta.assistants.files.create(assistant_id, {
765
+ ...parameters.payload,
766
+ });
767
+
768
+ return response;
731
769
  }
732
- deleteAssistantFile(parameters) {
733
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
734
- const assistantId = parameters.body.assistant_id;
735
- const fileId = parameters.body.file_id;
736
- delete parameters.body.assistant_id;
737
- delete parameters.body.file_id;
738
- return this.deleteFromEndpoint(
739
- `/assistants/${assistantId}/files/${fileId}`,
740
- parameters,
741
- null,
742
- customHeaders,
770
+ async getAssistantFile(parameters) {
771
+ const clientParams = {
772
+ apiKey: parameters.apiKey,
773
+ baseURL: parameters.apiBase,
774
+ organization: parameters.organization,
775
+ }
776
+ const openai = new OpenAI(clientParams);
777
+
778
+ const assistant_id = parameters.payload.assistant_id;
779
+ const file_id = parameters.payload.file_id;
780
+ delete parameters.payload.assistant_id;
781
+ delete parameters.payload.file_id;
782
+
783
+ const response = await openai.beta.assistants.files.retrieve(
784
+ assistant_id,
785
+ file_id,
786
+ {
787
+ ...parameters.payload,
788
+ },
743
789
  );
790
+
791
+ return response;
744
792
  }
745
- listMessageFiles(parameters) {
746
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
747
- const threadId = parameters.body.thread_id;
748
- const messageId = parameters.body.message_id;
749
- const expectedQueryParameters = ["limit", "order", "after", "before"];
750
- delete parameters.body.thread_id;
751
- delete parameters.body.message_id;
752
- return this.getFromEndpoint(
753
- `/threads/${threadId}/messages/${messageId}/files`,
754
- parameters,
755
- expectedQueryParameters,
756
- customHeaders,
793
+ async deleteAssistantFile(parameters) {
794
+ const clientParams = {
795
+ apiKey: parameters.apiKey,
796
+ baseURL: parameters.apiBase,
797
+ organization: parameters.organization,
798
+ }
799
+ const openai = new OpenAI(clientParams);
800
+
801
+ const assistant_id = parameters.payload.assistant_id;
802
+ const file_id = parameters.payload.file_id;
803
+ delete parameters.payload.assistant_id;
804
+ delete parameters.payload.file_id;
805
+
806
+ const response = await openai.beta.assistants.files.del(
807
+ assistant_id,
808
+ file_id,
809
+ {
810
+ ...parameters.payload,
811
+ },
757
812
  );
813
+
814
+ return response;
758
815
  }
759
- getMessageFile(parameters) {
760
- const customHeaders = { "OpenAI-Beta": "assistants=v1" };
761
- const threadId = parameters.body.thread_id;
762
- const messageId = parameters.body.message_id;
763
- const fileId = parameters.body.file_id;
764
- delete parameters.body.thread_id;
765
- delete parameters.body.message_id;
766
- delete parameters.body.file_id;
767
- return this.getFromEndpoint(
768
- `/threads/${threadId}/messages/${messageId}/files/${fileId}`,
769
- parameters,
770
- null,
771
- customHeaders,
816
+ async listMessageFiles(parameters) {
817
+ const clientParams = {
818
+ apiKey: parameters.apiKey,
819
+ baseURL: parameters.apiBase,
820
+ organization: parameters.organization,
821
+ }
822
+ const openai = new OpenAI(clientParams);
823
+
824
+ const thread_id = parameters.payload.thread_id;
825
+ const message_id = parameters.payload.message_id;
826
+ delete parameters.payload.thread_id;
827
+ delete parameters.payload.message_id;
828
+
829
+ const response = await openai.beta.threads.messages.files.list(
830
+ thread_id,
831
+ message_id,
832
+ {
833
+ ...parameters.payload,
834
+ },
772
835
  );
773
- }
774
- }
775
836
 
776
- function mergeQueryParams(parameters, queryParameters) {
777
- if (parameters.$queryParameters) {
778
- Object.keys(parameters.$queryParameters).forEach(
779
- function (parameterName) {
780
- var parameter = parameters.$queryParameters[parameterName];
781
- queryParameters[parameterName] = parameter;
837
+ return response;
838
+ }
839
+ async getMessageFile(parameters) {
840
+ const clientParams = {
841
+ apiKey: parameters.apiKey,
842
+ baseURL: parameters.apiBase,
843
+ organization: parameters.organization,
844
+ }
845
+ const openai = new OpenAI(clientParams);
846
+
847
+ const thread_id = parameters.payload.thread_id;
848
+ const message_id = parameters.payload.message_id;
849
+ const file_id = parameters.payload.file_id;
850
+
851
+ delete parameters.payload.thread_id;
852
+ delete parameters.payload.message_id;
853
+ delete parameters.payload.file_id;
854
+
855
+ const response = await openai.beta.threads.messages.files.retrieve(
856
+ thread_id,
857
+ message_id,
858
+ file_id,
859
+ {
860
+ ...parameters.payload,
782
861
  },
783
862
  );
863
+
864
+ return response;
784
865
  }
785
- return queryParameters;
786
866
  }
787
867
 
788
868
  return OpenaiApi;