Class: Riffer::Providers::Base

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

Direct Known Subclasses

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) ⇒ 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

Returns:



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

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)
  validate_normalized_messages!(normalized_messages)
  perform_generate_text(normalized_messages, model: model)
end

#stream_text(prompt: nil, system: nil, messages: nil, model: nil) ⇒ 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

Returns:

  • (Enumerator)

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



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

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)
  validate_normalized_messages!(normalized_messages)
  perform_stream_text(normalized_messages, model: model)
end