Keep TTS and STT workers resident between requests

This commit is contained in:
Mikei386
2026-09-29 20:37:29 +02:00
parent 3dcf2d3f76
commit 90a97567f3
11 changed files with 197 additions and 80 deletions
+6 -2
View File
@@ -94,7 +94,8 @@ class Server(ThreadingHTTPServer):
self.scheduler=Scheduler(self.worker)
self.profiles.chat_blockers=self.worker.blockers
self.image_tests.acquire=self.scheduler.image_reservation
self.tts_tests.acquire=self.scheduler.image_reservation
self.tts_tests.acquire=self.scheduler.tts_reservation
self.scheduler.evict_tts=self.tts_tests.unload_idle
self.stt=STT(self.profiles,self.catalog,self.runtime)
self.profiles.stt_blockers=self.stt.blockers
self.endpoint=Endpoint(self.catalog.root.parent,self.profiles,self.worker,self.scheduler,self.image_tests,self.credentials,self.server_port)
@@ -471,7 +472,10 @@ class Handler(BaseHTTPRequestHandler):
if tts_job and tts_job.get("state")=="running" and tts_job.get("profile_id")==data.get("id"):raise ValueError("Dieses TTS-Profil wird gerade ausgeführt. Zuerst den Auftrag beenden.")
job=self.server.image_tests.job
if job and job.get('state')=='running' and job.get('profile_id')==data.get('id'):raise ValueError('Dieses Profil wird gerade ausgeführt. Zuerst den Auftrag beenden.')
return self.respond(self.server.profiles.delete(data))
result=self.server.profiles.delete(data)
if stt_job and stt_job.get('profile_id')==data.get('id'):self.server.stt.stop()
if tts_job and tts_job.get('profile_id')==data.get('id'):self.server.tts_tests.stop()
return self.respond(result)
except ValueError as exc:return self.respond({'error':str(exc)},400)
except OSError:return self.respond({'error':'Profil konnte nicht gelöscht werden.'},503)
if self.path == '/api/v1/profiles/save':