package provider import ( "context" "github.com/cloudwego/eino/schema" "ai_scheduler/internal/domain/llm" ) type Adapter interface { Generate(ctx context.Context, input []*schema.Message, opts llm.Options) (*schema.Message, error) Stream(ctx context.Context, input []*schema.Message, opts llm.Options) (*schema.StreamReader[*schema.Message], error) } type Factory func() Adapter var registry = map[string]Factory{} func Register(name string, f Factory) { registry[name] = f } func Get(name string) Factory { return registry[name] }