Class: Riffer::Providers::Base

Inherits:
Object
  • Object
show all
Includes:
Helpers::Dependencies, Messages::Converter
Defined in:
lib/riffer/providers/base.rb

Direct Known Subclasses

AmazonBedrock, OpenAI, Test

Instance Method Summary collapse

Methods included from Messages::Converter

#convert_to_message_object

Instance Method Details

#generate_text(prompt: nil, system: nil, messages: nil, model: nil, **options) ⇒ Riffer::Messages::Assistant

Generates text using the provider.

Parameters:

  • prompt (String, nil) (defaults to: nil)

    the user prompt (required when ‘messages` is not provided)

  • system (String, nil) (defaults to: nil)

    an optional system message

  • messages (Array<Hash, Riffer::Messages::Base>, nil) (defaults to: nil)

    optional messages array

  • model (String, nil) (defaults to: nil)

    optional model string to override the configured model

  • options (Hash)

    additional options passed to the model invocation

Returns:



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

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

#stream_text(prompt: nil, system: nil, messages: nil, model: nil, **options) ⇒ Enumerator

Streams text from the provider.

Parameters:

  • prompt (String, nil) (defaults to: nil)

    the user prompt (required when ‘messages` is not provided)

  • system (String, nil) (defaults to: nil)

    an optional system message

  • messages (Array<Hash, Riffer::Messages::Base>, nil) (defaults to: nil)

    optional messages array

  • model (String, nil) (defaults to: nil)

    optional model string to override the configured model

  • options (Hash)

    additional options passed to the model invocation

Returns:

  • (Enumerator)

    an enumerator yielding stream events or chunks (provider-specific)



30
31
32
33
34
35
# File 'lib/riffer/providers/base.rb', line 30

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