UNPKG

@genkit-ai/vertexai

Version:

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

75 lines 2.52 kB
import { GenkitError } from "genkit"; import { genkitPluginV2 } from "genkit/plugin"; import { getDerivedParams } from "../../common/index.mjs"; import * as anthropic from "./anthropic.mjs"; import * as llama from "./llama.mjs"; import * as mistral from "./mistral.mjs"; async function initializer(pluginOptions) { const clientOptions = await getDerivedParams(pluginOptions); return [ ...anthropic.listKnownModels(clientOptions, pluginOptions), ...mistral.listKnownModels(clientOptions, pluginOptions), ...llama.listKnownModels(clientOptions, pluginOptions) ]; } async function resolver(actionType, actionName, pluginOptions) { const clientOptions = await getDerivedParams(pluginOptions); switch (actionType) { case "model": if (anthropic.isAnthropicModelName(actionName)) { return anthropic.defineModel(actionName, clientOptions, pluginOptions); } else if (mistral.isMistralModelName(actionName)) { return mistral.defineModel(actionName, clientOptions, pluginOptions); } else if (llama.isLlamaModelName(actionName)) { return llama.defineModel(actionName, clientOptions, pluginOptions); } break; } return void 0; } async function listActions(options) { try { const clientOptions = await getDerivedParams(options); return [ ...anthropic.listActions(clientOptions), ...mistral.listActions(clientOptions), ...llama.listActions(clientOptions) ]; } catch (e) { return []; } } function vertexModelGardenPlugin(options) { let listActionsCache; return genkitPluginV2({ name: "vertex-model-garden", init: async () => await initializer(options), resolve: async (actionType, actionName) => await resolver(actionType, actionName, options), list: async () => { if (listActionsCache) return listActionsCache; listActionsCache = await listActions(options); return listActionsCache; } }); } const vertexModelGarden = vertexModelGardenPlugin; vertexModelGarden.model = (name, config) => { if (anthropic.isAnthropicModelName(name)) { return anthropic.model(name, config); } if (mistral.isMistralModelName(name)) { return mistral.model(name, config); } if (llama.isLlamaModelName(name)) { return llama.model(name, config); } throw new GenkitError({ status: "INVALID_ARGUMENT", message: `model '${name}' is not a recognized model name` }); }; export { vertexModelGarden, vertexModelGardenPlugin }; //# sourceMappingURL=index.mjs.map