module RubyLLM::Providers::OpenAI::Chat

def parse_completion_response(response) # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength
def parse_completion_response(response) # rubocop:disable Metrics/MethodLength
  data = response.body
  return if data.empty?
  message_data = data.dig('choices', 0, 'message')
  return unless message_data
  Message.new(
    role: :assistant,
    content: message_data['content'],
    tool_calls: parse_tool_calls(message_data['tool_calls']),
    input_tokens: data['usage']['prompt_tokens'],
    output_tokens: data['usage']['completion_tokens'],
    model_id: data['model']
  )
end