Blog

Integrating JavaScript with OpenAI: A Beginner’s Guide

Team Avatar - Kane Hooper
Kane Hooper
February 5, 2023

OpenAI’s AI models have been causing a stir online, and it’s no wonder — they’ve got programming and tech enthusiasts swooning with their impressive abilities. From churning out eerily human-like text to crafting breathtaking photographs, these models have proven their worth in creating all sorts of intelligent applications. No wonder they’ve become such a hit in recent years.

javabot here

An oil painting created by OpenAI

Many people are interested in ChatGTP because of its capacity to hold a variety of realistic, human-like discussions. As a result, many ChatGTP-powered chatbots and other interactive applications have been created, allowing people to connect with and firsthand experience the power of AI.


As a Node developer, you can add AI into your products right now by using the OpenAI API. With just a few lines of code, you can start designing intelligent applications that can generate text, answer enquiries, and much more.


This is a short introduction to help you get started. In subsequent posts, I’ll go into more technical detail so you may develop a better understanding of AI. In this blog post, I’ll show you how to get started with Node and OpenAI by providing some examples.


Before you start coding, it’s a good idea to experiment with ChatGPT to get a flavour of the kinds of queries you can ask and the responses you’ll get. https://chat.openai.com/chat. There are several techniques to train OpenAI, which we will cover in future postings.


Node code


Prerequisites


To follow this article you will need to understand the following:

  1. Running a Node application

  2. Working with API Keys

  3. Using Async/Await

If you are a Ruby developer I have a similar article written with Ruby code examples:


Integrating Node and OpenAI


You must first register with OpenAI and obtain your API Key. The OpenAI API is currently available for free (though limited) use. To sign up, go to https://openai.com/api/.


Install the OpenAI package first. In your terminal, type the following command:



npm install openai


Once installed, you can use the openai package to access the OpenAI API. We can now ask GPT-3 a question by writing a few lines of Javascript code. Let’s ask it ‘What is async/await in Javascript”.



const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
  apiKey: “Your API KEY”,
});

const openai = new OpenAIApi(configuration);

// Note this code is written in Node v18 which allows the await keyword at the global level.
const response = await openai.createCompletion({
  model: "text-davinci-003",
  prompt: "What is async/await in Javascript",
});

console.log(response.data.choices[0].text)


This will result in a short explanation of what async/await is.


When generating text with the OpenAI API, the model variable is used to determine which AI model should be used. The term “davinci” refers to the OpenAI GPT-3 model. Other models exist, but this one is the most accurate.


The prompt variable in the code sample specifies the text to which the OpenAI model will answer. This text could be a short comment, an enquiry, or a lengthy paragraph. The model will then expand on this prompt to generate more content that is related to it.


For example, in the code below, the prompt is set to “What is async/await in Javascript?”:



prompt = "What is async/await in Javascript?"


The OpenAI model will create a paragraph defining async/await.


The prompt text you select should be carefully examined because it will influence the tone and content of the resulting text. A more precise and detailed prompt, for example, will almost certainly provide more accurate and instructional information, whereas a more broad or ambiguous prompt may yield more imaginative and abstract created prose.


Assume you wish to use OpenAI to simplify your explanation. The code below could be used:



const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
  apiKey: “Your API KEY”,
});

const openai = new OpenAIApi(configuration);

const response = await openai.createCompletion({
  model: "text-davinci-003",
  prompt: "Explain async/await in Javascript ot a 10-year-old ",
});

console.log(console.log(response.data.choices[0].text))


The AI will attempt to create a response that a 10-year-old will understand. Using the command “Explain async/await in javascript to a 10-year-old,” the following is an example of the results you might get:


*Async/await is a way to write asynchronous code in a way that looks and feels like synchronous code.


Imagine you have a recipe that tells you to bake a cake. The recipe has a list of ingredients and a set of instructions. You follow the instructions step by step, mixing the ingredients together, pouring the batter into a cake pan, and putting the pan in the oven. You can’t move on to the next step until the current step is finished.


Now imagine that instead of a recipe, you have a list of tasks to do. One task might be to go to the store and buy ingredients for the cake. Another task might be to mix the ingredients together. You can’t mix the ingredients until you have bought them, and you can’t bake the cake until the ingredients are mixed.


Async/await helps you write code that works like a list of tasks. You can tell the computer to “wait” until one task is finished before moving on to the next task. This is especially useful when you are working with tasks that take a long time, like downloading a file from the internet or waiting for a user to respond to a question.


Other parameters can be used to regulate the output’s creativity, which will be addressed in the future.*


Summary


OpenAI can provide hours of entertainment. Request that it compose you a poem, summarise the biography of a renowned person, or even produce a blog entry (like this one).


I hope you found this introduction to utilising Node with OpenAI beneficial. Please let me know if you have any questions or would want to see more examples.


In the following post, we will go over the API in further detail, as well as explore “prompt” engineering and how to train the AI model to achieve the desired outcomes.