routerOnly / src /shared /utils /providerCustomModels.js
HF Deployer
Init 9Router for HF Space (no binaries)
ebd68ab
Raw
History Blame Contribute Delete
1.44 kB
function modelType(model) {
return model?.kind || model?.type || "llm";
}
export function getProviderCustomModelRows({
customModels = [],
modelAliases = {},
providerAlias,
builtInModels = [],
type = "llm",
includeLegacyAliases = true,
}) {
const builtInIds = new Set(builtInModels.map((model) => model.id));
const seenFullModels = new Set();
const rows = [];
for (const model of customModels) {
if (!model?.id || model.providerAlias !== providerAlias) continue;
const rowType = modelType(model);
if (type && rowType !== type) continue;
if (builtInIds.has(model.id)) continue;
const fullModel = `${providerAlias}/${model.id}`;
if (seenFullModels.has(fullModel)) continue;
seenFullModels.add(fullModel);
rows.push({
id: model.id,
name: model.name || model.id,
fullModel,
source: "custom",
type: rowType,
});
}
if (!includeLegacyAliases) return rows;
const prefix = `${providerAlias}/`;
for (const [alias, fullModel] of Object.entries(modelAliases || {})) {
if (typeof fullModel !== "string" || !fullModel.startsWith(prefix)) continue;
const id = fullModel.slice(prefix.length);
if (!id || builtInIds.has(id) || seenFullModels.has(fullModel)) continue;
seenFullModels.add(fullModel);
rows.push({
id,
alias,
fullModel,
source: "legacyAlias",
type: type || "llm",
});
}
return rows;
}