utils.ts•1.65 kB
/**
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { GenkitError } from 'genkit';
/**
* Gets the model name without certain prefixes..
* e.g. for "models/googleai/gemini-2.5-pro" it returns just 'gemini-2.5-pro'
* @param name A string containing the model string with possible prefixes
* @returns the model string stripped of certain prefixes
*/
export function modelName(name?: string): string | undefined {
if (!name) return name;
// Remove any of these prefixes:
const prefixesToRemove =
/background-model\/|model\/|models\/|embedders\/|vertex-model-garden\/|vertexai\//g;
return name.replace(prefixesToRemove, '');
}
/**
* Gets the suffix of a model string.
* Throws if the string is empty.
* @param name A string containing the model string
* @returns the model string stripped of prefixes and guaranteed not empty.
*/
export function checkModelName(name?: string): string {
const version = modelName(name);
if (!version) {
throw new GenkitError({
status: 'INVALID_ARGUMENT',
message: 'Model name is required.',
});
}
return version;
}