docs: def invokeToneConversation(payload, maintainToneHistoryInContext):
      """
       invokeToneConversation calls the Tone Analyzer service to get the
       tone information for the user's input text (input['text'] in the payload
       json object), adds/updates the user's tone in the payload's context,
       and sends the payload to the
       conversation service to get a response which is printed to screen.
       :param payload: a json object containing the basic information needed to
       converse with the Conversation Service's message endpoint.
       :param maintainHistoryInContext:
  
  
       Note: as indicated below, the console.log statements can be replaced
       with application-specific code to process the err or data object
       returned by the Conversation Service.
      """
      tone = tone_analyzer.tone(tone_input=payload['input'], content_type='application/json').get_result()
      conversation_payload = tone_detection.\
          updateUserTone(payload, tone, maintainToneHistoryInContext)
      response = assistant.message(workspace_id=workspace_id,
                                   input=conversation_payload['input'],
                                   context=conversation_payload['context']).get_result()
      print(json.dumps(response, indent=2))