ReactJS with ChatGPT

ReactJS and ChatGPT are both widely utilized technologies in the realm of web development and artificial intelligence, respectively. Therefore, it's highly natural for a need to integrate both to arise.

Integrating ChatGPT with React involves establishing a connection between our React application and ChatGPT's API, and that is precisely what we'll be learning in this answer today.

React and ChatGPT

When combining ReactJS and ChatGPT, we can create really interactive chat-based applications.

  1. ReactJS provides a great framework for building user interfaces, allowing the creation of dynamic chat interfaces.

  2. By integrating ChatGPT into these applications, we can allow users to engage in natural language conversations quite easily.

Use cases

Use cases of integrating ChatGPT

Customer support

Entertainment chatbot

Virtual assistants

E-commerce websites

Language learning platforms

Recommendation systems

This seamless combination gives us an opportunity to utilize the capabilities of ChatGPT within our own websites.

Setting up a React project

Prior to using ChatGPT in a React project, we'll have to set it up first. This can be done by following the steps given here.

Alternatively, these two commands can be run to set up the project quickly.

npx create-react-app react-proj
cd react-proj

Styling with Tailwind

For adding styles to our code, we will be making use of Tailwind CSS, a highly customizable library that provides class names to add different styles.

You can learn how to set it up here.

Project structure

After the setup, the project structure should be similar to the given image.

Setting up the connection

Now that our project has been initialized, let's download the material needed for this integration.

Installing the OpenAI library

OpenAI, the creators of ChatGPT, provide a way for us to download this package for using it in React. In our main directory, we can install OpenAI's library by running the command below.

npm install openai

Importing the OpenAI library

In our ChatGPT file in React, we can now import the needed modules from OpenAI's library by including the line below.

import { Configuration, OpenAIApi } from "openai";

The OpenAI API key

This is the most crucial step to be able to set up a running ChatGPT model within our code. We need to make an account on OpenAI's platform and retrieve an API key from there.

This key is to be added to the code so that an instance of the OpenAI API can be created for communication.

Note: After making your account and obtaining your free key, do not forget to replace API_KEY in the code below to allow access to ChatGPT.

You can learn more from their official documentation.

const configuration = new Configuration({
apiKey: API_KEY,
});

API calls

API calls refer to the process of sending requests to an API to fetch or manipulate data. By using API calls with the OpenAI library, we can seamlessly send requests to ChatGPT's API and receive responses to power our chat component.

In our code, the API call is made using the openai.createCompletion method from the OpenAI library.

ChatGPT's code chatbot in React JS

Finally, let's consider a scenario that we can build upon to see this integration in action. Let's say we have to create a simple application that takes a short input like "sum of numbers in an array" and a coding language of choice.

We want our application to be able to create a few lines of code for our question and display it as the output. We can integrate ChatGPT and do some prompt engineering to achieve this!

Scenario output

Our application should be able to achieve something like the output below.

Initial state of the application
Initial state of the application
Response from ChatGPT
Response from ChatGPT

Code sample

module.exports = {
  content: ["./src/**/*.{html,jsx}"],
  theme: {
    extend: {},
  },
  plugins: [],
};

Code explanation

Lines 1–3: We import the necessary modules for our code, Configuration and OpenAIApi to access the OpenAI API, FaRobot for our robot icon, and LoadingSpin for when the code is being fetched.

Line 8: Here, you will have to add your own OpenAI API key.

Line 10: We define the model to be used for the ChatGPT integration.

Lines 12–15: We create an instance of the API by passing API_KEY.

Lines 17–33: We define fetchData that takes the user input and language as parameters. It makes a POST request to the OpenAI API's createCompletion endpoint, passing the prompt, model, max_tokens, temperature, and n as parameters. We prompt it with "Write a code in " and give the user phrase alongside it. This is where we get our code from ChatGPT and return it!

Lines 37–44: Next, we define the ChatGPT component. Our state includes input, language, completedCode, and loading. handleClick is triggered when the "Code it!" button is clicked.

Lines 47–64: Inside handleClick, we set the loading state to true to show the loading icon and call fetchData to get the completed code. We update the completedCode state gradually using a loop and setTimeout.

Lines 66–68: We define an event handler, onLanguageChange to update the language state with the selected value.

Lines 70–116: We return the JSX content for the ChatGPT component. It includes a textarea for user input, language selection using select and option, and a button for the API call. It also renders the loading spinner if the loading state is true and then displays the completedCode otherwise.

Note: Since we were aiming for code creation, we used the model "text-davinci-002" which is useful for natural language tasks like answering questions etc.

More models can be found from OpenAI's documentation here.

Code generation demonstration

Let's see our application in action now! Suppose we want to generate a code on palindromes in the Javascript language. We can add our requirements in the given fields and click on the button to obtain the generated text, as shown below.

It’s React JS and ChatGPT quiz time!

Question

What does the prompt parameter allow us to do while sending an API request?

Show Answer

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved