Spaces:
Build error
Build error
| 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; | |
| }; | |