Class: Layered::Assistant::Models::CreateService

Inherits:
Object
  • Object
show all
Defined in:
app/services/layered/assistant/models/create_service.rb

Constant Summary collapse

MODELS_URL =
"https://raw.githubusercontent.com/layered-ai-public/layered-assistant-rails/main/data/models.json".freeze
LOCAL_MODELS_PATH =
Layered::Assistant::Engine.root.join("data", "models.json").freeze

Instance Method Summary collapse

Constructor Details

#initialize(provider) ⇒ CreateService

Returns a new instance of CreateService.



11
12
13
# File 'app/services/layered/assistant/models/create_service.rb', line 11

def initialize(provider)
  @provider = provider
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/services/layered/assistant/models/create_service.rb', line 15

def call
  models_data = Rails.env.development? ? load_local_models : fetch_models
  return if models_data.nil?

  entries = models_data[@provider.name]
  if entries.nil?
    Rails.logger.info "[layered-ui-assistant] No models found for provider #{@provider.name.inspect} in remote catalogue"
    return
  end

  entries.each do |entry|
    @provider.models.find_or_create_by!(identifier: entry["identifier"]) do |model|
      model.name = entry["name"]
    end
  end
end