Class: Riffer::Providers::Base

Inherits:
Object
  • Object
show all
Includes:
DependencyHelper
Defined in:
lib/riffer/providers/base.rb

Direct Known Subclasses

OpenAI, Test

Class Method Summary collapse

Instance Method Summary collapse

Methods included from DependencyHelper

#depends_on

Class Method Details

.find_provider(identifier) ⇒ Object

Raises:



14
15
16
17
18
19
20
21
22
# File 'lib/riffer/providers/base.rb', line 14

def find_provider(identifier)
  ensure_providers_loaded

  provider = subclasses.find { |provider_class| provider_class.identifier == identifier }

  raise InvalidInputError, "Provider not found for identifier: #{identifier}" if provider.nil?

  provider
end

.identifier(value = nil) ⇒ Object



8
9
10
11
12
# File 'lib/riffer/providers/base.rb', line 8

def identifier(value = nil)
  return @identifier if value.nil?

  @identifier = value
end

Instance Method Details

#generate_text(prompt: nil, system: nil, messages: nil, model: nil) ⇒ Object



35
36
37
38
39
# File 'lib/riffer/providers/base.rb', line 35

def generate_text(prompt: nil, system: nil, messages: nil, model: nil)
  validate_input!(prompt: prompt, system: system, messages: messages)
  normalized_messages = normalize_messages(prompt: prompt, system: system, messages: messages)
  perform_generate_text(normalized_messages, model: model)
end

#stream_text(prompt: nil, system: nil, messages: nil, model: nil) ⇒ Object



41
42
43
44
45
# File 'lib/riffer/providers/base.rb', line 41

def stream_text(prompt: nil, system: nil, messages: nil, model: nil)
  validate_input!(prompt: prompt, system: system, messages: messages)
  normalized_messages = normalize_messages(prompt: prompt, system: system, messages: messages)
  perform_stream_text(normalized_messages, model: model)
end