import { OpenAIApi, Configuration } from "openai";
import { ChatRequest } from "./typing";

export async function POST(req: Request) {
  try {
    let apiKey = process.env.OPENAI_API_KEY;

    const userApiKey = req.headers.get("token");
    if (userApiKey) {
      apiKey = userApiKey;
    }

    const openai = new OpenAIApi(
      new Configuration({
        apiKey,
      })
    );

    const requestBody = (await req.json()) as ChatRequest;
    const completion = await openai!.createChatCompletion({
      ...requestBody,
    });

    return new Response(JSON.stringify(completion.data));
  } catch (e) {
    console.error("[Chat] ", e);
    return new Response(JSON.stringify(e));
  }
}