|
@@ -1,27 +1,43 @@
|
|
|
import { OpenAIApi, Configuration } from "openai";
|
|
|
-import { apiKey } from "./config";
|
|
|
import { ChatRequest } from "./typing";
|
|
|
|
|
|
-// set up openai api client
|
|
|
-const config = new Configuration({
|
|
|
- apiKey,
|
|
|
-});
|
|
|
-const openai = new OpenAIApi(config);
|
|
|
+const isProd = process.env.NODE_ENV === "production";
|
|
|
+
|
|
|
+let openai: OpenAIApi | undefined;
|
|
|
+async function initService() {
|
|
|
+ let apiKey = process.env.OPENAI_API_KEY;
|
|
|
+
|
|
|
+ if (!isProd) {
|
|
|
+ apiKey = await (await import("./config")).apiKey;
|
|
|
+ }
|
|
|
+
|
|
|
+ openai = new OpenAIApi(
|
|
|
+ new Configuration({
|
|
|
+ apiKey,
|
|
|
+ })
|
|
|
+ );
|
|
|
+}
|
|
|
|
|
|
export async function POST(req: Request) {
|
|
|
+ if (!openai) {
|
|
|
+ await initService();
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
const requestBody = (await req.json()) as ChatRequest;
|
|
|
- const completion = await openai.createChatCompletion(
|
|
|
+ const completion = await openai!.createChatCompletion(
|
|
|
{
|
|
|
...requestBody,
|
|
|
},
|
|
|
- {
|
|
|
- proxy: {
|
|
|
- protocol: "socks",
|
|
|
- host: "127.0.0.1",
|
|
|
- port: 7890,
|
|
|
- },
|
|
|
- }
|
|
|
+ isProd
|
|
|
+ ? {}
|
|
|
+ : {
|
|
|
+ proxy: {
|
|
|
+ protocol: "socks",
|
|
|
+ host: "127.0.0.1",
|
|
|
+ port: 7890,
|
|
|
+ },
|
|
|
+ }
|
|
|
);
|
|
|
|
|
|
return new Response(JSON.stringify(completion.data));
|