Spaces:
Running
Running
Amlan-109
feat: Initial commit of LocalAI Amlan Edition with premium branding and personalization
750bbe6
| package application | |
| import ( | |
| "context" | |
| "sync" | |
| "github.com/mudler/LocalAI/core/config" | |
| "github.com/mudler/LocalAI/core/services" | |
| "github.com/mudler/LocalAI/core/templates" | |
| "github.com/mudler/LocalAI/pkg/model" | |
| ) | |
| type Application struct { | |
| backendLoader *config.ModelConfigLoader | |
| modelLoader *model.ModelLoader | |
| applicationConfig *config.ApplicationConfig | |
| startupConfig *config.ApplicationConfig // Stores original config from env vars (before file loading) | |
| templatesEvaluator *templates.Evaluator | |
| galleryService *services.GalleryService | |
| agentJobService *services.AgentJobService | |
| watchdogMutex sync.Mutex | |
| watchdogStop chan bool | |
| p2pMutex sync.Mutex | |
| p2pCtx context.Context | |
| p2pCancel context.CancelFunc | |
| agentJobMutex sync.Mutex | |
| } | |
| func newApplication(appConfig *config.ApplicationConfig) *Application { | |
| return &Application{ | |
| backendLoader: config.NewModelConfigLoader(appConfig.SystemState.Model.ModelsPath), | |
| modelLoader: model.NewModelLoader(appConfig.SystemState), | |
| applicationConfig: appConfig, | |
| templatesEvaluator: templates.NewEvaluator(appConfig.SystemState.Model.ModelsPath), | |
| } | |
| } | |
| func (a *Application) ModelConfigLoader() *config.ModelConfigLoader { | |
| return a.backendLoader | |
| } | |
| func (a *Application) ModelLoader() *model.ModelLoader { | |
| return a.modelLoader | |
| } | |
| func (a *Application) ApplicationConfig() *config.ApplicationConfig { | |
| return a.applicationConfig | |
| } | |
| func (a *Application) TemplatesEvaluator() *templates.Evaluator { | |
| return a.templatesEvaluator | |
| } | |
| func (a *Application) GalleryService() *services.GalleryService { | |
| return a.galleryService | |
| } | |
| func (a *Application) AgentJobService() *services.AgentJobService { | |
| return a.agentJobService | |
| } | |
| // StartupConfig returns the original startup configuration (from env vars, before file loading) | |
| func (a *Application) StartupConfig() *config.ApplicationConfig { | |
| return a.startupConfig | |
| } | |
| func (a *Application) start() error { | |
| galleryService := services.NewGalleryService(a.ApplicationConfig(), a.ModelLoader()) | |
| err := galleryService.Start(a.ApplicationConfig().Context, a.ModelConfigLoader(), a.ApplicationConfig().SystemState) | |
| if err != nil { | |
| return err | |
| } | |
| a.galleryService = galleryService | |
| // Initialize agent job service | |
| agentJobService := services.NewAgentJobService( | |
| a.ApplicationConfig(), | |
| a.ModelLoader(), | |
| a.ModelConfigLoader(), | |
| a.TemplatesEvaluator(), | |
| ) | |
| err = agentJobService.Start(a.ApplicationConfig().Context) | |
| if err != nil { | |
| return err | |
| } | |
| a.agentJobService = agentJobService | |
| return nil | |
| } | |