Supercharge your Node-RED flows with AI! Seamlessly integrate with OpenAI's powerful models like GPT-4 and DALL·E 2, and unlock a world of creative possibilities. Create imaginative chatbots, automate content generation, or build AI-driven experiences. The power of AI is just a node away!
To start using node-red-contrib-custom-chatgpt
, you can install it through the built-in Node-RED Palette manager or using npm:
npm install node-red-contrib-custom-chatgpt
With these, you're ready to configure your node-red-contrib-custom-chatgpt
nodes.
With node-red-contrib-custom-chatgpt
, you have the power to select the behavior of the node by setting the Topic property value to completion
, image
, edit
, turbo
, or gpt4
. You can control the node with a single required message property msg.payload
or dynamically set the behavior with incoming messages using read from msg.topic
.
For detailed information on the usage of these modes, please refer to the OpenAI API documentation.
-
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:[]
] -
[Optional]
msg.functions
should be an array of objects defining function behaviors for the model. Each object must contain aname
andbehavior
property. [Default:[]
] -
[Optional]
msg.function_call
should be a string or object that controls how the model responds to function calls. "none" means the model does not call a function and responds to the end-user. "auto" allows the model to decide. Specifying a particular function via{"name":"my_function"}
forces the model to call that function. [Default:none
if no functions,auto
if functions are present]
-
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.
We've provided several examples to help you understand the potential and versatility of node-red-contrib-custom-chatgpt
. From basic usages like image generation and text editing, to more advanced features like setting behaviors, using optional message properties, and automating Node-RED node creation.
[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.
Encountered a bug or have an idea for a new feature? We'd love to hear from you! Feel free to submit an issue on our GitHub page.
Stay up-to-date with the latest changes by checking out our CHANGELOG.
This project is licensed under the MIT License - see the LICENSE file for details.