module RubyLLM::Provider

def self.included(base)

def self.included(base)
  base.include(InstanceMethods)
end

def for(model)

def for(model)
  model_info = Models.find(model)
  provider_class = providers[model_info.provider.to_sym] or
    raise Error, "No provider registered for #{model_info.provider}"
  provider_class.new
end

def providers

def providers
  @providers ||= {}
end

def register(name, provider_class)

def register(name, provider_class)
  providers[name.to_sym] = provider_class
end