Class: LlmMock::Anthropic::Provider
- Inherits:
-
Provider
- Object
- Provider
- LlmMock::Anthropic::Provider
- Defined in:
- lib/llm_mock_anthropic.rb
Overview
Drives the Anthropic SDK shape for a consumer like deja: builds the stub client, invokes the real client, and (de)serializes responses.
Instance Method Summary collapse
- #build_client(&responder) ⇒ Object
- #call_real(client, method, kwargs) ⇒ Object
- #default_real_client ⇒ Object
- #deserialize(method, data) ⇒ Object
- #prompt_for(kwargs) ⇒ Object
- #serialize(method, response) ⇒ Object
Instance Method Details
#build_client(&responder) ⇒ Object
49 50 51 52 53 54 55 56 57 |
# File 'lib/llm_mock_anthropic.rb', line 49 def build_client(&responder) = Object.new .define_singleton_method(:create) {|**kwargs| responder.call(:create, kwargs) } .define_singleton_method(:stream) {|**kwargs| responder.call(:stream, kwargs) } client = Object.new client.define_singleton_method(:messages) { } client end |
#call_real(client, method, kwargs) ⇒ Object
59 60 61 |
# File 'lib/llm_mock_anthropic.rb', line 59 def call_real(client, method, kwargs) client..public_send(method, **kwargs) end |
#default_real_client ⇒ Object
63 64 65 |
# File 'lib/llm_mock_anthropic.rb', line 63 def default_real_client -> { ::Anthropic::Client.new } end |
#deserialize(method, data) ⇒ Object
75 76 77 |
# File 'lib/llm_mock_anthropic.rb', line 75 def deserialize(method, data) method == :stream ? deserialize_stream(data) : (data) end |
#prompt_for(kwargs) ⇒ Object
67 68 69 |
# File 'lib/llm_mock_anthropic.rb', line 67 def prompt_for(kwargs) kwargs[:system].to_s end |
#serialize(method, response) ⇒ Object
71 72 73 |
# File 'lib/llm_mock_anthropic.rb', line 71 def serialize(method, response) method == :stream ? serialize_stream(response) : (response) end |