Files
vf_react/boilerplate-chakra-pro-main/app/api/chatAPI/route.ts
2025-11-22 11:41:56 +08:00

44 lines
1.1 KiB
TypeScript

import { ChatBody } from '@/types/types';
import { OpenAIStream } from '@/utils/streams/chatStream';
export const runtime = 'edge';
export async function GET(req: Request): Promise<Response> {
try {
const { inputMessage, model, apiKey } = (await req.json()) as ChatBody;
let apiKeyFinal;
if (apiKey) {
apiKeyFinal = apiKey;
} else {
apiKeyFinal = process.env.NEXT_PUBLIC_OPENAI_API_KEY;
}
const stream = await OpenAIStream(inputMessage, model, apiKeyFinal);
return new Response(stream);
} catch (error) {
console.error(error);
return new Response('Error', { status: 500 });
}
}
export async function POST(req: Request): Promise<Response> {
try {
const { inputMessage, model, apiKey } = (await req.json()) as ChatBody;
let apiKeyFinal;
if (apiKey) {
apiKeyFinal = apiKey;
} else {
apiKeyFinal = process.env.NEXT_PUBLIC_OPENAI_API_KEY;
}
const stream = await OpenAIStream(inputMessage, model, apiKeyFinal);
return new Response(stream);
} catch (error) {
console.error(error);
return new Response('Error', { status: 500 });
}
}