Skip to content

Commit 94b25ec

Browse files
authored
Merge pull request #5650 from menloresearch/fix/top_k-model-setting-validation
fix: top_k validation
2 parents 9e9bc49 + 0b88d93 commit 94b25ec

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

core/src/browser/models/utils.test.ts

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('validationRules', () => {
2929
expect(validationRules.top_k(1)).toBe(true)
3030
expect(validationRules.top_k(0)).toBe(true)
3131
expect(validationRules.top_k(-0.1)).toBe(false)
32-
expect(validationRules.top_k(1.1)).toBe(false)
32+
expect(validationRules.top_k(1.1)).toBe(true)
3333
expect(validationRules.top_k('0.5')).toBe(false)
3434
})
3535

@@ -68,17 +68,17 @@ describe('validationRules', () => {
6868
expect(validationRules.frequency_penalty(0.5)).toBe(true)
6969
expect(validationRules.frequency_penalty(1)).toBe(true)
7070
expect(validationRules.frequency_penalty(0)).toBe(true)
71-
expect(validationRules.frequency_penalty(-0.1)).toBe(false)
72-
expect(validationRules.frequency_penalty(1.1)).toBe(false)
71+
expect(validationRules.frequency_penalty(-0.1)).toBe(true)
72+
expect(validationRules.frequency_penalty(1.1)).toBe(true)
7373
expect(validationRules.frequency_penalty('0.5')).toBe(false)
7474
})
7575

7676
it('should validate presence_penalty correctly', () => {
7777
expect(validationRules.presence_penalty(0.5)).toBe(true)
7878
expect(validationRules.presence_penalty(1)).toBe(true)
7979
expect(validationRules.presence_penalty(0)).toBe(true)
80-
expect(validationRules.presence_penalty(-0.1)).toBe(false)
81-
expect(validationRules.presence_penalty(1.1)).toBe(false)
80+
expect(validationRules.presence_penalty(-0.1)).toBe(true)
81+
expect(validationRules.presence_penalty(1.1)).toBe(true)
8282
expect(validationRules.presence_penalty('0.5')).toBe(false)
8383
})
8484

@@ -255,16 +255,16 @@ describe('extractInferenceParams', () => {
255255
top_p: 0.9,
256256
stream: true,
257257
max_tokens: 50.3,
258-
invalid_param: 'should_be_ignored'
258+
invalid_param: 'should_be_ignored',
259259
}
260-
260+
261261
const result = extractInferenceParams(modelParams as any)
262262
expect(result).toEqual({
263263
temperature: 1.5,
264264
token_limit: 100,
265265
top_p: 0.9,
266266
stream: true,
267-
max_tokens: 50
267+
max_tokens: 50,
268268
})
269269
})
270270

@@ -296,9 +296,9 @@ describe('extractModelLoadParams', () => {
296296
prompt_template: 'template',
297297
llama_model_path: '/path/to/model',
298298
vision_model: false,
299-
invalid_param: 'should_be_ignored'
299+
invalid_param: 'should_be_ignored',
300300
}
301-
301+
302302
const result = extractModelLoadParams(modelParams as any)
303303
expect(result).toEqual({
304304
ctx_len: 2048,
@@ -308,23 +308,23 @@ describe('extractModelLoadParams', () => {
308308
cpu_threads: 8,
309309
prompt_template: 'template',
310310
llama_model_path: '/path/to/model',
311-
vision_model: false
311+
vision_model: false,
312312
})
313313
})
314314

315315
it('should handle parameters without validation rules', () => {
316-
const modelParams = {
316+
const modelParams = {
317317
engine: 'llama',
318318
pre_prompt: 'System:',
319319
system_prompt: 'You are helpful',
320-
model_path: '/path'
320+
model_path: '/path',
321321
}
322322
const result = extractModelLoadParams(modelParams as any)
323323
expect(result).toEqual({
324324
engine: 'llama',
325325
pre_prompt: 'System:',
326326
system_prompt: 'You are helpful',
327-
model_path: '/path'
327+
model_path: '/path',
328328
})
329329
})
330330

core/src/browser/models/utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ import { ModelParams, ModelRuntimeParams, ModelSettingParams } from '../../types
88
export const validationRules: { [key: string]: (value: any) => boolean } = {
99
temperature: (value: any) => typeof value === 'number' && value >= 0 && value <= 2,
1010
token_limit: (value: any) => Number.isInteger(value) && value >= 0,
11-
top_k: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
11+
top_k: (value: any) => typeof value === 'number' && value >= 0,
1212
top_p: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
1313
stream: (value: any) => typeof value === 'boolean',
1414
max_tokens: (value: any) => Number.isInteger(value) && value >= 0,
1515
stop: (value: any) => Array.isArray(value) && value.every((v) => typeof v === 'string'),
16-
frequency_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
17-
presence_penalty: (value: any) => typeof value === 'number' && value >= 0 && value <= 1,
16+
frequency_penalty: (value: any) => typeof value === 'number' && value >= -2 && value <= 2,
17+
presence_penalty: (value: any) => typeof value === 'number' && value >= -2 && value <= 2,
1818
repeat_last_n: (value: any) => typeof value === 'number',
1919
repeat_penalty: (value: any) => typeof value === 'number',
2020
min_p: (value: any) => typeof value === 'number',

0 commit comments

Comments
 (0)