npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-red-contrib-openai-ubos

v1.0.8

Published

A Node-RED node that interacts with OpenAI machine learning models to generate text like ChatGPT.

Downloads

86

Readme

node-red-contrib-openai-ubos

A Node-RED node that interacts with OpenAI machine learning models to generate text like ChatGPT.

flow npm

Quick Start

Install with the built in Node-RED Palette manager or using npm:

npm install node-red-contrib-openai-ubos

Setup

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.

Properties

  • msg.OPENAI_API_KEY: This is the API key provided by OpenAI. It is necessary for authentication when making requests to the OpenAI API.

  • msg.prompt: This string forms the initial text from which the model will generate its continuation.

  • msg.model: This property defines the name of the OpenAI model to be used for generating the text, for example, "text-davinci-003".

  • msg.temperature: This property controls the randomness in the output of the model. Higher values result in more random outputs. This is a numerical value.

  • msg.max_tokens: This property sets the maximum length of the model output. This is a numerical value.

  • msg.messages: This is an array meant to hold any messages that are to be passed along the Node-RED flow. Each object in the array can contain additional properties like role and content. For example:

    "messages": [
        {"role": "system", "content": "Set the behavior"},
        {"role": "assistant", "content": "Provide examples"},
        {"role": "user", "content": "Set the instructions"}
    ]
  • msg.top_p: This property is used when nucleus sampling is preferred for generating the text. The value for this property is expected to be a number between 0 and 1.

  • msg.frequency_penalty: This property allows for penalization of new tokens based on their frequency. The value should be a number between 0 and 1.

  • msg.stop: Up to 4 sequences where the API will stop generating further tokens. For example:

    msg.stop = ["word-1", "word-2"]
  • msg.presence_penalty: This property can be used to control the model's preference for introducing new concepts during text generation. Like msg.frequency_penalty, it should be a number between 0 and 1.

Example

 msg.OPENAI_API_KEY = "your api key";
 msg.model = "gpt-3.5-turbo";
 msg.messages = [
    {"role": "system", "content": "Set the behavior"},
    {"role": "assistant", "content": "Provide examples"},
    {"role": "user", "content": "Set the instructions"}
]

Custom settings

To send your custom settings for the OpenAI request, you can use the msg.settings parameter. Simply pass an object with all the necessary fields according to the OpenAI documentation.

msg.url = "https://api.openai.com/v1/embeddings";
msg.OPENAI_API_KEY = "your API key";
msg.settings = {
    model: "text-embedding-3-large",
    input: "Hello World"
}

Create embeddings

When msg.model is set to text-embedding-ada-002:

  • [Required] input: [Type: string or array] Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed the max input tokens for the model (8191 tokens for text-embedding-ada-002) and cannot be an empty string. Example Python code for counting tokens.

  • user: [Type: string] A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. Learn more.

msg.OPENAI_API_KEY = "your api key";
msg.model = "text-embedding-ada-002";
msg.input = "Lorem Ipsum is simply dummy text of the printing and typesetting industry";

Demo

Bugs reports and feature requests

Please report any issues or feature requests at GitHub.

License

MIT License