Class: Legion::Extensions::Llm::Aliases

Inherits:
Object
  • Object
show all
Defined in:
lib/legion/extensions/llm/aliases.rb

Overview

Manages model aliases for provider-specific versions

Class Method Summary collapse

Class Method Details

.aliasesObject



36
37
38
# File 'lib/legion/extensions/llm/aliases.rb', line 36

def aliases
  @aliases ||= load_aliases
end

.aliases_fileObject



40
41
42
# File 'lib/legion/extensions/llm/aliases.rb', line 40

def aliases_file
  File.expand_path('aliases.json', __dir__)
end

.canonical_model_alias(model_id, provider = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/legion/extensions/llm/aliases.rb', line 23

def canonical_model_alias(model_id, provider = nil)
  normalized = normalize_model_alias(model_id)
  provider_name = provider&.to_s

  aliases.each do |alias_name, provider_map|
    next unless alias_matches?(provider_map, normalized, provider_name)

    return alias_name
  end

  normalized
end

.load_aliasesObject



44
45
46
47
48
49
50
# File 'lib/legion/extensions/llm/aliases.rb', line 44

def load_aliases
  if File.exist?(aliases_file)
    Legion::JSON.parse(File.read(aliases_file), symbolize_names: false)
  else
    {}
  end
end

.normalize_model_alias(model_id) ⇒ Object



19
20
21
# File 'lib/legion/extensions/llm/aliases.rb', line 19

def normalize_model_alias(model_id)
  model_id.to_s.strip
end

.reload!Object



52
53
54
# File 'lib/legion/extensions/llm/aliases.rb', line 52

def reload!
  @aliases = load_aliases
end

.resolve(model_id, provider = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/legion/extensions/llm/aliases.rb', line 9

def resolve(model_id, provider = nil)
  return model_id unless aliases[model_id]

  if provider
    aliases[model_id][provider.to_s] || model_id
  else
    aliases[model_id].values.first || model_id
  end
end