Module: LlmOptimizer::WrapperModule

Defined in:
lib/llm_optimizer.rb

Instance Method Summary collapse

Instance Method Details

#chat(params) ⇒ Object



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