Class: Legion::Extensions::Llm::Aliases
- Inherits:
-
Object
- Object
- Legion::Extensions::Llm::Aliases
- Defined in:
- lib/legion/extensions/llm/aliases.rb
Overview
Manages model aliases for provider-specific versions
Class Method Summary collapse
- .aliases ⇒ Object
- .aliases_file ⇒ Object
- .canonical_model_alias(model_id, provider = nil) ⇒ Object
- .load_aliases ⇒ Object
- .normalize_model_alias(model_id) ⇒ Object
- .reload! ⇒ Object
- .resolve(model_id, provider = nil) ⇒ Object
Class Method Details
.aliases ⇒ Object
36 37 38 |
# File 'lib/legion/extensions/llm/aliases.rb', line 36 def aliases @aliases ||= load_aliases end |
.aliases_file ⇒ Object
40 41 42 |
# File 'lib/legion/extensions/llm/aliases.rb', line 40 def aliases_file File.('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_aliases ⇒ Object
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 |