from django.apps import AppConfig from django.conf import settings import json from jinja2 import Template import os import inspect from tools.envConf.def_conf import * from AI.tools.models.model import Model class SkyNetConfig(AppConfig): name = 'AI.skyNet' def ready(self): env_conf = settings.ENV_CONF with open(env_conf[AI_MODELS_PATH]) as f: ai_conf = json.load(f) with open('AI/tools/AI.json.jinja') as f: json_template_string = f.read() nets = {} tasks_formatted = [] json_template = Template(json_template_string) for net in sorted(ai_conf.keys()): model = ai_conf[net]['model'] model_module = Model.search_by('LABEL', model) training_ia_files_path = str(os.getcwd()) + '/training_ia_files/' try: try: nets[net] = model_module(ai_conf[net]['weights'], ai_conf[net]['conf'], **ai_conf[net]['attributes']) except: nets[net] = model_module(training_ia_files_path + ai_conf[net]['weights'].split('/',1)[1], training_ia_files_path + ai_conf[net]['conf'].split('/',1)[1], **ai_conf[net]['attributes']) ready = 'true' indexes_list = json.dumps(nets[net].entities_list) except model_module.not_found_error: ready = 'false' indexes_list = 'null' rendered_string = json_template.render(label=net, name=net, indexes_list=indexes_list, model=net, ready=ready) tasks_formatted.append(rendered_string) env_conf['env_ai_automatic_models'] = [tasks_formatted, list] env_conf['nets'] = [nets, dict]