@inductiv/node-red-openai-api 1.85.4 → 1.89.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 CHANGED
@@ -40,10 +40,13 @@ After installation, find your node in the **AI** palette category labeled "OpenA
40
40
  - **Configurable and Flexible**: Adapt to a wide range of project requirements, making it easy to integrate AI into your IoT solutions.
41
41
  - **Powerful Combinations**: Utilize Node-RED's diverse nodes to build complex, AI-driven IoT workflows with ease.
42
42
 
43
- ## Release Notes (v1.85.4)
43
+ ## Release Notes (v1.89.0)
44
44
 
45
- - **Ehancement:** Upgraded the OpenAI API Library dependency from [v4.85.1](https://github.com/openai/openai-node/releases/tag/v4.85.1) to [v4.85.4](https://github.com/openai/openai-node/releases/tag/v4.85.4).
46
- - **Enhancement:** Implemented [Chat Completion storage methods](https://platform.openai.com/docs/api-reference/chat).
45
+ - **Ehancements:**
46
+ - Upgraded the OpenAI API Library dependency from [v4.87.3](https://github.com/openai/openai-node/releases/tag/v4.87.3) to [v4.89.0](https://github.com/openai/openai-node/releases/tag/v4.89.0)
47
+ - **Features:**
48
+ - New audio helpers
49
+ - New API models for TTS, STT, + new audio features for Realtime
47
50
 
48
51
  ## What's New in Version 1.x
49
52
 
package/lib.js CHANGED
@@ -254,7 +254,10 @@ let OpenaiApi = (function () {
254
254
  const openai = new OpenAI(this.clientParams);
255
255
  const { completion_id, ...options } = parameters.payload;
256
256
 
257
- const response = await openai.chat.completions.retrieve(completion_id, options);
257
+ const response = await openai.chat.completions.retrieve(
258
+ completion_id,
259
+ options
260
+ );
258
261
 
259
262
  return response;
260
263
  }
@@ -263,7 +266,10 @@ let OpenaiApi = (function () {
263
266
  const openai = new OpenAI(this.clientParams);
264
267
  const { completion_id, ...options } = parameters.payload;
265
268
 
266
- const response = await openai.chat.completions.messages.list(completion_id, options);
269
+ const response = await openai.chat.completions.messages.list(
270
+ completion_id,
271
+ options
272
+ );
267
273
 
268
274
  return response.data;
269
275
  }
@@ -279,7 +285,10 @@ let OpenaiApi = (function () {
279
285
  const openai = new OpenAI(this.clientParams);
280
286
  const { completion_id, ...body } = parameters.payload;
281
287
 
282
- const response = await openai.chat.completions.update(completion_id, body);
288
+ const response = await openai.chat.completions.update(
289
+ completion_id,
290
+ body
291
+ );
283
292
 
284
293
  return response;
285
294
  }
@@ -288,7 +297,10 @@ let OpenaiApi = (function () {
288
297
  const openai = new OpenAI(this.clientParams);
289
298
  const { completion_id, ...options } = parameters.payload;
290
299
 
291
- const response = await openai.chat.completions.del(completion_id, options);
300
+ const response = await openai.chat.completions.del(
301
+ completion_id,
302
+ options
303
+ );
292
304
 
293
305
  return response;
294
306
  }
@@ -483,6 +495,59 @@ let OpenaiApi = (function () {
483
495
  return response;
484
496
  }
485
497
 
498
+ // >>> Begin Responses functions
499
+ async createModelResponse(parameters) {
500
+ const { _node, ...params } = parameters;
501
+ const openai = new OpenAI(this.clientParams);
502
+ const response = await openai.responses.create(parameters.payload);
503
+
504
+ if (params.payload.stream) {
505
+ _node.status({
506
+ fill: "green",
507
+ shape: "dot",
508
+ text: "OpenaiApi.status.streaming",
509
+ });
510
+ for await (const chunk of response) {
511
+ if (typeof chunk === "object") {
512
+ const newMsg = { ...parameters.msg, payload: chunk };
513
+ _node.send(newMsg);
514
+ }
515
+ }
516
+ _node.status({});
517
+ } else {
518
+ return response;
519
+ }
520
+ }
521
+
522
+ async getModelResponse(parameters) {
523
+ const openai = new OpenAI(this.clientParams);
524
+ const { response_id, ...params } = parameters.payload;
525
+ const response = await openai.responses.retrieve(
526
+ response_id,
527
+ params
528
+ );
529
+
530
+ return response;
531
+ }
532
+
533
+ async deleteModelResponse(parameters) {
534
+ const openai = new OpenAI(this.clientParams);
535
+ const { response_id, ...params } = parameters.payload;
536
+ const response = await openai.responses.del(response_id, params);
537
+
538
+ return response;
539
+ }
540
+
541
+ async listInputItems(parameters) {
542
+ const openai = new OpenAI(this.clientParams);
543
+ const { response_id, ...params } = parameters.payload;
544
+ const list = await openai.responses.inputItems.list(response_id, params);
545
+
546
+ return [...list.data];
547
+ }
548
+
549
+ // <<< End Responses functions
550
+
486
551
  async createModeration(parameters) {
487
552
  const openai = new OpenAI(this.clientParams);
488
553
  const response = await openai.moderations.create(parameters.payload);
@@ -99,6 +99,10 @@
99
99
  "retrieveModel": "retrieve model",
100
100
  "deleteModel": "delete fine-tune model",
101
101
  "createModeration": "create moderation",
102
+ "createModelResponse": "create model response",
103
+ "getModelResponse": "retrieve model response",
104
+ "deleteModelResponse": "delete model response",
105
+ "listInputItems": "list input items",
102
106
  "listAssistants": "list assistants",
103
107
  "order": "order",
104
108
  "before": "before",
package/node.html CHANGED
@@ -153,7 +153,7 @@
153
153
  ></option>
154
154
  </optgroup>
155
155
 
156
- <optgroup style="font-style: normal;" label="🗨️ Chat">
156
+ <optgroup style="font-style: normal;" label="💬 Chat">
157
157
  <option
158
158
  value="createChatCompletion"
159
159
  data-i18n="OpenaiApi.parameters.createChatCompletion"
@@ -289,7 +289,28 @@
289
289
  data-i18n="OpenaiApi.parameters.createModeration"
290
290
  ></option>
291
291
  </optgroup>
292
+ <optgroup style="font-style: normal;" label="🗨️ Responses">
293
+ <option
294
+ value="createModelResponse"
295
+ data-i18n="OpenaiApi.parameters.createModelResponse"
296
+ ></option>
297
+
298
+ <option
299
+ value="getModelResponse"
300
+ data-i18n="OpenaiApi.parameters.getModelResponse"
301
+ ></option>
292
302
 
303
+ <option
304
+ value="deleteModelResponse"
305
+ data-i18n="OpenaiApi.parameters.deleteModelResponse"
306
+ ></option>
307
+
308
+ <option
309
+ value="listInputItems"
310
+ data-i18n="OpenaiApi.parameters.listInputItems"
311
+ ></option>
312
+
313
+ </optgroup>
293
314
  <optgroup style="font-style: normal;" label="🔄 Runs (Beta)">
294
315
  <option
295
316
  value="createThreadAndRun"
@@ -928,25 +949,27 @@
928
949
  <h4>msg.payload Properties</h4>
929
950
 
930
951
  <dt>
931
- model
952
+ input
932
953
  <a
933
- href="https://platform.openai.com/docs/api-reference/audio/createSpeech#audio-createspeech-model"
954
+ href="https://platform.openai.com/docs/api-reference/audio/createSpeech#audio-createspeech-input"
934
955
  target="_blank"
935
956
  ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
936
957
  ></a>
937
958
  <span class="property-type">string</span>
938
959
  </dt>
939
- <dd>One of the available TTS models: tts-1 or tts-1-hd</dd>
960
+ <dd>The text to generate audio for.</dd>
961
+
940
962
  <dt>
941
- input
963
+ model
942
964
  <a
943
- href="https://platform.openai.com/docs/api-reference/audio/createSpeech#audio-createspeech-input"
965
+ href="https://platform.openai.com/docs/api-reference/audio/createSpeech#audio-createspeech-model"
944
966
  target="_blank"
945
967
  ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
946
968
  ></a>
947
969
  <span class="property-type">string</span>
948
970
  </dt>
949
- <dd>The text to generate audio for.</dd>
971
+ <dd>One of the available TTS models: <code>tts-1</code>, <code>tts-1-hd</code> or <code>gpt-4o-mini-tts</code>.</dd>
972
+
950
973
  <dt>
951
974
  voice
952
975
  <a
@@ -957,9 +980,22 @@
957
980
  <span class="property-type">string</span>
958
981
  </dt>
959
982
  <dd>
960
- The voice to use when generating the audio. Supported voices are alloy,
961
- echo, fable, onyx, nova, and shimmer.
983
+ The voice to use when generating the audio. Supported voices are <code>alloy</code>, <code>ash</code>, <code>coral</code>, <code>echo</code>, <code>fable</code>, <code>onyx</code>, <code>nova</code>, <code>sage</code> and <code>shimmer</code>.
984
+ </dd>
985
+
986
+ <dt class="optional">
987
+ instructions
988
+ <a
989
+ href="https://platform.openai.com/docs/api-reference/audio/createSpeech#audio-createspeech-instructions"
990
+ target="_blank"
991
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
992
+ ></a>
993
+ <span class="property-type">string</span>
994
+ </dt>
995
+ <dd>
996
+ Control the voice of your generated audio with additional instructions. Does not work with <code>tts-1</code> or <code>tts-1-hd</code>.
962
997
  </dd>
998
+
963
999
  <dt class="optional">
964
1000
  response_format
965
1001
  <a
@@ -972,6 +1008,7 @@
972
1008
  <dd>
973
1009
  The format to audio in. Supported formats are mp3, opus, aac, flac, wav, and pcm.
974
1010
  </dd>
1011
+
975
1012
  <dt class="optional">
976
1013
  speed
977
1014
  <a
@@ -1269,7 +1306,7 @@
1269
1306
 
1270
1307
  <section>
1271
1308
  <details>
1272
- <summary style="font-weight: bold;">🗨️ Chat</summary>
1309
+ <summary style="font-weight: bold;">💬 Chat</summary>
1273
1310
  <a
1274
1311
  href="https://platform.openai.com/docs/api-reference/chat"
1275
1312
  target="_blank"
@@ -2914,6 +2951,333 @@
2914
2951
 
2915
2952
  </details>
2916
2953
  </section>
2954
+ <!-- End Moderations docs -->
2955
+
2956
+ <!-- Begin Responses docs -->
2957
+ <section>
2958
+ <details>
2959
+ <summary style="font-weight: bold;">🗨️ Responses</summary>
2960
+ <a
2961
+ href="https://platform.openai.com/docs/api-reference/responses"
2962
+ target="_blank"
2963
+ >Official Documentation
2964
+ <i class="fa fa-external-link fa-sm" aria-hidden="true"></i
2965
+ ></a>
2966
+ <h4 style="font-weight: bolder;"> ⋙ Create Model Response</h4>
2967
+ <p>Creates a model response.</p>
2968
+ <dl class="message-properties">
2969
+ <h4>msg.payload Properties</h4>
2970
+
2971
+ <dt>
2972
+ input
2973
+ <a
2974
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-input"
2975
+ target="_blank"
2976
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
2977
+ ></a>
2978
+ <span class="property-type">string | array</span>
2979
+ </dt>
2980
+ <dd>Text, image, or file inputs to the model, used to generate a response.</dd>
2981
+
2982
+ <dt>
2983
+ model
2984
+ <a
2985
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-model"
2986
+ target="_blank"
2987
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
2988
+ ></a>
2989
+ <span class="property-type">string</span>
2990
+ </dt>
2991
+ <dd>Model ID used to generate the response.</dd>
2992
+
2993
+ <dt class="optional">
2994
+ include
2995
+ <a
2996
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-include"
2997
+ target="_blank"
2998
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
2999
+ ></a>
3000
+ <span class="property-type">array</span>
3001
+ </dt>
3002
+ <dd>Specify additional output data to include in the model response.</dd>
3003
+
3004
+ <dt class="optional">
3005
+ instructions
3006
+ <a
3007
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-instructions"
3008
+ target="_blank"
3009
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3010
+ ></a>
3011
+ <span class="property-type">string</span>
3012
+ </dt>
3013
+ <dd>Inserts a system (or developer) message as the first item in the model's context.</dd>
3014
+
3015
+ <dt class="optional">
3016
+ max_output_tokens
3017
+ <a
3018
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-max_output_tokens"
3019
+ target="_blank"
3020
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3021
+ ></a>
3022
+ <span class="property-type">integer</span>
3023
+ </dt>
3024
+ <dd>An upper bound for the number of tokens that can be generated for a response.</dd>
3025
+
3026
+ <dt class="optional">
3027
+ metadata
3028
+ <a
3029
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-metadata"
3030
+ target="_blank"
3031
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3032
+ ></a>
3033
+ <span class="property-type">object</span>
3034
+ </dt>
3035
+ <dd>Set of 16 key-value pairs that can be attached to an object.</dd>
3036
+
3037
+ <dt class="optional">
3038
+ parallel_tool_calls
3039
+ <a
3040
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-parallel_tool_calls"
3041
+ target="_blank"
3042
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3043
+ ></a>
3044
+ <span class="property-type">boolean</span>
3045
+ </dt>
3046
+ <dd>Whether to allow the model to run tool calls in parallel.</dd>
3047
+
3048
+ <dt class="optional">
3049
+ parallel_tool_calls
3050
+ <a
3051
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-parallel_tool_calls"
3052
+ target="_blank"
3053
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3054
+ ></a>
3055
+ <span class="property-type">boolean</span>
3056
+ </dt>
3057
+ <dd>Whether to allow the model to run tool calls in parallel.</dd>
3058
+
3059
+ <dt class="optional">
3060
+ previous_response_id
3061
+ <a
3062
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-previous_response_id"
3063
+ target="_blank"
3064
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3065
+ ></a>
3066
+ <span class="property-type">string</span>
3067
+ </dt>
3068
+ <dd>The unique ID of the previous response to the model.</dd>
3069
+
3070
+ <dt class="optional">
3071
+ reasoning
3072
+ <a
3073
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-reasoning"
3074
+ target="_blank"
3075
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3076
+ ></a>
3077
+ <span class="property-type">object</span>
3078
+ </dt>
3079
+ <dd>o-series models only. See official docs for option properties.</dd>
3080
+
3081
+ <dt class="optional">
3082
+ store
3083
+ <a
3084
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-store"
3085
+ target="_blank"
3086
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3087
+ ></a>
3088
+ <span class="property-type">boolean</span>
3089
+ </dt>
3090
+ <dd>Whether to store the generated model response for later retrieval via API.</dd>
3091
+
3092
+ <dt class="optional">
3093
+ stream
3094
+ <a
3095
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-stream"
3096
+ target="_blank"
3097
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3098
+ ></a>
3099
+ <span class="property-type">boolean</span>
3100
+ </dt>
3101
+ <dd>If set to true, the model response data will be streamed to the client as it is generated using server-sent events.</dd>
3102
+
3103
+ <dt class="optional">
3104
+ temperature
3105
+ <a
3106
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-temperature"
3107
+ target="_blank"
3108
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3109
+ ></a>
3110
+ <span class="property-type">number</span>
3111
+ </dt>
3112
+ <dd>What sampling temperature to use, between 0 and 2.</dd>
3113
+
3114
+ <dt class="optional">
3115
+ text
3116
+ <a
3117
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-text"
3118
+ target="_blank"
3119
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3120
+ ></a>
3121
+ <span class="property-type">object</span>
3122
+ </dt>
3123
+ <dd>Configuration options for a text response from the model.</dd>
3124
+
3125
+ <dt class="optional">
3126
+ tool_choice
3127
+ <a
3128
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-tool_choice"
3129
+ target="_blank"
3130
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3131
+ ></a>
3132
+ <span class="property-type">string or object</span>
3133
+ </dt>
3134
+ <dd>How the model should select which tool (or tools) to use when generating a response.</dd>
3135
+
3136
+ <dt class="optional">
3137
+ tools
3138
+ <a
3139
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-tools"
3140
+ target="_blank"
3141
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3142
+ ></a>
3143
+ <span class="property-type">array</span>
3144
+ </dt>
3145
+ <dd>An array of tools the model may call while generating a response.</dd>
3146
+
3147
+ <dt class="optional">
3148
+ top_p
3149
+ <a
3150
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-top_p"
3151
+ target="_blank"
3152
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3153
+ ></a>
3154
+ <span class="property-type">number</span>
3155
+ </dt>
3156
+ <dd>An alternative to sampling with temperature, called nucleus sampling.</dd>
3157
+
3158
+ <dt class="optional">
3159
+ truncation
3160
+ <a
3161
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-truncation"
3162
+ target="_blank"
3163
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3164
+ ></a>
3165
+ <span class="property-type">string</span>
3166
+ </dt>
3167
+ <dd>The truncation strategy to use for the model response.</dd>
3168
+
3169
+ <dt class="optional">
3170
+ user
3171
+ <a
3172
+ href="https://platform.openai.com/docs/api-reference/responses/create#responses-create-user"
3173
+ target="_blank"
3174
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3175
+ ></a>
3176
+ <span class="property-type">string</span>
3177
+ </dt>
3178
+ <dd>A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse.</dd>
3179
+
3180
+ </dl>
3181
+
3182
+ <h4 style="font-weight: bolder;"> ⋙ Get Model Response</h4>
3183
+ <p>Retrieves a model response with the given ID.</p>
3184
+ <dl class="message-properties">
3185
+ <h4>msg.payload Properties</h4>
3186
+
3187
+ <dt>
3188
+ response_id
3189
+ <a
3190
+ href="https://platform.openai.com/docs/api-reference/responses/get#responses-get-response_id"
3191
+ target="_blank"
3192
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3193
+ ></a>
3194
+ <span class="property-type">string</span>
3195
+ </dt>
3196
+ <dd>The ID of the response to retrieve.</dd>
3197
+ </dl>
3198
+
3199
+ <h4 style="font-weight: bolder;"> ⋙ Delete Model Response</h4>
3200
+ <p>Deletes a model response with the given ID.</p>
3201
+ <dl class="message-properties">
3202
+ <h4>msg.payload Properties</h4>
3203
+
3204
+ <dt>
3205
+ response_id
3206
+ <a
3207
+ href="https://platform.openai.com/docs/api-reference/responses/delete#responses-delete-response_id"
3208
+ target="_blank"
3209
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3210
+ ></a>
3211
+ <span class="property-type">string</span>
3212
+ </dt>
3213
+ <dd>The ID of the response to delete.</dd>
3214
+ </dl>
3215
+
3216
+ <h4 style="font-weight: bolder;"> ⋙ List Input Items</h4>
3217
+ <p>Returns a list of input items for a given response.</p>
3218
+ <dl class="message-properties">
3219
+ <h4>msg.payload Properties</h4>
3220
+
3221
+ <dt>
3222
+ response_id
3223
+ <a
3224
+ href="https://platform.openai.com/docs/api-reference/responses/input-items#responses-input-items-response_id"
3225
+ target="_blank"
3226
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3227
+ ></a>
3228
+ <span class="property-type">string</span>
3229
+ </dt>
3230
+ <dd>The ID of the response to retrieve input items for.</dd>
3231
+
3232
+ <dt class="optional">
3233
+ after
3234
+ <a
3235
+ href="https://platform.openai.com/docs/api-reference/responses/input-items#responses-input-items-after"
3236
+ target="_blank"
3237
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3238
+ ></a>
3239
+ <span class="property-type">string</span>
3240
+ </dt>
3241
+ <dd>An item ID to list items after, used in pagination.</dd>
3242
+
3243
+ <dt class="optional">
3244
+ before
3245
+ <a
3246
+ href="https://platform.openai.com/docs/api-reference/responses/input-items#responses-input-items-before"
3247
+ target="_blank"
3248
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3249
+ ></a>
3250
+ <span class="property-type">string</span>
3251
+ </dt>
3252
+ <dd>An item ID to list items before, used in pagination.</dd>
3253
+
3254
+ <dt class="optional">
3255
+ limit
3256
+ <a
3257
+ href="https://platform.openai.com/docs/api-reference/responses/input-items#responses-input-items-limit"
3258
+ target="_blank"
3259
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3260
+ ></a>
3261
+ <span class="property-type">integer</span>
3262
+ </dt>
3263
+ <dd>A limit on the number of objects to be returned.</dd>
3264
+
3265
+ <dt class="optional">
3266
+ order
3267
+ <a
3268
+ href="https://platform.openai.com/docs/api-reference/responses/input-items#responses-input-items-order"
3269
+ target="_blank"
3270
+ ><i class="fa fa-external-link fa-sm" aria-hidden="true"></i
3271
+ ></a>
3272
+ <span class="property-type">string</span>
3273
+ </dt>
3274
+ <dd>The order to return the input items in. Default is <code>asc</code>.</dd>
3275
+
3276
+ </dl>
3277
+
3278
+ </details>
3279
+ </section>
3280
+ <!-- End Responses docs -->
2917
3281
 
2918
3282
  <!-- Begin Runs docs -->
2919
3283
  <section>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inductiv/node-red-openai-api",
3
- "version": "1.85.4",
3
+ "version": "1.89.0",
4
4
  "description": "Enhance your Node-RED projects with advanced AI capabilities.",
5
5
  "main": "node.js",
6
6
  "engines": {
@@ -30,7 +30,7 @@
30
30
  "low-code"
31
31
  ],
32
32
  "dependencies": {
33
- "openai": "~4.85.4"
33
+ "openai": "~4.89.0"
34
34
  },
35
35
  "author": "Allan Bunch",
36
36
  "license": "MIT",