zzz / frontend /src /utils /organize-models-and-providers.ts
ar08's picture
Upload 1040 files
246d201 verified
import { extractModelAndProvider } from "./extract-model-and-provider";
/**
* Given a list of models, organize them by provider
* @param models The list of models
* @returns An object containing the provider and models
*
* @example
* const models = [
* "azure/ada",
* "azure/gpt-35-turbo",
* "cohere.command-r-v1:0",
* ];
*
* organizeModelsAndProviders(models);
* // returns {
* // azure: {
* // separator: "/",
* // models: ["ada", "gpt-35-turbo"],
* // },
* // cohere: {
* // separator: ".",
* // models: ["command-r-v1:0"],
* // },
* // }
*/
export const organizeModelsAndProviders = (models: string[]) => {
const object: Record<string, { separator: string; models: string[] }> = {};
models.forEach((model) => {
const {
separator,
provider,
model: modelId,
} = extractModelAndProvider(model);
// Ignore "anthropic" providers with a separator of "."
// These are outdated and incompatible providers.
if (provider === "anthropic" && separator === ".") {
return;
}
const key = provider || "other";
if (!object[key]) {
object[key] = { separator, models: [] };
}
object[key].models.push(modelId);
});
return object;
};