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());
}
}