fix: lazy Gemini client init — server starts without GEMINI env vars
The GoogleGenAI client threw at module load if AI_INTEGRATIONS_GEMINI_BASE_URL was unset, crashing the VPS service. Now uses lazy singleton (throws on first use). Routes return 503 gracefully when Gemini is not configured on the host.
This commit is contained in:
@@ -1,28 +1,10 @@
|
||||
import { GoogleGenAI, Modality } from "@google/genai";
|
||||
|
||||
if (!process.env.AI_INTEGRATIONS_GEMINI_BASE_URL) {
|
||||
throw new Error(
|
||||
"AI_INTEGRATIONS_GEMINI_BASE_URL must be set. Did you forget to provision the Gemini AI integration?",
|
||||
);
|
||||
}
|
||||
|
||||
if (!process.env.AI_INTEGRATIONS_GEMINI_API_KEY) {
|
||||
throw new Error(
|
||||
"AI_INTEGRATIONS_GEMINI_API_KEY must be set. Did you forget to provision the Gemini AI integration?",
|
||||
);
|
||||
}
|
||||
|
||||
export const ai = new GoogleGenAI({
|
||||
apiKey: process.env.AI_INTEGRATIONS_GEMINI_API_KEY,
|
||||
httpOptions: {
|
||||
apiVersion: "",
|
||||
baseUrl: process.env.AI_INTEGRATIONS_GEMINI_BASE_URL,
|
||||
},
|
||||
});
|
||||
import { Modality } from "@google/genai";
|
||||
import { getAi } from "../client.js";
|
||||
|
||||
export async function generateImage(
|
||||
prompt: string
|
||||
): Promise<{ b64_json: string; mimeType: string }> {
|
||||
const ai = getAi();
|
||||
const response = await ai.models.generateContent({
|
||||
model: "gemini-2.5-flash-image",
|
||||
contents: [{ role: "user", parts: [{ text: prompt }] }],
|
||||
|
||||
Reference in New Issue
Block a user