Class: AgentHarness::Api::ChatTransport

Inherits:
Object
  • Object
show all
Defined in:
lib/agent_harness/api/chat_transport.rb

Overview

Executes one normalized chat response without running application tools.

Defined Under Namespace

Classes: Execution, ObserverError

Constant Summary collapse

RESERVED_HEADERS =
{
  anthropic: %w[x-api-key anthropic-version],
  openai: %w[authorization]
}.freeze
PROTOCOLS =
{
  anthropic: %i[messages],
  openai: %i[responses chat_completions]
}.freeze
DEFAULT_RETRY =
{max_attempts: 1, base_delay_seconds: 0, max_delay_seconds: 0}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(adapter: RubyLlmChatAdapter.new, id_generator: -> { SecureRandom.uuid }, sleeper: Kernel.method(:sleep)) ⇒ ChatTransport

Returns a new instance of ChatTransport.



29
30
31
32
33
# File 'lib/agent_harness/api/chat_transport.rb', line 29

def initialize(adapter: RubyLlmChatAdapter.new, id_generator: -> { SecureRandom.uuid }, sleeper: Kernel.method(:sleep))
  @adapter = adapter
  @id_generator = id_generator
  @sleeper = sleeper
end

Instance Method Details

#call(request, observer: nil, &on_event) ⇒ Object



35
36
37
38
39
# File 'lib/agent_harness/api/chat_transport.rb', line 35

def call(request, observer: nil, &on_event)
  execution = Execution.new(request, adapter: @adapter, id_generator: @id_generator,
    sleeper: @sleeper, observer: observer || on_event)
  execution.call
end