Module: LlmCassette
- Defined in:
- lib/llm_cassette.rb,
lib/llm_cassette/errors.rb,
lib/llm_cassette/version.rb,
lib/llm_cassette/cassette.rb,
lib/llm_cassette/recorder.rb,
lib/llm_cassette/replayer.rb,
lib/llm_cassette/middleware.rb,
lib/llm_cassette/interaction.rb,
lib/llm_cassette/configuration.rb,
lib/llm_cassette/rspec/helpers.rb,
lib/llm_cassette/request_signature.rb
Defined Under Namespace
Modules: RSpec
Classes: Cassette, CassetteNotFoundError, Configuration, Error, Interaction, Middleware, NoMoreInteractionsError, Recorder, Replayer, RequestSignature
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Method Summary
collapse
Class Method Details
.configuration ⇒ Object
19
20
21
|
# File 'lib/llm_cassette.rb', line 19
def configuration
@configuration ||= Configuration.new
end
|
15
16
17
|
# File 'lib/llm_cassette.rb', line 15
def configure
yield configuration
end
|
.current_cassette ⇒ Object
27
28
29
|
# File 'lib/llm_cassette.rb', line 27
def current_cassette
Thread.current[:llm_cassette_current]
end
|
.reset! ⇒ Object
23
24
25
|
# File 'lib/llm_cassette.rb', line 23
def reset!
@configuration = nil
end
|
.use_cassette(name, record: nil, &block) ⇒ Object
Block form — wraps a block with an active cassette.
LlmCassette.use_cassette("greeting") do
response = client.chat("say hello")
end
Options:
record: :none (default) — replay only, raise if cassette missing
record: :all — always record (hits real API)
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/llm_cassette.rb', line 40
def use_cassette(name, record: nil, &block)
cassette = Cassette.new(name, record: record)
Thread.current[:llm_cassette_current] = cassette
begin
block.call(cassette)
ensure
cassette.eject!
Thread.current[:llm_cassette_current] = nil
end
end
|