Module: Legion::Extensions::Llm::AzureFoundry::ProviderClassMethods
- Included in:
- Provider
- Defined in:
- lib/legion/extensions/llm/azure_foundry/provider.rb
Overview
Class-level methods for Provider — exposed via extend.
Instance Method Summary collapse
- #capabilities ⇒ Object
- #configuration_options ⇒ Object
- #configuration_requirements ⇒ Object
- #default_tier ⇒ Object
- #default_transport ⇒ Object
- #deployment_config(model_id, config:) ⇒ Object
- #normalize_deployments(deployments) ⇒ Object
- #registry_publisher ⇒ Object
- #resolve_model_id(model_id, config: nil) ⇒ Object
- #slug ⇒ Object
Instance Method Details
#capabilities ⇒ Object
62 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 62 def capabilities = Capabilities |
#configuration_options ⇒ Object
65 66 67 68 69 70 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 65 def %i[ azure_foundry_endpoint azure_foundry_api_key azure_foundry_bearer_token azure_foundry_api_version azure_foundry_surface azure_foundry_deployments ] end |
#configuration_requirements ⇒ Object
61 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 61 def configuration_requirements = %i[azure_foundry_endpoint] |
#default_tier ⇒ Object
60 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 60 def default_tier = :cloud |
#default_transport ⇒ Object
59 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 59 def default_transport = :http |
#deployment_config(model_id, config:) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 77 def deployment_config(model_id, config:) entries = normalize_deployments(config&.azure_foundry_deployments) entries.find do |entry| [value_for(entry, :deployment), value_for(entry, :model), value_for(entry, :canonical_model_alias)] .compact.map(&:to_s).include?(model_id.to_s) end end |
#normalize_deployments(deployments) ⇒ Object
85 86 87 88 89 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 85 def normalize_deployments(deployments) return deployments.map { |n, m| m.to_h.merge(deployment: n) } if deployments.is_a?(Hash) Array(deployments).map { |d| d.is_a?(Hash) ? d.dup : { deployment: d.to_s } } end |
#registry_publisher ⇒ Object
63 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 63 def registry_publisher = AzureFoundry.registry_publisher |
#resolve_model_id(model_id, config: nil) ⇒ Object
72 73 74 75 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 72 def resolve_model_id(model_id, config: nil) deployment = deployment_config(model_id, config:) value_for(deployment, :deployment) || value_for(deployment, :model) || model_id.to_s end |
#slug ⇒ Object
58 |
# File 'lib/legion/extensions/llm/azure_foundry/provider.rb', line 58 def slug = 'azure_foundry' |