9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/lammy/chat.rb', line 9
def handle_llm(method_name)
settings = @next_llm_settings
@next_llm_settings = nil
original_method = instance_method(method_name)
define_method(method_name) do |*args, &block|
@system_message = nil
define_singleton_method(:context) do |message|
@system_message = message
end
user_message = original_method.bind(self).call(*args, &block)
client = case settings[:model]
when *OpenAI::MODELS
OpenAI.new(settings)
when *Claude::MODELS
Claude.new(settings)
else
raise "Unsupported model: #{settings[:model]}"
end
client.chat(user_message, @system_message)
end
end
|