UNPKG

@genkit-ai/vertexai

Version:

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

134 lines 4.28 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var utils_exports = {}; __export(utils_exports, { TEST_ONLY: () => TEST_ONLY, checkModelName: () => checkModelName, extractErrMsg: () => extractErrMsg, getDerivedOptions: () => getDerivedOptions, modelName: () => modelName }); module.exports = __toCommonJS(utils_exports); var import_genkit = require("genkit"); var import_google_auth_library = require("google-auth-library"); var import_constants = require("./constants.js"); 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 import_genkit.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: [import_constants.CLOUD_PLATFORM_OAUTH_SCOPE], projectId: providedProjectId }; authClient = new import_google_auth_library.GoogleAuth(authOptions); } else { authClient = new import_google_auth_library.GoogleAuth( authOptions ?? { scopes: [import_constants.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 }; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { TEST_ONLY, checkModelName, extractErrMsg, getDerivedOptions, modelName }); //# sourceMappingURL=utils.js.map