@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
JavaScript
;
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