chat_completions/multi_turn.js (22 lines of code) (raw):

import OpenAI from "openai"; import readline from "readline"; const openai = new OpenAI(); // Create a readline interface to read user input from the terminal const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const messages = [{ role: "system", content: "You are a helpful assistant." }]; // Send an array of messages to the Chat Completions API async function chat() { rl.question("You: ", async (input) => { messages.push({ role: "user", content: input }); const completion = await openai.chat.completions.create({ model: "gpt-4o-mini", messages: messages, }); const response = completion.choices[0].message.content; console.log(`Assistant: ${response}`); messages.push({ role: "assistant", content: response }); chat(); }); } // Start a multi-turn conversation in the terminal chat();