Class: Ace::LLM::Molecules::ProviderModelParser
- Inherits:
-
Object
- Object
- Ace::LLM::Molecules::ProviderModelParser
- Defined in:
- lib/ace/llm/molecules/provider_model_parser.rb
Overview
ProviderModelParser handles parsing and validation of provider:model syntax for the unified LLM query interface.
Defined Under Namespace
Classes: ParseResult
Constant Summary collapse
- THINKING_LEVELS =
%w[low medium high xhigh].freeze
Instance Attribute Summary collapse
-
#alias_resolver ⇒ Object
readonly
Returns the value of attribute alias_resolver.
-
#registry ⇒ Object
readonly
Returns the value of attribute registry.
Instance Method Summary collapse
- #default_model_for(provider) ⇒ Object
- #dynamic_aliases ⇒ Object
-
#initialize(alias_resolver: nil, registry: nil) ⇒ ProviderModelParser
constructor
A new instance of ProviderModelParser.
-
#parse(input) ⇒ Object
Parse a provider:model string or alias.
- #supported_providers ⇒ Object
Constructor Details
#initialize(alias_resolver: nil, registry: nil) ⇒ ProviderModelParser
Returns a new instance of ProviderModelParser.
34 35 36 37 38 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 34 def initialize(alias_resolver: nil, registry: nil) @alias_resolver = alias_resolver || LlmAliasResolver.new @registry = registry || ClientRegistry.new @role_resolver = RoleResolver.new(registry: @registry) end |
Instance Attribute Details
#alias_resolver ⇒ Object (readonly)
Returns the value of attribute alias_resolver.
32 33 34 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 32 def alias_resolver @alias_resolver end |
#registry ⇒ Object (readonly)
Returns the value of attribute registry.
32 33 34 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 32 def registry @registry end |
Instance Method Details
#default_model_for(provider) ⇒ Object
58 59 60 61 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 58 def default_model_for(provider) models = @registry.models_for_provider(provider) models&.first end |
#dynamic_aliases ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 63 def dynamic_aliases return {} unless @alias_resolver global = @alias_resolver.available_aliases[:global] || {} providers = @alias_resolver.available_aliases[:providers] || {} flattened = {} providers.each do |provider, aliases| aliases.each do |alias_name, model| flattened["#{provider}:#{alias_name}"] = "#{provider}:#{model}" end end global.merge(flattened) end |
#parse(input) ⇒ Object
Parse a provider:model string or alias.
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 41 def parse(input) return create_error_result(input, "Input cannot be nil or empty") if input.nil? || input.strip.empty? original_input = input.strip if role_reference?(original_input) return parse_role_reference(original_input) end parse_standard_target(original_input) rescue Ace::LLM::ConfigurationError => e create_error_result(original_input, e.) end |
#supported_providers ⇒ Object
54 55 56 |
# File 'lib/ace/llm/molecules/provider_model_parser.rb', line 54 def supported_providers @registry.available_providers end |