File size: 671 Bytes
dff2be9
 
e569cd5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dff2be9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import OpenAI from "openai";

let openaiInstance: OpenAI | null = null;

export function getOpenAI(): OpenAI {
  if (!openaiInstance) {
    openaiInstance = new OpenAI({
      apiKey: process.env.OPENAI_API_KEY || "",
      baseURL: process.env.OPENAI_BASE_URL || undefined,
      defaultHeaders: process.env.OPENAI_EXTRA_HEADERS
        ? JSON.parse(process.env.OPENAI_EXTRA_HEADERS)
        : undefined,
    });
  }
  return openaiInstance;
}

// Export a getter that matches the original export name
export const openai = new Proxy({} as OpenAI, {
  get(_target, prop, _receiver) {
    const client = getOpenAI();
    return Reflect.get(client, prop, client);
  }
});