Class: Legion::Extensions::Llm::Routing::OfferingRegistry
- Inherits:
-
Object
- Object
- Legion::Extensions::Llm::Routing::OfferingRegistry
- Includes:
- Enumerable
- Defined in:
- lib/legion/extensions/llm/routing/offering_registry.rb
Overview
DEPRECATED (Phase 4 removal): the old mutable registry, kept only for old callers. It is never returned by Inventory::Registry.snapshot. In-memory index of provider-neutral model offerings.
Instance Method Summary collapse
- #all ⇒ Object (also: #list)
- #by_capability(capability) ⇒ Object
- #by_model_family(model_family) ⇒ Object
- #by_provider_family(provider_family) ⇒ Object
- #by_provider_instance(provider_instance) ⇒ Object
- #each ⇒ Object
- #filter(**criteria) ⇒ Object
- #find(offering_id) ⇒ Object
- #find_by_model_alias(alias_name) ⇒ Object
-
#initialize(offerings = []) ⇒ OfferingRegistry
constructor
A new instance of OfferingRegistry.
- #register(offering) ⇒ Object
Constructor Details
#initialize(offerings = []) ⇒ OfferingRegistry
Returns a new instance of OfferingRegistry.
13 14 15 16 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 13 def initialize(offerings = []) @offerings = [] Array(offerings).each { |offering| register(offering) } end |
Instance Method Details
#all ⇒ Object Also known as: list
29 30 31 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 29 def all @offerings.dup end |
#by_capability(capability) ⇒ Object
66 67 68 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 66 def by_capability(capability) filter(capability:) end |
#by_model_family(model_family) ⇒ Object
58 59 60 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 58 def by_model_family(model_family) filter(model_family:) end |
#by_provider_family(provider_family) ⇒ Object
54 55 56 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 54 def by_provider_family(provider_family) filter(provider_family:) end |
#by_provider_instance(provider_instance) ⇒ Object
62 63 64 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 62 def by_provider_instance(provider_instance) filter(provider_instance:) end |
#each ⇒ Object
25 26 27 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 25 def each(&) @offerings.each(&) end |
#filter(**criteria) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 42 def filter(**criteria) @offerings.select do |offering| matches_symbol?(offering.provider_family, criteria[:provider_family]) && matches_symbol?(offering.model_family, criteria[:model_family]) && matches_symbol?(offering.provider_instance, criteria[:provider_instance]) && matches_capability?(offering, criteria[:capability]) && matches_model_alias?(offering, criteria[:model_alias]) && matches_model?(offering, criteria[:model]) && matches_usage_type?(offering, criteria[:usage_type]) end end |
#find(offering_id) ⇒ Object
34 35 36 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 34 def find(offering_id) @offerings.find { |offering| offering.offering_id == offering_id.to_s } end |
#find_by_model_alias(alias_name) ⇒ Object
38 39 40 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 38 def find_by_model_alias(alias_name) @offerings.find { |offering| offering.model_alias?(alias_name) } end |
#register(offering) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/legion/extensions/llm/routing/offering_registry.rb', line 18 def register(offering) normalized = normalize_offering(offering) @offerings.reject! { |existing| existing.offering_id == normalized.offering_id } @offerings << normalized normalized end |