diff --git a/README.md b/README.md index 3d245c0..ce8012a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,11 @@ After installation, find your node in the **AI** palette category labeled "OpenA - **Configurable and Flexible**: Adapt to a wide range of project requirements, making it easy to integrate AI into your IoT solutions. - **Powerful Combinations**: Utilize Node-RED's diverse nodes to build complex, AI-driven IoT workflows with ease. -## Release Notes (v1.103.0) +## Release Notes (v1.103.0-patch.1) + +### Fixed Issues + +- Reaolves issue [#34](https://github.com/allanbunch/node-red-openai-api/issues/34) ### Ehancements @@ -48,6 +52,7 @@ After installation, find your node in the **AI** palette category labeled "OpenA ### Notable Features & Changes +- Added missing `delete` method to the `messages` API. - Full Model Context Protocol (MCP) tool support for the `responses` API. - Added support for the new `container` endpoint. - Added support for the new `containerFiles` endpoint. diff --git a/lib.js b/lib.js index 909fdbd..997882b 100644 --- a/lib.js +++ b/lib.js @@ -16148,8 +16148,64 @@ var require_methods11 = __commonJS({ } }); -// src/models/methods.js +// src/messages/methods.js var require_methods12 = __commonJS({ + "src/messages/methods.js"(exports2, module2) { + var OpenAI = require_openai().OpenAI; + async function listMessages(parameters) { + const openai = new OpenAI(this.clientParams); + const { thread_id, ...params } = parameters.payload; + const list = await openai.beta.threads.messages.list(thread_id, params); + return [...list.data]; + } + async function createMessage(parameters) { + const openai = new OpenAI(this.clientParams); + const { thread_id, ...params } = parameters.payload; + const response = await openai.beta.threads.messages.create(thread_id, params); + return response; + } + async function getMessage(parameters) { + const openai = new OpenAI(this.clientParams); + const { thread_id, message_id, ...params } = parameters.payload; + const response = await openai.beta.threads.messages.retrieve( + thread_id, + message_id, + params + ); + return response; + } + async function modifyMessage(parameters) { + const openai = new OpenAI(this.clientParams); + const { thread_id, message_id, ...params } = parameters.payload; + const response = await openai.beta.threads.messages.update( + thread_id, + message_id, + params + ); + return response; + } + async function deleteMessage(parameters) { + const openai = new OpenAI(this.clientParams); + const { thread_id, message_id, ...params } = parameters.payload; + const response = await openai.beta.threads.messages.del( + thread_id, + message_id, + params + ); + return response; + } + module2.exports = { + listMessages, + createMessage, + getMessage, + modifyMessage, + deleteMessage + }; + } +}); + +// src/models/methods.js +var require_methods13 = __commonJS({ "src/models/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function listModels(parameters) { @@ -16178,7 +16234,7 @@ var require_methods12 = __commonJS({ }); // src/moderations/methods.js -var require_methods13 = __commonJS({ +var require_methods14 = __commonJS({ "src/moderations/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createModeration(parameters) { @@ -16193,7 +16249,7 @@ var require_methods13 = __commonJS({ }); // src/responses/methods.js -var require_methods14 = __commonJS({ +var require_methods15 = __commonJS({ "src/responses/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createModelResponse(parameters) { @@ -16245,7 +16301,7 @@ var require_methods14 = __commonJS({ }); // src/runs/methods.js -var require_methods15 = __commonJS({ +var require_methods16 = __commonJS({ "src/runs/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createThreadAndRun(parameters) { @@ -16389,7 +16445,7 @@ var require_methods15 = __commonJS({ }); // src/threads/methods.js -var require_methods16 = __commonJS({ +var require_methods17 = __commonJS({ "src/threads/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createThread(parameters) { @@ -16425,7 +16481,7 @@ var require_methods16 = __commonJS({ }); // src/uploads/methods.js -var require_methods17 = __commonJS({ +var require_methods18 = __commonJS({ "src/uploads/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createUpload(parameters) { @@ -16523,14 +16579,14 @@ var require_methods17 = __commonJS({ }); // src/vector-store-file-batches/methods.js -var require_methods18 = __commonJS({ +var require_methods19 = __commonJS({ "src/vector-store-file-batches/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; var fs = require("fs"); async function createVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.create( + const response = await openai.vectorStores.fileBatches.create( vector_store_id, params ); @@ -16539,7 +16595,7 @@ var require_methods18 = __commonJS({ async function retrieveVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.retrieve( + const response = await openai.vectorStores.fileBatches.retrieve( vector_store_id, batch_id, params @@ -16549,7 +16605,7 @@ var require_methods18 = __commonJS({ async function cancelVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.retrieve( + const response = await openai.vectorStores.fileBatches.retrieve( vector_store_id, batch_id, params @@ -16559,7 +16615,7 @@ var require_methods18 = __commonJS({ async function listVectorStoreBatchFiles(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const list = await openai.beta.vectorStores.fileBatches.listFiles( + const list = await openai.vectorStores.fileBatches.listFiles( vector_store_id, batch_id, params @@ -16579,7 +16635,7 @@ var require_methods18 = __commonJS({ } }); const fileStreams = files2.map((path) => fs.createReadStream(path)); - const response = await openai.beta.vectorStores.fileBatches.uploadAndPoll( + const response = await openai.vectorStores.fileBatches.uploadAndPoll( vector_store_id, { files: fileStreams, fileIds: file_ids }, params @@ -16597,13 +16653,13 @@ var require_methods18 = __commonJS({ }); // src/vector-store-files/methods.js -var require_methods19 = __commonJS({ +var require_methods20 = __commonJS({ "src/vector-store-files/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.files.create( + const response = await openai.vectorStores.files.create( vector_store_id, params ); @@ -16612,25 +16668,19 @@ var require_methods19 = __commonJS({ async function listVectorStoreFiles(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const list = await openai.beta.vectorStores.files.list( - vector_store_id, - params - ); + const list = await openai.vectorStores.files.list(vector_store_id, params); return [...list.data]; } async function retrieveVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, file_id } = parameters.payload; - const response = openai.beta.vectorStores.files.retrieve( - vector_store_id, - file_id - ); + const response = openai.vectorStores.files.retrieve(vector_store_id, file_id); return response; } async function deleteVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, file_id, ...params } = parameters.payload; - const response = openai.beta.vectorStores.files.del( + const response = openai.vectorStores.files.del( vector_store_id, file_id, params @@ -16647,42 +16697,36 @@ var require_methods19 = __commonJS({ }); // src/vector-stores/methods.js -var require_methods20 = __commonJS({ +var require_methods21 = __commonJS({ "src/vector-stores/methods.js"(exports2, module2) { var OpenAI = require_openai().OpenAI; async function createVectorStore(parameters) { const openai = new OpenAI(this.clientParams); - const response = await openai.beta.vectorStores.create(parameters.payload); + const response = await openai.vectorStores.create(parameters.payload); return response; } async function listVectorStores(parameters) { const openai = new OpenAI(this.clientParams); - const list = await openai.beta.vectorStores.list(parameters.payload); + const list = await openai.vectorStores.list(parameters.payload); const vectorStores2 = [...list.data]; return vectorStores2; } async function retrieveVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.retrieve( - vector_store_id, - params - ); + const response = await openai.vectorStores.retrieve(vector_store_id, params); return response; } async function modifyVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.update( - vector_store_id, - params - ); + const response = await openai.vectorStores.update(vector_store_id, params); return response; } async function deleteVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.del(vector_store_id, params); + const response = await openai.vectorStores.del(vector_store_id, params); return response; } module2.exports = { @@ -16706,15 +16750,16 @@ var embeddings = require_methods8(); var files = require_methods9(); var fine_tuning = require_methods10(); var images = require_methods11(); -var models = require_methods12(); -var moderations = require_methods13(); -var responses = require_methods14(); -var runs = require_methods15(); -var threads = require_methods16(); -var uploads = require_methods17(); -var vectorStoreFileBatches = require_methods18(); -var vectorStoreFiles = require_methods19(); -var vectorStores = require_methods20(); +var messages = require_methods12(); +var models = require_methods13(); +var moderations = require_methods14(); +var responses = require_methods15(); +var runs = require_methods16(); +var threads = require_methods17(); +var uploads = require_methods18(); +var vectorStoreFileBatches = require_methods19(); +var vectorStoreFiles = require_methods20(); +var vectorStores = require_methods21(); var OpenaiApi = class { constructor(apiKey, baseURL, organization) { this.clientParams = { @@ -16736,6 +16781,7 @@ Object.assign( files, fine_tuning, images, + messages, models, moderations, responses, diff --git a/locales/en-US/node.json b/locales/en-US/node.json index 5ac57fe..2f4b03b 100644 --- a/locales/en-US/node.json +++ b/locales/en-US/node.json @@ -130,6 +130,7 @@ "getMessage": "retrieve message", "message_id": "message id", "modifyMessage": "modify message", + "deleteMessage": "delete message", "createUpload": "create upload", "addUploadPart": "add upload part", "completeUpload": "complete upload", diff --git a/node.html b/node.html index 9bae2c8..c68f79e 100644 --- a/node.html +++ b/node.html @@ -260,24 +260,13 @@ data-i18n="OpenaiApi.parameters.createImageVariation" > - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/src/vector-store-file-batches/methods.js b/src/vector-store-file-batches/methods.js index 49d9bdd..57c417d 100644 --- a/src/vector-store-file-batches/methods.js +++ b/src/vector-store-file-batches/methods.js @@ -4,7 +4,7 @@ const fs = require("fs"); async function createVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.create( + const response = await openai.vectorStores.fileBatches.create( vector_store_id, params ); @@ -15,7 +15,7 @@ async function createVectorStoreFileBatch(parameters) { async function retrieveVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.retrieve( + const response = await openai.vectorStores.fileBatches.retrieve( vector_store_id, batch_id, params @@ -27,7 +27,7 @@ async function retrieveVectorStoreFileBatch(parameters) { async function cancelVectorStoreFileBatch(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.fileBatches.retrieve( + const response = await openai.vectorStores.fileBatches.retrieve( vector_store_id, batch_id, params @@ -39,7 +39,7 @@ async function cancelVectorStoreFileBatch(parameters) { async function listVectorStoreBatchFiles(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, batch_id, ...params } = parameters.payload; - const list = await openai.beta.vectorStores.fileBatches.listFiles( + const list = await openai.vectorStores.fileBatches.listFiles( vector_store_id, batch_id, params @@ -66,7 +66,7 @@ async function uploadAndPollVectorStoreFileBatch(parameters) { const fileStreams = files.map((path) => fs.createReadStream(path)); - const response = await openai.beta.vectorStores.fileBatches.uploadAndPoll( + const response = await openai.vectorStores.fileBatches.uploadAndPoll( vector_store_id, { files: fileStreams, fileIds: file_ids }, params diff --git a/src/vector-store-files/methods.js b/src/vector-store-files/methods.js index 5b48c18..7ac5fdd 100644 --- a/src/vector-store-files/methods.js +++ b/src/vector-store-files/methods.js @@ -3,7 +3,7 @@ const OpenAI = require("openai").OpenAI; async function createVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.files.create( + const response = await openai.vectorStores.files.create( vector_store_id, params ); @@ -16,10 +16,7 @@ async function listVectorStoreFiles(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const list = await openai.beta.vectorStores.files.list( - vector_store_id, - params - ); + const list = await openai.vectorStores.files.list(vector_store_id, params); return [...list.data]; } @@ -29,10 +26,7 @@ async function retrieveVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, file_id } = parameters.payload; - const response = openai.beta.vectorStores.files.retrieve( - vector_store_id, - file_id - ); + const response = openai.vectorStores.files.retrieve(vector_store_id, file_id); return response; } @@ -42,7 +36,7 @@ async function deleteVectorStoreFile(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, file_id, ...params } = parameters.payload; - const response = openai.beta.vectorStores.files.del( + const response = openai.vectorStores.files.del( vector_store_id, file_id, params diff --git a/src/vector-stores/methods.js b/src/vector-stores/methods.js index 09fbdfe..f500c1a 100644 --- a/src/vector-stores/methods.js +++ b/src/vector-stores/methods.js @@ -2,14 +2,14 @@ const OpenAI = require("openai").OpenAI; async function createVectorStore(parameters) { const openai = new OpenAI(this.clientParams); - const response = await openai.beta.vectorStores.create(parameters.payload); + const response = await openai.vectorStores.create(parameters.payload); return response; } async function listVectorStores(parameters) { const openai = new OpenAI(this.clientParams); - const list = await openai.beta.vectorStores.list(parameters.payload); + const list = await openai.vectorStores.list(parameters.payload); const vectorStores = [...list.data]; return vectorStores; @@ -18,10 +18,7 @@ async function listVectorStores(parameters) { async function retrieveVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.retrieve( - vector_store_id, - params - ); + const response = await openai.vectorStores.retrieve(vector_store_id, params); return response; } @@ -29,10 +26,7 @@ async function retrieveVectorStore(parameters) { async function modifyVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.update( - vector_store_id, - params - ); + const response = await openai.vectorStores.update(vector_store_id, params); return response; } @@ -40,7 +34,7 @@ async function modifyVectorStore(parameters) { async function deleteVectorStore(parameters) { const openai = new OpenAI(this.clientParams); const { vector_store_id, ...params } = parameters.payload; - const response = await openai.beta.vectorStores.del(vector_store_id, params); + const response = await openai.vectorStores.del(vector_store_id, params); return response; } diff --git a/src/vector-stores/template.html b/src/vector-stores/template.html index 2f833fd..7262bc9 100644 --- a/src/vector-stores/template.html +++ b/src/vector-stores/template.html @@ -1,22 +1,7 @@ - - - - - - - \ No newline at end of file + + + + + + + \ No newline at end of file