Class: Kreator::Providers::Base
- Inherits:
-
Object
- Object
- Kreator::Providers::Base
- Defined in:
- lib/kreator/providers/base.rb
Constant Summary collapse
- DEFAULT_MAX_RETRIES =
2- TRANSIENT_HTTP_STATUSES =
[408, 409, 429, 500, 502, 503, 504].freeze
Instance Attribute Summary collapse
-
#api_key ⇒ Object
readonly
Returns the value of attribute api_key.
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
-
#max_retries ⇒ Object
readonly
Returns the value of attribute max_retries.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #capabilities(model) ⇒ Object
-
#initialize(api_key:, base_url:, name:, max_retries: DEFAULT_MAX_RETRIES) ⇒ Base
constructor
A new instance of Base.
- #stream(messages:, tools:, system_prompt:, model:, signal:) ⇒ Object
Constructor Details
#initialize(api_key:, base_url:, name:, max_retries: DEFAULT_MAX_RETRIES) ⇒ Base
Returns a new instance of Base.
39 40 41 42 43 44 |
# File 'lib/kreator/providers/base.rb', line 39 def initialize(api_key:, base_url:, name:, max_retries: DEFAULT_MAX_RETRIES) @api_key = api_key @base_url = base_url @name = name @max_retries = Integer(max_retries) end |
Instance Attribute Details
#api_key ⇒ Object (readonly)
Returns the value of attribute api_key.
37 38 39 |
# File 'lib/kreator/providers/base.rb', line 37 def api_key @api_key end |
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
37 38 39 |
# File 'lib/kreator/providers/base.rb', line 37 def base_url @base_url end |
#max_retries ⇒ Object (readonly)
Returns the value of attribute max_retries.
37 38 39 |
# File 'lib/kreator/providers/base.rb', line 37 def max_retries @max_retries end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
37 38 39 |
# File 'lib/kreator/providers/base.rb', line 37 def name @name end |
Instance Method Details
#capabilities(model) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/kreator/providers/base.rb', line 50 def capabilities(model) { "model" => model, "provider" => name, "streaming" => true, "tools" => true, "vision" => false, "reasoning" => false, "context_window" => nil } end |
#stream(messages:, tools:, system_prompt:, model:, signal:) ⇒ Object
46 47 48 |
# File 'lib/kreator/providers/base.rb', line 46 def stream(messages:, tools:, system_prompt:, model:, signal:) raise NotImplementedError, "#{self.class} must implement #stream" end |