main
py 64 lines 2.28 KB
Raw
1 import asyncio
2 from helpers import runtime
3 from helpers.print_style import PrintStyle
4 import models
5 from plugins._kokoro_tts.helpers import runtime as kokoro_tts_runtime
6 from plugins._whisper_stt.helpers import runtime as whisper_stt_runtime
7
8
9 async def preload():
10 try:
11 # preload whisper model
12 async def preload_whisper():
13 if not whisper_stt_runtime.is_globally_enabled():
14 return None
15 try:
16 config = whisper_stt_runtime.get_config()
17 return await whisper_stt_runtime.preload(str(config["model_size"]))
18 except Exception as e:
19 PrintStyle().error(f"Error in preload_whisper: {e}")
20
21 # preload embedding model
22 async def preload_embedding():
23 try:
24 from plugins._model_config.helpers.model_config import get_embedding_model_config_object
25 emb_cfg = get_embedding_model_config_object()
26 if emb_cfg.provider.lower() == "huggingface":
27 emb_mod = models.get_embedding_model(
28 emb_cfg.provider,
29 emb_cfg.name,
30 model_config=emb_cfg,
31 **emb_cfg.build_kwargs(),
32 )
33 emb_txt = await emb_mod.aembed_query("test")
34 return emb_txt
35 except Exception as e:
36 PrintStyle().error(f"Error in preload_embedding: {e}")
37
38 # preload kokoro tts model if enabled
39 async def preload_kokoro():
40 if not kokoro_tts_runtime.is_globally_enabled():
41 return None
42 try:
43 return await kokoro_tts_runtime.preload()
44 except Exception as e:
45 PrintStyle().error(f"Error in preload_kokoro: {e}")
46
47 # async tasks to preload
48 tasks = [
49 preload_embedding(),
50 # preload_whisper(),
51 # preload_kokoro()
52 ]
53
54 await asyncio.gather(*tasks, return_exceptions=True)
55 PrintStyle().print("Preload completed.")
56 except Exception as e:
57 PrintStyle().error(f"Error in preload: {e}")
58
59
60 # preload transcription model
61 if __name__ == "__main__":
62 PrintStyle().print("Running preload...")
63 runtime.initialize()
64 asyncio.run(preload())