# Building a Node.JS OpenAI (3.0) app with NextJS (12.1)
# Introduction to Open AI REST API
In this lab we will build a "pet name generator web app" wich will be described in this tutorial. The OpenAI API quickstart tutorial (opens new window) refers to the current version of the OpenAI API and no longer describes this app.
You can see a solution deployed at netlify: https://nextjs-oai.netlify.app/ (opens new window)
The code uses Next.js (opens new window) framework version 12 with React (opens new window) version 17 and OpenAI 3:
➜ nextjs-solution git:(main) ✗ jq '.dependencies' package.json
{
"next": "^12.1.6",
"openai": "^3.0.0",
"react": "17.0.2",
"react-dom": "17.0.2"
}
2
3
4
5
6
Next.js (opens new window) is a framework on top of React that handles the tooling and configuration needed for React, and provides additional structure, features, and optimizations for your application.
Read this tutorial. The tutorial at OpenAI API quickstart tutorial (opens new window) covers the current version of OpenAI and I haven't been able to find the version of the old tutorial (2022) that corresponds to this lab.
# OpenAI First Steps
See how to create an account, set an api key and familiarize with the OpenAI API reading the section OpenAI First Steps in this course site.
# Setup
See section Setup and Run in this tutorial to see how to get the app in your assignment running.
# Web Development with Next.js
See section Web Development with Next.js in this tutorial.
# Exercise: Deploy at Netlify
Deploy the app at Netlify. For the details, see section Deploying a Next.js app to Netlify in this tutorial.
# Exercise: Deploy the app to Vercel
Deploy the app at Vercel. Follow the instructions at the tutorial Deploying to Vercel in this tutorial.
# Exercise: Get images from OpenAI
Add routes to the app:
- On the first route
/pet
leave the current service - On the second route
/image
add functionality to get an image from OpenAI and display it in the page. - Update the landing page and navigation links
- Add a 404 page
- Consider the opportunity to solve it using a dynamic route
The youtube video Build An AI Image Generator With OpenAI & Node.js can help:
{% include video provider="youtube" id="fU4o_BKaUZE" %}
# Rubrica
{% include rubrica.md %}
# References
- Netlify (opens new window)
- Next.js (opens new window)
- React (opens new window)
- Netlify CLI (opens new window)
- Next.js on Netlify (opens new window)
- Deploying a Next.js app to Vercel (opens new window)
- A solution deployed at netlify https://nextjs-oai.netlify.app/ (opens new window)
- Here is YouTube video explaining a project similar to the one described in this lab: Build An AI Image Generator With OpenAI & Node.js (opens new window)
- Repo ULL-MII-SYTWS/nextjs-dynamic-routes (opens new window)
- NextJS official examples folderx (opens new window)