feat: prod/dev env settings

This commit is contained in:
Yidadaa
2023-03-11 02:47:29 +08:00
parent 2c9baa4e2c
commit 144eb68414
3 changed files with 39 additions and 15 deletions

View File

@@ -0,0 +1 @@
export const apiKey = "your dev api key here";

View File

@@ -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));