A Node-RED node that interacts with OpenAI machine learning models to generate text and image outputs like "ChatGPT" and "DALL·E 2".
Install with the built in Node-RED Palette manager or using npm:
npm install node-red-contrib-custom-chatgpt
When editing the nodes properties, to get your OPENAI_API_KEY
log in to ChatGPT and then visit https://platform.openai.com/account/api-keys click "+ Create new secret key" then copy and paste the "API key" into the nodes API_KEY
property value.
To get your Organization
visit https://platform.openai.com/account/org-settings then copy and paste the "OrganizationID" into the nodes Organization
property value.
Select the node's behavior by setting the Topic property value to completion
, image
, edit
, turbo
, or gpt4
.
Once set-up the node can be controlled with as little as a single required message property msg.payload
.
Alternatively you can set the Topic to read from msg.topic
to set the behavior dynamically with incoming messages.
-
When
msg.topic
is set tocompletion
:- [Required]
msg.payload
should be a well-written prompt that provides enough information for the model to know what you want and how it should respond. Its success generally depends on the complexity of the task and quality of your prompt. A good rule of thumb is to think about how you would write a word problem for a middle schooler to solve.
- [Required]
-
When
msg.topic
is set toimage
:-
[Required]
msg.payload
should be a prompt of text description of the desired image. -
[Optional]
msg.size
should be a string of the desired image dimensions. [Default:256x256
] -
[Optional]
msg.format
should be a string of eitherb64_json
orurl
. [Default:b64_json
]
-
-
When
msg.topic
is set toedit
:-
[Required]
msg.payload
should be a prompt of text to use as a starting point for the edit. -
[Required]
msg.last
should be a string of text to use as the input to be edited.
-
-
When
msg.topic
is set toturbo
:-
[Required]
msg.payload
should be a well-written prompt that provides enough information for the model to know what you want and how it should respond. Its success generally depends on the complexity of the task and quality of your prompt. -
[Optional]
msg.history
should be an array of objects containing the conversation history. [Default:[]
]
-
-
When
msg.topic
is set togpt4
:-
[Required]
msg.payload
should be a well-written prompt that provides enough information for the model to know what you want and how it should respond. Its success generally depends on the complexity of the task and quality of your prompt. -
[Optional]
msg.history
should be an array of objects containing the conversation history. [Default:[]
]
-
The following optional inputs are supported - msg.max_tokens
, msg.suffix
, msg.n
, msg.temperature
, msg.top_p
, msg.presence_penalty
, msg.frequency_penalty
, and msg.echo
. See the nodes built in help tab for more information on how they are used.
[Old screenshot] Basic usage for image, completion, and edit.
[Old screenshot] More advanced usage with templates.
[Old screenshot] Usage of model gpt-3.5-turbo
and conversation history.
[New screenshot] Updated example using optional message properties and setting behavior Topic
in node edit dialog.
[New screenshot] Additional example demonstrating how to generate Node-RED nodes and import them directly into the editor automatically.
Please report any issues or feature requests at GitHub.
View the full list of changes.