提问人:Johnny 提问时间:11/13/2023 更新时间:11/14/2023 访问量:53
OpenAI API 返回空响应
OpenAI API returning empty response
问:
我正在尝试向 ChatGPT 发出一个简单的请求,但得到 200 个没有内容的响应
{
"answer": {}
}
为什么我无法读取完成(另外,我怎样才能流式传输它?
import {
ChatCompletionRequestMessageRoleEnum,
Configuration,
OpenAIApi,
} from "openai-edge";
import config from "../../config";
import { NextApiRequest, NextApiResponse } from "next";
const openAIConfig = new Configuration({ apiKey: config.openAIKey });
const openAI = new OpenAIApi(openAIConfig);
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<any>
) {
let messages = [
{
role: ChatCompletionRequestMessageRoleEnum.System,
content: "Hello, I'm a chatbot",
},
{
role: ChatCompletionRequestMessageRoleEnum.User,
content: "Hello, is Pluto really a planet?",
},
];
const completion = await openAI.createChatCompletion({
model: "gpt-3.5-turbo",
stream: false,
messages,
});
res.status(200).send(completion);
}
答:
-1赞
Johnny
11/14/2023
#1
我对 POST 使用了错误的约定。
我创建了以下文件,一切正常
~/app/api/chat/route.ts
import {
ChatCompletionRequestMessageRoleEnum,
ChatCompletionRequestMessage,
Configuration,
OpenAIApi,
} from "openai-edge";
import config from "../../../config";
import { OpenAIStream, StreamingTextResponse } from "ai";
const openAIConfig = new Configuration({ apiKey: config.openAIKey });
const openAI = new OpenAIApi(openAIConfig);
export async function POST(request: Request) {
const { messages } = await request.json();
let setupMessage: ChatCompletionRequestMessage[] = [
{
role: ChatCompletionRequestMessageRoleEnum.System,
content: "You are a helpful chatbot, who thinks they are a dog that can talk.",
},
{
role: ChatCompletionRequestMessageRoleEnum.User,
content: "Hello, do you like playing in the park?",
},
];
const completion = await openAI.createChatCompletion({
model: "gpt-3.5-turbo",
stream: true,
messages: setupMessage,
});
const stream = await OpenAIStream(completion);
return new StreamingTextResponse(stream);
}
评论