Class: Layered::Assistant::Clients::Base

Inherits:
Object
  • Object
show all
Defined in:
app/services/layered/assistant/clients/base.rb

Direct Known Subclasses

Anthropic, OpenAI

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(provider) ⇒ Base

Returns a new instance of Base.

Raises:

  • (StandardError)


5
6
7
8
9
10
# File 'app/services/layered/assistant/clients/base.rb', line 5

def initialize(provider)
  @provider = provider
  @api_key = provider.secret

  raise StandardError, "API key is not set for provider #{provider.name}" if @api_key.blank?
end

Class Method Details

.for(provider) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'app/services/layered/assistant/clients/base.rb', line 16

def self.for(provider)
  case provider.protocol
  when "anthropic"
    Clients::Anthropic.new(provider)
  when "openai"
    Clients::OpenAI.new(provider)
  else
    raise StandardError, "Unsupported provider protocol: #{provider.protocol}"
  end
end

Instance Method Details

#chat(messages:, model:, stream_proc:) ⇒ Object

Raises:

  • (NotImplementedError)


12
13
14
# File 'app/services/layered/assistant/clients/base.rb', line 12

def chat(messages:, model:, stream_proc:)
  raise NotImplementedError
end