added backend which maintains ai instances;
added frontend as control panel
This commit is contained in:
35
backend/ai/services/AiService.py
Normal file
35
backend/ai/services/AiService.py
Normal file
@@ -0,0 +1,35 @@
|
||||
from .AiInstance import AiInstance
|
||||
from ..models import AiConfig
|
||||
|
||||
|
||||
class AiService:
|
||||
instances: [AiInstance] = []
|
||||
|
||||
# Singleton
|
||||
# def __new__(cls):
|
||||
# if not hasattr(cls, 'instance'):
|
||||
# cls.instance = super(AiService, cls).__new__(cls)
|
||||
# return cls.instance
|
||||
|
||||
def __init__(self):
|
||||
print('Initializing AiService')
|
||||
|
||||
def get_configurations(self) -> [AiConfig]:
|
||||
return AiConfig.objects.filter()
|
||||
|
||||
def get_instances(self) -> [AiInstance]:
|
||||
self.__ensure_instances_inited__()
|
||||
return self.instances
|
||||
|
||||
def get_instance(self, name: str) -> AiInstance:
|
||||
return [i for i in self.get_instances() if i.configuration.name == name][0]
|
||||
|
||||
def __ensure_instances_inited__(self):
|
||||
for config in self.get_configurations():
|
||||
if len([i for i in self.instances if i.configuration.name == config.name]) == 0:
|
||||
self.instances.append(AiInstance(config))
|
||||
|
||||
def __del__(self):
|
||||
print('Destructing AiService')
|
||||
for instance in self.instances:
|
||||
del instance
|
||||
Reference in New Issue
Block a user