)}
- {isUsingOllamaModel(config) && (
+ {isUsingOllamaApiModel(config) && (
{t('Keep-Alive Time') + ':'}
)}
- {isUsingOllamaModel(config) && (
+ {isUsingOllamaApiModel(config) && (
)}
- {isUsingOllamaModel(config) && (
+ {isUsingOllamaApiModel(config) && (
)}
- {isUsingAzureOpenAi(config) && (
+ {isUsingAzureOpenAiApiModel(config) && (
)}
- {isUsingAzureOpenAi(config) && (
+ {isUsingAzureOpenAiApiModel(config) && (
)}
- {isUsingGithubThirdPartyApi(config) && (
+ {isUsingGithubThirdPartyApiModel(config) && (
{
return Math.min(Math.max(v, min), max)
@@ -36,7 +36,9 @@ export async function cropText(
tiktoken = true,
) {
const userConfig = await getUserConfig()
- const k = modelNameToDesc(userConfig.modelName).match(/[- (]*([0-9]+)k/)?.[1]
+ const k = modelNameToDesc(
+ userConfig.apiMode ? apiModeToModelName(userConfig.apiMode) : userConfig.modelName,
+ ).match(/[- (]*([0-9]+)k/)?.[1]
if (k) {
maxLength = Number(k) * 1000
maxLength -= 100 + clamp(userConfig.maxResponseTokenLength, 1, maxLength - 1000)
diff --git a/src/utils/model-name-convert.mjs b/src/utils/model-name-convert.mjs
index 50d0aff..a5e2f60 100644
--- a/src/utils/model-name-convert.mjs
+++ b/src/utils/model-name-convert.mjs
@@ -47,9 +47,7 @@ export function isCustomModelName(modelName) {
export function modelNameToApiMode(modelName) {
const presetPart = modelNameToPresetPart(modelName)
- const found =
- Object.entries(ModelGroups).find(([k]) => presetPart === k) ||
- Object.entries(ModelGroups).find(([, g]) => g.value.includes(presetPart))
+ const found = getModelNameGroup(presetPart)
if (found) {
const [groupName] = found
const isCustom = isCustomModelName(modelName)
@@ -107,7 +105,29 @@ export function getApiModesStringArrayFromConfig(config, onlyActive) {
}
export function isApiModeSelected(apiMode, configOrSession) {
+ return configOrSession.apiMode
+ ? JSON.stringify(configOrSession.apiMode) === JSON.stringify(apiMode)
+ : configOrSession.modelName === apiModeToModelName(apiMode)
+}
+
+export function getModelNameGroup(modelName) {
+ const presetPart = modelNameToPresetPart(modelName)
return (
- configOrSession.apiMode && JSON.stringify(configOrSession.apiMode) === JSON.stringify(apiMode)
+ Object.entries(ModelGroups).find(([k]) => presetPart === k) ||
+ Object.entries(ModelGroups).find(([, g]) => g.value.includes(presetPart))
)
}
+
+export function getApiModeGroup(apiMode) {
+ return getModelNameGroup(apiModeToModelName(apiMode))
+}
+
+export function isInApiModeGroup(apiModeGroup, configOrSession) {
+ let foundGroup
+ if (configOrSession.apiMode) foundGroup = getApiModeGroup(configOrSession.apiMode)
+ else foundGroup = getModelNameGroup(configOrSession.modelName)
+
+ if (!foundGroup) return false
+ const [, groupValue] = foundGroup
+ return groupValue === apiModeGroup
+}