Module: Deja::Adapters
- Defined in:
- lib/deja/adapters/base.rb,
lib/deja/adapters/anthropic.rb
Overview
Adapters teach Deja how to talk to one LLM provider: the stub client’s shape, how to (de)serialize a response, and how to build a real client. The cache, hashing, and matcher are all provider-agnostic and live elsewhere.
Defined Under Namespace
Class Method Summary collapse
- .build(provider, key:, install:, real_client:) ⇒ Object
-
.register_type(name, klass) ⇒ Object
Built-in adapter classes register themselves by provider name, so ‘c.register :anthropic, …` knows which class to build.
Class Method Details
.build(provider, key:, install:, real_client:) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/deja/adapters/base.rb', line 18 def build(provider, key:, install:, real_client:) klass = @registered.fetch(provider) do raise Deja::Error, "Unknown provider #{provider.inspect}. Registered: #{@registered.keys.inspect}" end klass.new(key:, install:, real_client:) end |
.register_type(name, klass) ⇒ Object
Built-in adapter classes register themselves by provider name, so ‘c.register :anthropic, …` knows which class to build. A new provider is purely additive: a new Base subclass + one register_type call.
14 15 16 |
# File 'lib/deja/adapters/base.rb', line 14 def register_type(name, klass) @registered[name] = klass end |