Precise custom model selection & simplify language model/provider log… (#147)

…ic (no merging)
This commit is contained in:
Will Chen
2025-05-12 23:24:39 -07:00
committed by GitHub
parent b45dff3862
commit ee5865dcf8
4 changed files with 29 additions and 52 deletions

View File

@@ -20,13 +20,7 @@ const DEFAULT_CONTEXT_WINDOW = 128_000;
export async function getContextWindow() {
const settings = readSettings();
const model = settings.selectedModel;
const models = await getLanguageModels({
providerId: model.provider,
});
const modelOption = models.find((m) => m.apiName === model.name);
const modelOption = await findLanguageModel(settings.selectedModel);
return modelOption?.contextWindow || DEFAULT_CONTEXT_WINDOW;
}
@@ -34,10 +28,23 @@ export async function getContextWindow() {
const DEFAULT_MAX_TOKENS = 8_000;
export async function getMaxTokens(model: LargeLanguageModel) {
const modelOption = await findLanguageModel(model);
return modelOption?.maxOutputTokens || DEFAULT_MAX_TOKENS;
}
async function findLanguageModel(model: LargeLanguageModel) {
const models = await getLanguageModels({
providerId: model.provider,
});
const modelOption = models.find((m) => m.apiName === model.name);
return modelOption?.maxOutputTokens || DEFAULT_MAX_TOKENS;
if (model.customModelId) {
const customModel = models.find(
(m) => m.type === "custom" && m.id === model.customModelId,
);
if (customModel) {
return customModel;
}
}
return models.find((m) => m.apiName === model.name);
}