OpenAI API 返回空响应

OpenAI API returning empty response

提问人:Johnny 提问时间:11/13/2023 更新时间:11/14/2023 访问量:53

问:

我正在尝试向 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);
}
openai-api chatgpt-api

评论


答:

-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);
}