Class: Kward::ModelSources
- Inherits:
-
Object
- Object
- Kward::ModelSources
- Defined in:
- lib/kward/model/sources.rb
Overview
Combines live, cached, and curated provider models for selection UIs.
Constant Summary collapse
- CURATED_MODELS =
{ "anthropic" => %w[claude-sonnet-5 claude-opus-4-8 claude-haiku-4-5], "azure_openai" => [], "cerebras" => [], "deepseek" => %w[deepseek-chat deepseek-reasoner], "fireworks" => [], "gemini" => %w[gemini-2.5-pro gemini-2.5-flash], "groq" => [], "mistral" => %w[mistral-large-latest], "nvidia" => [], "openai" => ModelInfo::OPENAI_MODEL_CHOICES, "openrouter" => [], "together" => [], "xai" => %w[grok-3 grok-3-mini], "copilot" => ModelInfo::COPILOT_MODEL_CHOICES }.freeze
Instance Method Summary collapse
-
#initialize(provider_id:, api_key: nil, catalog: nil) ⇒ ModelSources
constructor
A new instance of ModelSources.
- #manual(id) ⇒ Object
- #models ⇒ Object
- #refresh ⇒ Object
Constructor Details
#initialize(provider_id:, api_key: nil, catalog: nil) ⇒ ModelSources
Returns a new instance of ModelSources.
26 27 28 29 |
# File 'lib/kward/model/sources.rb', line 26 def initialize(provider_id:, api_key: nil, catalog: nil) @provider = ProviderCatalog.fetch(provider_id) @catalog = catalog || ModelCatalog.new(provider_id: @provider.id, api_key: api_key) end |
Instance Method Details
#manual(id) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/kward/model/sources.rb', line 41 def manual(id) value = id.to_s.strip raise ArgumentError, "Model ID must be a non-empty string" if value.empty? { "provider" => @provider.id, "id" => value, "name" => value, "source" => "manual" } end |
#models ⇒ Object
31 32 33 |
# File 'lib/kward/model/sources.rb', line 31 def models merge(cached_models, curated_models) end |
#refresh ⇒ Object
35 36 37 38 39 |
# File 'lib/kward/model/sources.rb', line 35 def refresh merge(live_models, curated_models) rescue StandardError models end |