docs: def say(self, input=None, **kwargs):
          """Talk to Cleverbot.
  
          Arguments:
              input: The input argument is what you want to say to Cleverbot,
                  such as "hello".
              tweak1-3: Changes Cleverbot's mood.
              **kwargs: Keyword arguments to update the request parameters with.
  
          Returns:
              Cleverbot's reply.
  
          Raises:
              APIError: A Cleverbot API error occurred.
              DecodeError: An error occurred while reading the reply.
              Timeout: The request timed out.
          """
          params = self._get_params(input, kwargs)
          try:
              reply = self.session.get(
                  self.url, params=params, timeout=self.timeout)
          except requests.Timeout:
              raise Timeout(self.timeout)
          else:
              try:
                  data = reply.json()
              except ValueError as error:
                  raise DecodeError(error)
              else:
                  if reply.status_code == 200:
                      self.data = data
                      return data.get('output')
                  else:
                      raise APIError(data.get('error'), data.get('status'))