Training Through Extension DI01
When config.Training.Enabled is true, the extension registers:
ai.ModelTrainerai.DataManagerai.PipelineManager
Enable Training Services
ext := ai.NewExtension(
ai.WithTrainingConfig(ai.TrainingConfiguration{
Enabled: true,
CheckpointPath: "./checkpoints",
ModelPath: "./models",
DataPath: "./data",
MaxConcurrentJobs: 5,
}),
)Resolve Services by Type
trainer, err := forge.InjectType[ai.ModelTrainer](app.Container())
dataMgr, err := forge.InjectType[ai.DataManager](app.Container())
pipelineMgr, err := forge.InjectType[ai.PipelineManager](app.Container())Inference Package Usage02
extensions/ai/inference is a standalone package with its own lifecycle.
The extension config has InferenceConfiguration, but the extension does not currently auto-create/start InferenceEngine from that block.
Typical Direct Usage
engine, err := inference.NewInferenceEngine(inference.InferenceConfig{
Workers: 4,
BatchSize: 16,
BatchTimeout: 100 * time.Millisecond,
EnableBatching: true,
EnableCaching: true,
EnableScaling: true,
})
if err != nil {
return err
}
if err := engine.Start(ctx); err != nil {
return err
}
defer engine.Stop(ctx)Middleware Package Usage03
extensions/ai/middleware provides independent middleware components such as:
intelligent rate limiting
anomaly detection
personalization
response optimization
adaptive load balancing
security scanning
Each middleware has its own constructor and Initialize/Process flow.
Monitoring Package Usage04
extensions/ai/monitoring provides independent monitoring systems:
AIHealthMonitorAIMetricsCollectorAIAlertManagerAIDashboard
These are not auto-wired by ai.Extension. Instantiate and run them explicitly.
Practical Guidance05
Use extension DI for shared core services (LLM manager, stores, agents, training interfaces).
Instantiate inference/middleware/monitoring modules explicitly where you need lifecycle control.
Keep startup ownership clear: extension bootstraps core AI graph; app code bootstraps advanced pipelines.