class ActiveGenie::Clients::GoogleClient

def request(payload, params)

def request(payload, params)
  response = post(url, payload, headers: DEFAULT_HEADERS, params:)
  ActiveGenie::Logger.call(
    {
      code: :llm_usage,
      input_tokens: response['usageMetadata']['promptTokenCount'] || 0,
      output_tokens: response['usageMetadata']['candidatesTokenCount'] || 0,
      total_tokens: response['usageMetadata']['totalTokenCount'] || (prompt_tokens + candidates_tokens),
      model:,
      usage: response['usageMetadata'] || {}
    }
  )
  ActiveGenie::Logger.call(
    {
      code: :function_calling,
      fine_tune: true,
      payload:,
      parsed_response: response&.dig('candidates', 0, 'content', 'parts', 0, 'text')
    }
  )
  response
end