@genkit-ai/vertexai
Version:
Genkit AI framework plugin for Google Cloud Vertex AI APIs including Gemini APIs, Imagen, and more.
85 lines • 3.38 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 client_exports = {};
__export(client_exports, {
getVertexRerankUrl: () => getVertexRerankUrl,
rerankerRank: () => rerankerRank
});
module.exports = __toCommonJS(client_exports);
var import_utils = require("../../common/utils.js");
const DEFAULT_LOCATION = "us-central1";
async function rerankerRank(model, request, clientOptions) {
const url = getVertexRerankUrl(clientOptions);
const token = await getToken(clientOptions.authClient);
const headers = {
Authorization: `Bearer ${token}`,
"x-goog-user-project": clientOptions.projectId,
"Content-Type": "application/json"
};
const fetchOptions = {
method: "POST",
headers,
body: JSON.stringify(request)
};
const response = await makeRequest(url, fetchOptions);
return response.json();
}
function getVertexRerankUrl(clientOptions) {
const loc = clientOptions.location || DEFAULT_LOCATION;
return `https://discoveryengine.googleapis.com/v1/projects/${clientOptions.projectId}/locations/${loc}/rankingConfigs/default_ranking_config:rank`;
}
async function getToken(authClient) {
const CREDENTIAL_ERROR_MESSAGE = "\nUnable to authenticate your request \nDepending on your run time environment, you can get authentication by \n- if in local instance or cloud shell: `!gcloud auth login` \n- if in Colab: \n -`from google.colab import auth` \n -`auth.authenticate_user()` \n- if in service account or other: please follow guidance in https://cloud.google.com/docs/authentication";
const token = await authClient.getAccessToken().catch((e) => {
throw new Error(CREDENTIAL_ERROR_MESSAGE, e);
});
if (!token) {
throw new Error(CREDENTIAL_ERROR_MESSAGE);
}
return token;
}
async function makeRequest(url, fetchOptions) {
try {
const response = await fetch(url, fetchOptions);
if (!response.ok) {
let errorText = await response.text();
let errorMessage = errorText;
try {
const json = JSON.parse(errorText);
if (json.error && json.error.message) {
errorMessage = json.error.message;
}
} catch (e) {
}
throw new Error(
`Error fetching from ${url}: [${response.status} ${response.statusText}] ${errorMessage}`
);
}
return response;
} catch (e) {
console.error(e);
throw new Error(`Failed to fetch from ${url}: ${(0, import_utils.extractErrMsg)(e)}`);
}
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
getVertexRerankUrl,
rerankerRank
});
//# sourceMappingURL=client.js.map