scira-chat / lib /openai-client.ts
victor's picture
victor HF Staff
refactor: Implement lazy initialization for API clients
e569cd5
raw
history blame
671 Bytes
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);
}
});