63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/llm_optimizer.rb', line 63
def chat(params, &)
config = LlmOptimizer.configuration
prompt = params[:messages] || params[:prompt]
result = LlmOptimizer.optimize_pre_call(prompt, config)
return result[:response] if result[:cache_status] == :hit
optimized_params = params.merge(model: result[:model])
if params[:messages]
optimized_params = optimized_params.merge(messages: result[:prompt])
elsif params[:prompt]
optimized_params = optimized_params.merge(prompt: result[:prompt])
end
response = super(optimized_params, &)
LlmOptimizer.optimize_post_call(result, response, config)
response
end
|