Allow readable profile names and configurable KV cache

This commit is contained in:
Mikei386
2026-09-30 09:52:36 +02:00
parent fac4a12d52
commit cbcd5a0131
7 changed files with 32 additions and 14 deletions
+8 -2
View File
@@ -39,7 +39,7 @@ class ManagementTests(unittest.TestCase):
req.update(id=saved['id'],revision=1)
self.profiles.save(req)
restarted=Profiles(self.root/'profiles.json',self.catalog)
self.assertEqual(restarted.status()['profiles'][0]['parameters'],dict(params,mtp=False,mtp_tokens=2,mtp_min_p=.05,gpu_offload='auto',gpu_reserve_mode='auto',gpu_reserve_mib={},vision_projector=None,vision_device='cpu'))
self.assertEqual(restarted.status()['profiles'][0]['parameters'],dict(params,mtp=False,mtp_tokens=2,mtp_min_p=.05,gpu_offload='auto',gpu_reserve_mode='auto',gpu_reserve_mib={},vision_projector=None,vision_device='cpu',cache_type_k='q4_0',cache_type_v='q4_0'))
for change in [dict(gpu_offload='unknown'),dict(mtp='yes'),dict(mtp_tokens=0),dict(mtp_tokens=True),dict(mtp_min_p=1.1),dict(gpu_devices=devices*2),dict(tensor_split=[85]),dict(split_mode='none'),dict(top_p=1.1),dict(temperature=float('nan')),dict(top_k=True),dict(tensor_split=[0,100]),dict(gpu_devices=['CUDA0','CUDA1'])]:
with self.subTest(change=change),self.assertRaises(ValueError):self.profiles.save(dict(req,revision=2,parameters=dict(params,**change)))
@@ -49,8 +49,14 @@ class ManagementTests(unittest.TestCase):
change=self.request();change.update(id=saved['id'],revision=saved['revision']);change['parameters']['width']=512;other.save(change)
with self.assertRaises(ValueError):other.save(change)
self.assertEqual(other.status()['profiles'][0]['parameters']['width'],512)
def test_readable_api_profile_name(self):
row=self.profiles.save(dict(self.request(),name='Qwen3.8 27B MEDIUM'))
self.assertEqual(row['name'],'Qwen3.8 27B MEDIUM')
self.assertEqual(Profiles(self.root/'profiles.json',self.catalog).status()['profiles'][0]['name'],row['name'])
for bad in (' Qwen','Qwen ','Qwen/Medium','Qwen\nMedium'):
with self.subTest(bad=bad),self.assertRaises(ValueError):self.profiles.save(dict(self.request(),name=bad))
def test_profile_rejects_invalid_model_kind_parameters(self):
for change in [dict(model_id='../secrets'),dict(kind='chat'),dict(name='bad name')]:
for change in [dict(model_id='../secrets'),dict(kind='chat'),dict(name='bad/name')]:
with self.subTest(change=change),self.assertRaises(ValueError):self.profiles.save(dict(self.request(),**change))
for key,value in [('width',1000),('steps',True),('guidance',float('nan')),('seed',-2)]:
req=self.request();req['parameters'][key]=value