merlyn/server/utils/AiProviders/gemini/defaultModels.js
Timothy Carambat e80492606a
Automatic Context window detection (#3817)
* Add context window finder from litellm maintained list
apply to all cloud providers, have client cache for 3 days

* linting
2025-05-14 11:03:19 -07:00

75 lines
2.0 KiB
JavaScript

const { MODEL_MAP } = require("../modelMap");
const stableModels = [
// %STABLE_MODELS% - updated 2025-05-13T23:13:58.920Z
"gemini-1.5-pro-001",
"gemini-1.5-pro-002",
"gemini-1.5-pro",
"gemini-1.5-flash-001",
"gemini-1.5-flash",
"gemini-1.5-flash-002",
"gemini-1.5-flash-8b",
"gemini-1.5-flash-8b-001",
"gemini-2.0-flash",
"gemini-2.0-flash-001",
"gemini-2.0-flash-lite-001",
"gemini-2.0-flash-lite",
"gemini-2.0-flash-preview-image-generation",
// %EOC_STABLE_MODELS%
];
// There are some models that are only available in the v1beta API
// and some models that are only available in the v1 API
// generally, v1beta models have `exp` in the name, but not always
// so we check for both against a static list as well via API.
const v1BetaModels = [
// %V1BETA_MODELS% - updated 2025-05-13T23:13:58.920Z
"gemini-1.5-pro-latest",
"gemini-1.5-flash-latest",
"gemini-1.5-flash-8b-latest",
"gemini-1.5-flash-8b-exp-0827",
"gemini-1.5-flash-8b-exp-0924",
"gemini-2.5-pro-exp-03-25",
"gemini-2.5-pro-preview-03-25",
"gemini-2.5-flash-preview-04-17",
"gemini-2.5-flash-preview-04-17-thinking",
"gemini-2.5-pro-preview-05-06",
"gemini-2.0-flash-exp",
"gemini-2.0-flash-exp-image-generation",
"gemini-2.0-flash-lite-preview-02-05",
"gemini-2.0-flash-lite-preview",
"gemini-2.0-pro-exp",
"gemini-2.0-pro-exp-02-05",
"gemini-exp-1206",
"gemini-2.0-flash-thinking-exp-01-21",
"gemini-2.0-flash-thinking-exp",
"gemini-2.0-flash-thinking-exp-1219",
"learnlm-1.5-pro-experimental",
"learnlm-2.0-flash-experimental",
"gemma-3-1b-it",
"gemma-3-4b-it",
"gemma-3-12b-it",
"gemma-3-27b-it",
// %EOC_V1BETA_MODELS%
];
const defaultGeminiModels = () => [
...stableModels.map((model) => ({
id: model,
name: model,
contextWindow: MODEL_MAP.get("gemini", model),
experimental: false,
})),
...v1BetaModels.map((model) => ({
id: model,
name: model,
contextWindow: MODEL_MAP.get("gemini", model),
experimental: true,
})),
];
module.exports = {
defaultGeminiModels,
v1BetaModels,
};