Class: LittleGhost::Providers::Base
- Inherits:
-
Object
- Object
- LittleGhost::Providers::Base
- Defined in:
- lib/little_ghost/providers/base.rb
Overview
Shared provider contract. Provider adapters implement #stream and may implement #embed or override capability-sensitive request preparation.
LittleGhost may call one provider instance concurrently. An embedding adapter accepts Embeddings::Request, observes its cancellation and deadline, and returns Embeddings::Response. Provider failures should use a content-safe ProviderError subclass.
Direct Known Subclasses
Class Method Summary collapse
-
.request_options ⇒ Object
Returns the trusted per-profile request options this adapter accepts.
Instance Method Summary collapse
-
#capabilities(metadata: {}) ⇒ Object
Returns provider capabilities derived from normalized metadata.
-
#embed(_request) ⇒ Object
Executes
requestwhen the adapter supports text embeddings. -
#prepare_request(request, capabilities:) ⇒ Object
Applies provider-specific capability constraints before streaming.
-
#stream(_request) ⇒ Object
Streams normalized events for
request.
Class Method Details
.request_options ⇒ Object
Returns the trusted per-profile request options this adapter accepts. Connection options remain authoritative and are configured separately.
33 |
# File 'lib/little_ghost/providers/base.rb', line 33 def self. = [].freeze |
Instance Method Details
#capabilities(metadata: {}) ⇒ Object
Returns provider capabilities derived from normalized metadata.
56 57 58 |
# File 'lib/little_ghost/providers/base.rb', line 56 def capabilities(metadata: {}) ModelCapabilities.unknown end |
#embed(_request) ⇒ Object
Executes request when the adapter supports text embeddings.
The default implementation raises UnsupportedModelOperationError.
:call-seq:
embed(request) -> Embeddings::Response
46 47 48 |
# File 'lib/little_ghost/providers/base.rb', line 46 def (_request) raise UnsupportedModelOperationError, "#{self.class} does not support embeddings" end |
#prepare_request(request, capabilities:) ⇒ Object
Applies provider-specific capability constraints before streaming.
51 52 53 |
# File 'lib/little_ghost/providers/base.rb', line 51 def prepare_request(request, capabilities:) request end |
#stream(_request) ⇒ Object
Streams normalized events for request.
36 37 38 |
# File 'lib/little_ghost/providers/base.rb', line 36 def stream(_request) raise AbstractMethodError, "#{self.class} must implement #stream" end |