我正在try 从Next 13.2.5更新到14.1.0,并使用app/api/example/route.js
而不是pages/api/example.js
.
我在下面的代码中得到错误TypeError: res.status is not a function at POST
.
我的旧版本pages/api/example.js
完全一样,但没有POST
,所以我用了export async function(req, res)
,它运行得很好.但在更新版本中try 了不同的方面(提到了here),但我无法理解,我被困住了.任何帮助都将不胜感激.
import { Configuration, OpenAIApi } from "openai";
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
export async function POST(req, res) {
if (!configuration.apiKey) {
res.status(500).json({
error: {
message: "OpenAI API key not configured",
},
});
return;
}
const { messages } = req.body;
if (!Array.isArray(messages)) {
res.status(400).json({
error: {
message: "Invalid conversation format",
},
});
return;
}
try {
const incomingMessages = req.body.messages || [];
const messages = [
{
role: "system",
content: `This is a roleplay. You are a participant in a market research study, simulating a
potential customer's perspective on a new product.
`,
},
...incomingMessages,
];
const completion = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: messages,
temperature: 0,
max_tokens: 1000,
});
const responseMessage = completion.data.choices[0].message;
const updatedConversationHistory = [...messages, responseMessage];
res.status(200).json({ messages: updatedConversationHistory });
} catch (error) {
if (error.response) {
console.error(error.response.status, error.response.data);
res.status(error.response.status).json(error.response.data);
} else {
console.error(`Error with OpenAI API request: ${error.message}`);
res.status(500).json({
error: {
message: "An error occurred during your request.",
},
});
}
}
}