const { Configuration, OpenAIApi } = require("openai"); const express = require("express"); const app = express(); const cors = require("cors"); app.use(cors()); app.use(express.json()); app.use(express.urlencoded()); app.post("/debate", async function (req, res) { const topic = req.body.topic; const userMessages = req.body.userMessages; const assistantMessages = req.body.assistantMessages; console.log(topic, userMessages, assistantMessages); const configuration = new Configuration({ apiKey: "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", }); const openai = new OpenAIApi(configuration); const messages = [ { role: "system", content: `You are about to engage in a competitive debate with me. In a competitive debate, you're divided into two sides, one for and one against, and you argue your point of view and counter the other's logic to win or lose.`, }, { role: "user", content: `You are about to engage in a competitive debate with me. In a competitive debate, you're divided into two sides, one for and one against, and you argue your point of view and counter the other's logic to win or lose.`, }, { role: "assistant", content: `Great! I'm ready to engage in a competitive debate with you. Please let me know the topic we will be debating and which side you would like to take.`, }, { role: "user", content: `You are about to engage in a competitive debate with me. In a competitive debate, you're divided into two sides, one for and one against, and you argue your point of view and counter the other's logic to win or lose. - Topic: '${topic}' - If I'm pro-position, you're anti-position, and if I'm anti-position, you're pro-position. - You must answer in Korean - Just answer directly, don't prefix it with something like "나: " or "저: ". Now, let's start the debate. I'll start with my side of the argument. Me: ${userMessages.shift()} You : `, }, ]; while (assistantMessages.length > 0 || userMessages.length > 0) { if (assistantMessages.length > 0) { messages.push({ role: "assistant", content: assistantMessages.shift(), }); } if (userMessages.length > 0) { messages.push({ role: "user", content: userMessages.shift(), }); } } const completion = await openai.createChatCompletion({ model: "gpt-3.5-turbo", messages: messages, }); // console.log(completion.data.choices[0].message.content); const result = completion.data.choices[0].message.content; console.log(result); res.json({ result: result, }); }); app.listen(3000);