This commit is contained in:
seb
2026-10-05 19:04:30 +02:00
parent f55990c25e
commit af0ef29e22
4 changed files with 53 additions and 12 deletions

View File

@@ -47,13 +47,27 @@ export async function hasConfiguredOpenRouterKey(googleAuthId) {
/**
* Resolve the default model for a user/company:
* - As soon as the user/company has configured `keys.openrouter`, use `env.openrouterPaidModel`.
* - Otherwise (using the server's free key), use `env.openrouterFreeModel`.
* - If companysetting `default-model` is set, return it (works in both paid and no-key modes).
* - Otherwise, if the user/company has configured `keys.openrouter`, use `env.openrouterPaidModel`
* (which defaults to 'openai/gpt-6-luna:floor').
* - Otherwise (no key set / free mode), use `env.openrouterFreeModel`
* (which defaults to 'openrouter/free').
*
* @param {number} [googleAuthId]
* @returns {Promise<string>}
*/
export async function resolveDefaultModel(googleAuthId) {
if (googleAuthId) {
try {
const setting = await dbCompanySetting.getByKey(googleAuthId, 'default-model', { maskWriteonly: false });
const customModel = setting?.value?.trim();
if (customModel) return customModel;
} catch (err) {
console.error('default-model: failed to read company setting:', err.message);
}
}
const hasKey = await hasConfiguredOpenRouterKey(googleAuthId);
return hasKey ? env.openrouterPaidModel : env.openrouterFreeModel;
return hasKey
? (env.openrouterPaidModel || 'openai/gpt-6-luna:floor')
: (env.openrouterFreeModel || 'openrouter/free');
}