UNPKG

@genkit-ai/vertexai

Version:

Genkit AI framework plugin for Google Cloud Vertex AI APIs including Gemini APIs, Imagen, and more.

106 lines 3.02 kB
import { GenkitError } from "genkit"; import { GoogleAuth } from "google-auth-library"; import { CLOUD_PLATFORM_OAUTH_SCOPE } from "./constants.mjs"; function extractErrMsg(e) { let errorMessage = "An unknown error occurred"; if (e instanceof Error) { errorMessage = e.message; } else if (typeof e === "string") { errorMessage = e; } else { try { errorMessage = JSON.stringify(e); } catch (stringifyError) { errorMessage = "Failed to stringify error object"; } } return errorMessage; } function modelName(name) { if (!name) return name; const escapedPrefixes = [ "background-model/", "model/", "models/", "embedders/", "vertex-model-garden/", "vertex-rerankers/", "vertexai/" ]; const prefixesToRemove = new RegExp(escapedPrefixes.join("|"), "g"); return name.replace(prefixesToRemove, ""); } function checkModelName(name) { const version = modelName(name); if (!version) { throw new GenkitError({ status: "INVALID_ARGUMENT", message: "Model name is required." }); } return version; } const TEST_ONLY = { setFakeDerivedOptions }; function setFakeDerivedOptions(options) { __fake_getDerivedOptions = options; } let __fake_getDerivedOptions; function parseFirebaseProjectId() { if (!process.env.FIREBASE_CONFIG) return void 0; try { return JSON.parse(process.env.FIREBASE_CONFIG).projectId; } catch { return void 0; } } async function getDerivedOptions(pluginName, options) { if (__fake_getDerivedOptions) { return __fake_getDerivedOptions; } let authOptions = options?.googleAuth; let authClient; const providedProjectId = options?.projectId || process.env.GCLOUD_PROJECT || parseFirebaseProjectId(); if (process.env.GCLOUD_SERVICE_ACCOUNT_CREDS) { const serviceAccountCreds = JSON.parse( process.env.GCLOUD_SERVICE_ACCOUNT_CREDS ); authOptions = { credentials: serviceAccountCreds, scopes: [CLOUD_PLATFORM_OAUTH_SCOPE], projectId: providedProjectId }; authClient = new GoogleAuth(authOptions); } else { authClient = new GoogleAuth( authOptions ?? { scopes: [CLOUD_PLATFORM_OAUTH_SCOPE], projectId: providedProjectId } ); } const projectId = options?.projectId || await authClient.getProjectId(); const location = options?.location || "us-central1"; if (!location) { throw new Error( `${pluginName} Plugin is missing the 'location' configuration. Please set the 'GCLOUD_LOCATION' environment variable or explicitly pass 'location' into genkit config.` ); } if (!projectId) { throw new Error( `${pluginName} Plugin is missing the 'project' configuration. Please set the 'GCLOUD_PROJECT' environment variable or explicitly pass 'project' into genkit config.` ); } return { location, projectId, authClient }; } export { TEST_ONLY, checkModelName, extractErrMsg, getDerivedOptions, modelName }; //# sourceMappingURL=utils.mjs.map