private void load()

in server/src/main/java/com/epam/aidial/core/server/config/FileConfigStore.java [59:130]


    private void load(boolean fail) {
        try {
            Config config = loadConfig();

            for (Map.Entry<String, Route> entry : config.getRoutes().entrySet()) {
                String name = entry.getKey();
                Route route = entry.getValue();
                route.setName(name);
            }

            for (Map.Entry<String, Model> entry : config.getModels().entrySet()) {
                String name = entry.getKey();
                Model model = entry.getValue();
                model.setName(name);
            }

            for (Map.Entry<String, Addon> entry : config.getAddons().entrySet()) {
                String name = entry.getKey();
                Addon addon = entry.getValue();
                addon.setName(name);
            }

            Assistants assistants = config.getAssistant();
            for (Map.Entry<String, Assistant> entry : assistants.getAssistants().entrySet()) {
                String name = entry.getKey();
                Assistant assistant = entry.getValue();
                assistant.setName(name);

                if (assistant.getEndpoint() == null) {
                    assistant.setEndpoint(assistants.getEndpoint());
                }

                setMissingFeatures(assistant, assistants.getFeatures());
            }
            // base assistant
            if (assistants.getEndpoint() != null) {
                Assistant baseAssistant = new Assistant();
                baseAssistant.setName(ASSISTANT);
                baseAssistant.setEndpoint(assistants.getEndpoint());
                baseAssistant.setFeatures(assistants.getFeatures());
                assistants.getAssistants().put(ASSISTANT, baseAssistant);
            }

            for (Map.Entry<String, Application> entry : config.getApplications().entrySet()) {
                String name = entry.getKey();
                Application application = entry.getValue();
                application.setName(name);
            }

            apiKeyStore.addProjectKeys(config.getKeys());

            for (Map.Entry<String, Role> entry : config.getRoles().entrySet()) {
                String name = entry.getKey();
                Role role = entry.getValue();
                role.setName(name);
            }

            for (Map.Entry<String, Interceptor> entry : config.getInterceptors().entrySet()) {
                String name = entry.getKey();
                Interceptor interceptor = entry.getValue();
                interceptor.setName(name);
            }

            this.config = config;
        } catch (Throwable e) {
            if (fail) {
                throw e;
            }

            log.warn("Failed to reload config: {}", e.getMessage());
        }
    }