Spaces:
Paused
Paused
| import { OpenAIApi, Configuration } from "openai"; | |
| import { ChatImageRequest } from "../openai-image/typing"; | |
| import { NextRequest, NextResponse } from "next/server"; | |
| import { auth } from "../auth"; | |
| export async function POST(req: NextRequest) { | |
| const authResult = auth(req); | |
| if (authResult.error) { | |
| return NextResponse.json(authResult, { | |
| status: 401, | |
| }); | |
| } | |
| try { | |
| let apiKey = process.env.OPENAI_API_KEY; | |
| const userApiKey = req.headers.get("token"); | |
| if (userApiKey) { | |
| apiKey = userApiKey; | |
| console.log("user api key:" + apiKey); | |
| } | |
| const openai = new OpenAIApi( | |
| new Configuration({ | |
| apiKey, | |
| }), | |
| ); | |
| const requestBody = (await req.json()) as ChatImageRequest; | |
| const response = await openai.createImage({ | |
| ...requestBody, | |
| }); | |
| console.log("[Chat-image]" + response.data.data[0].url); | |
| return new Response(JSON.stringify(response.data)); | |
| } catch (e) { | |
| console.error("[Chat-image] ", e); | |
| return new Response(JSON.stringify(e)); | |
| } | |
| } | |