Class: Riffer::Providers::Base

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

Overview

Base class for all LLM providers in the Riffer framework.

Subclasses must implement perform_generate_text and perform_stream_text.

Direct Known Subclasses

AmazonBedrock, Anthropic, OpenAI, Test

Instance Method Summary collapse

Methods included from Messages::Converter

#convert_to_message_object

Methods included from Helpers::Dependencies

#depends_on

Instance Method Details

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

Generates text using the provider.

: (?prompt: String?, ?system: String?, ?messages: Array[Hash[Symbol, untyped] | Riffer::Messages::Base]?, ?model: String?, **untyped) -> Riffer::Messages::Assistant



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, **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) ⇒ Object

Streams text from the provider.

: (?prompt: String?, ?system: String?, ?messages: Array[Hash[Symbol, untyped] | Riffer::Messages::Base]?, ?model: String?, **untyped) -> Enumerator[Riffer::StreamEvents::Base, void]



24
25
26
27
28
29
# File 'lib/riffer/providers/base.rb', line 24

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