class LittleGhost::Providers::Base
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.
Public Class Methods
Source
# File lib/little_ghost/providers/base.rb, line 33 def self.request_options = [].freeze
Returns the trusted per-profile request options this adapter accepts. Connection options remain authoritative and are configured separately.
Public Instance Methods
Source
# File lib/little_ghost/providers/base.rb, line 56 def capabilities(metadata: {}) ModelCapabilities.unknown end
Returns provider capabilities derived from normalized metadata.
# File lib/little_ghost/providers/base.rb, line 46 def embed(_request) raise UnsupportedModelOperationError, "#{self.class} does not support embeddings" end
Executes request when the adapter supports text embeddings.
The default implementation raises UnsupportedModelOperationError.
# File lib/little_ghost/providers/base.rb, line 51 def prepare_request(request, capabilities:) request end
Applies provider-specific capability constraints before streaming.
Source
# File lib/little_ghost/providers/base.rb, line 36 def stream(_request) raise AbstractMethodError, "#{self.class} must implement #stream" end
Streams normalized events for request.