This repository provides a collection of examples demonstrating how to use the OpenAI APIs with the Node.js SDK.
The examples are organized by API, with each folder dedicated to a specific API:
- Chat Completions
- Assistants
- Fine-tuning
- Embeddings
- Moderation
- Batch Processing
- Images
Within each folder, you'll find a basic example to get started. For some APIs, additional examples are also included to explore more advanced use cases.
Prerequisites
To run the examples with the Node.js SDK, you will need:
- A recent version of Node.js (>= 16.0.0)
- A recent version of npm or another node package manager
- An OpenAI API key (you can get one from your OpenAI dashboard)
How to use
-
Clone this repository
$ git clone https://github.com/openai/openai-quickstart-node.git
-
Navigate into the project directory
$ cd openai-quickstart-node -
Install the OpenAI Node.js SDK
-
Set your OpenAI API key in environment variables
In the terminal session:
Bash (Mac/Linux):
$ export OPENAI_API_KEY=<your-api-key>
PowerShell (Windows):
$ setx OPENAI_API_KEY "<your_api_key>"Set it globally:
Add this line to your
.bashrcor.zshrcfile on Mac/Linux:$ export OPENAI_API_KEY=<your-api-key>
Or update your system environment variables on Windows.
-
Run each script individually
For example, to run the basic chat completions example:
$ node chat_completions/index.js
Examples
Explore the examples below to learn how to use the Node.js SDK for your specific use case.
| API | Example | Path |
|---|---|---|
| Chat Completions | Basic example | chat_completions/index.js |
| Multi-turn conversation | chat_completions/multi_turn.js | |
| Function Calling | chat_completions/function_calling.js | |
| Vision (image input) | chat_completions/vision.js | |
| Assistants | Create an assistant | assistants/index.js |
| Example thread | assistants/thread.js {assistant-id} | |
| Fine-tuning | Create a fine-tuned model | fine_tuning/index.js |
| Use a fine-tuned model | fine_tuning/use_model.js {job-id} | |
| Embeddings | Generate embeddings | embeddings/index.js |
| Moderation | Moderate text | moderation/index.js |
| Moderate images & text | moderation/images.js | |
| Batch | Create a batch job | batch/index.js |
| Get batch job results | batch/retrieve_results.js {job-id} | |
| Images | Generate an image | images/index.js |
Additional Resources
For more in-depth examples within front-end applications, including with streaming responses, check out these additional resources: