mirror of
https://github.com/BoardWare-Genius/jarvis-models.git
synced 2025-12-13 16:53:24 +00:00
119 lines
3.4 KiB
Python
119 lines
3.4 KiB
Python
from .blackbox import Blackbox
|
|
from injector import inject, singleton, Injector
|
|
from ..configuration import BlackboxConf
|
|
|
|
blackboxConf = Injector().get(BlackboxConf)
|
|
|
|
def model_loader(lazy=blackboxConf.lazyloading):
|
|
def load(init_fun):
|
|
model = None
|
|
if not lazy:
|
|
model = init_fun()
|
|
def inner():
|
|
nonlocal model
|
|
if model is None:
|
|
model = init_fun()
|
|
return model
|
|
return inner
|
|
return load
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def text_and_image_loader():
|
|
from .text_and_image import TextAndImage
|
|
return Injector().get(TextAndImage)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def audio_chat_loader():
|
|
from .audio_chat import AudioChat
|
|
return Injector().get(AudioChat)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def sentiment_loader():
|
|
from .sentiment import Sentiment
|
|
return Injector().get(Sentiment)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def g2e_loader():
|
|
from .g2e import G2E
|
|
return Injector().get(G2E)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def asr_loader():
|
|
from .asr import ASR
|
|
return Injector().get(ASR)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def vlms_loader():
|
|
from .vlms import VLMS
|
|
return Injector().get(VLMS)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def melotts_loader():
|
|
from .melotts import MeloTTS
|
|
return Injector().get(MeloTTS)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def tts_loader():
|
|
from .tts import TTS
|
|
return Injector().get(TTS)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def emotion_loader():
|
|
from .emotion import Emotion
|
|
return Injector().get(Emotion)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def fastchat_loader():
|
|
from .fastchat import Fastchat
|
|
return Injector().get(Fastchat)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def chat_loader():
|
|
from .chat import Chat
|
|
return Injector().get(Chat)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def chroma_query_loader():
|
|
from .chroma_query import ChromaQuery
|
|
return Injector().get(ChromaQuery)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def chroma_upsert_loader():
|
|
from .chroma_upsert import ChromaUpsert
|
|
return Injector().get(ChromaUpsert)
|
|
|
|
@model_loader(lazy=blackboxConf.lazyloading)
|
|
def chroma_chat_load():
|
|
from .chroma_chat import ChromaChat
|
|
return Injector().get(ChromaChat)
|
|
|
|
@singleton
|
|
class BlackboxFactory:
|
|
models = {}
|
|
|
|
@inject
|
|
def __init__(self,) -> None:
|
|
self.models["asr"] = asr_loader
|
|
self.models["tts"] = tts_loader
|
|
self.models["sentiment_engine"] = sentiment_loader
|
|
self.models["emotion"] = emotion_loader
|
|
self.models["fastchat"] = fastchat_loader
|
|
self.models["audio_chat"] = audio_chat_loader
|
|
self.models["g2e"] = g2e_loader
|
|
self.models["text_and_image"] = text_and_image_loader
|
|
self.models["chroma_query"] = chroma_query_loader
|
|
self.models["chroma_upsert"] = chroma_upsert_loader
|
|
self.models["chroma_chat"] = chroma_chat_load
|
|
self.models["melotts"] = melotts_loader
|
|
self.models["vlms"] = vlms_loader
|
|
self.models["chat"] = chat_loader
|
|
|
|
def __call__(self, *args, **kwargs):
|
|
return self.processing(*args, **kwargs)
|
|
|
|
def get_blackbox(self, blackbox_name: str) -> Blackbox:
|
|
model = self.models.get(blackbox_name)
|
|
if model is None:
|
|
raise ValueError("Invalid Blackbox Type...")
|
|
return model()
|