From 9443ab6d6d7d086eab2988ed2d84bff518e98614 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Wed, 14 May 2025 22:30:45 +0800 Subject: [PATCH] refactor(api): extract OpenAI client to shared module --- src/app/api/chat/route.ts | 9 ++------- src/lib/ai.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 src/lib/ai.ts diff --git a/src/app/api/chat/route.ts b/src/app/api/chat/route.ts index c6aca3a..6c348e0 100644 --- a/src/app/api/chat/route.ts +++ b/src/app/api/chat/route.ts @@ -1,14 +1,9 @@ -import { streamText } from 'ai'; -import { createOpenAI } from '@ai-sdk/openai'; +import { streamText } from "ai"; +import { openai } from "@/lib/ai"; // Allow streaming responses up to 30 seconds export const maxDuration = 30; -const openai = createOpenAI({ - apiKey: process.env.OPENAI_API_KEY || "", - baseURL: process.env.OPENAI_BASE_URL || "", -}); - export async function POST(req: Request) { const { messages } = await req.json(); diff --git a/src/lib/ai.ts b/src/lib/ai.ts new file mode 100644 index 0000000..9cf968e --- /dev/null +++ b/src/lib/ai.ts @@ -0,0 +1,8 @@ +import "server-only"; + +import { createOpenAI } from "@ai-sdk/openai"; + +export const openai = createOpenAI({ + apiKey: process.env.OPENAI_API_KEY || "", + baseURL: process.env.OPENAI_BASE_URL || "", +});