Expose profile context metadata for llama.cpp model discovery

This commit is contained in:
Mikei386 committed 2026-10-02 20:49:21 +02:00
1 parent a7b30b62d2
commit 1f8ffe2e72
3 files changed
+61 -2

No files matched your search

+20 -1
View File
@@ -61,6 +61,25 @@ class EndpointTests(unittest.TestCase):
def request(self,path='/v1/models',data=None,token='A'*32):
conn=http.client.HTTPConnection('127.0.0.1',self.port,timeout=5);headers={'Content-Type':'application/json','Authorization':'Bearer '+token}
conn.request('POST' if data is not None else 'GET',path,body=json.dumps(data) if data is not None else None,headers=headers);r=conn.getresponse();body=r.read();conn.close();return r.status,(body if data and data.get('stream') else json.loads(body))
def test_discovery_reports_profile_context_without_loading(self):
self.rows[0]['parameters'].update(context=160000,slots=2)
self.rows[0]['model']={'repo':'Qwen/Qwen3.8-27B'}
self.enable('alpha')
self.ep.scheduler.gpu_mode='separator'
status,listing=self.request('/models')
self.assertEqual(status,200)
self.assertEqual(listing['data'][0]['context_window'],160000)
status,props=self.request('/props?model=alpha&autoload=false')
self.assertEqual(status,200)
self.assertEqual(props['default_generation_settings']['n_ctx'],160000)
self.assertEqual(props['total_slots'],2)
self.assertTrue(props['chat_template_caps']['supports_tool_calls'])
self.rows[0]['parameters']['context']=32768
self.assertEqual(self.request('/props?model=alpha&autoload=false')[1]['n_ctx'],32768)
self.assertEqual(self.request('/props?model=beta&autoload=false')[0],404)
self.assertEqual(self.request('/props?model=alpha',token='bad')[0],401)
self.assertFalse(self.worker.started)
def test_status_allows_video_callback_to_read_endpoint_from_other_thread(self):
finished=threading.Event();readers=[]
def video_status():
@@ -95,7 +114,7 @@ class EndpointTests(unittest.TestCase):
status,error=self.request('/v1/chat/completions',dict(model='alpha',messages=[dict(role='user',content='Synthetic')]))
self.assertEqual(status,503);self.assertEqual(error['error']['code'],'separator_mode_active')
self.assertEqual(self.worker.started,[]);self.ep.video.relay.assert_not_called()
self.assertEqual(self.request('/v1/models')[0],503)
self.assertEqual(self.request('/v1/models')[0],200)
def enable(self,name):self.ep.enable(dict(id=name,enabled=True))
def test_explicit_publication_auth_rotation_and_missing_audio(self):
self.assertEqual(self.request()[1]['data'],[]);self.assertEqual(self.request(token='bad')[0],401)