Class: AgentHarness::Api::ChatTransport
- Inherits:
-
Object
- Object
- AgentHarness::Api::ChatTransport
- 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
- #call(request, observer: nil, &on_event) ⇒ Object
-
#initialize(adapter: RubyLlmChatAdapter.new, id_generator: -> { SecureRandom.uuid }, sleeper: Kernel.method(:sleep)) ⇒ ChatTransport
constructor
A new instance of ChatTransport.
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 |