Merge pull request #5528 from menloresearch/fix/default-model-settings-jan-nano

🐛fix: default model settings for jan-nano-128k
This commit is contained in:
Louis 2025-06-25 06:07:31 -07:00 committed by GitHub
commit ea662c4876
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 35 additions and 4 deletions

View File

@ -15,6 +15,8 @@ export const validationRules: { [key: string]: (value: any) => boolean } = {
stop: (value: any) => Array.isArray(value) && value.every((v) => typeof v === 'string'), stop: (value: any) => Array.isArray(value) && value.every((v) => typeof v === 'string'),
frequency_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1, frequency_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
presence_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1, presence_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
repeat_last_n: (value: any) => typeof value === 'number',
repeat_penalty: (value: any) => typeof value === 'number',
ctx_len: (value: any) => Number.isInteger(value) && value >= 0, ctx_len: (value: any) => Number.isInteger(value) && value >= 0,
ngl: (value: any) => Number.isInteger(value), ngl: (value: any) => Number.isInteger(value),
@ -126,6 +128,14 @@ export const extractModelLoadParams = (
vision_model: undefined, vision_model: undefined,
text_model: undefined, text_model: undefined,
engine: undefined, engine: undefined,
top_p: undefined,
top_k: undefined,
min_p: undefined,
temperature: undefined,
repeat_penalty: undefined,
repeat_last_n: undefined,
presence_penalty: undefined,
frequency_penalty: undefined,
} }
const settingParams: ModelSettingParams = {} const settingParams: ModelSettingParams = {}

View File

@ -121,6 +121,14 @@ export type ModelSettingParams = {
vision_model?: boolean vision_model?: boolean
text_model?: boolean text_model?: boolean
engine?: boolean engine?: boolean
top_p?: number
top_k?: number
min_p?: number
temperature?: number
repeat_penalty?: number
repeat_last_n?: number
presence_penalty?: number
frequency_penalty?: number
} }
/** /**

View File

@ -10,7 +10,13 @@ type DynamicControllerProps = {
title?: string title?: string
className?: string className?: string
description?: string description?: string
controllerType: 'input' | 'checkbox' | 'dropdown' | 'textarea' | 'slider' | string controllerType:
| 'input'
| 'checkbox'
| 'dropdown'
| 'textarea'
| 'slider'
| string
controllerProps: { controllerProps: {
value?: string | boolean | number value?: string | boolean | number
placeholder?: string placeholder?: string
@ -36,7 +42,11 @@ export function DynamicControllerSetting({
<InputControl <InputControl
type={controllerProps.type} type={controllerProps.type}
placeholder={controllerProps.placeholder} placeholder={controllerProps.placeholder}
value={(controllerProps.value as string) || ''} value={
typeof controllerProps.value === 'number'
? controllerProps.value.toString()
: (controllerProps.value as string) || ''
}
inputActions={controllerProps.input_actions} inputActions={controllerProps.input_actions}
className={className} className={className}
onChange={(newValue) => onChange(newValue)} onChange={(newValue) => onChange(newValue)}

View File

@ -150,7 +150,7 @@ export const getProviders = async (): Promise<ModelProvider[]> => {
...setting, ...setting,
controller_props: { controller_props: {
...setting.controller_props, ...setting.controller_props,
value: value ?? setting.controller_props.value, value: value,
}, },
} }
return acc return acc
@ -254,7 +254,10 @@ export const updateSettings = async (
...setting, ...setting,
controllerProps: { controllerProps: {
...setting.controller_props, ...setting.controller_props,
value: setting.controller_props.value ?? '', value:
setting.controller_props.value !== undefined
? setting.controller_props.value
: '',
}, },
controllerType: setting.controller_type, controllerType: setting.controller_type,
})) as SettingComponentProps[] })) as SettingComponentProps[]