IBM Cloud Watson Conversation APIのPython SDKで過去の会話を反映したレスポンスのリクエスト

[パッケージのリポジトリ](https://github.com/watson-developer-cloud/python-sdk)の
[サンプルコード](https://github.com/watson-developer-cloud/python-sdk/blob/master/examples/conversation_v1.py)中では、過去のやり取りを用いるすべを教えてくれていないのでメモ



## 通常のリクエスト
```py3
response = conversation.message(workspace_id=workspace_id, input={'text': 'I\'m hungry'})
print(json.dumps(response, indent=2))

{
  "intents": [
    {
      "intent": "greetings",
      "confidence": 1
    }
  ],
  "entities": [],
  "input": {
    "text": "hey"
  },
  "output": {
    "text": [
      "Hi. It looks like a nice drive today. What would you like me to do?  "
    ],
    "nodes_visited": [
      "Start And Initialize Context"
    ],
    "log_messages": []
  },
  "context": {
    "conversation_id": "706d33fc-dc6c-48a9-bbf1-ec404aca893f",
    "system": {
      "dialog_stack": [
        {
          "dialog_node": "root"
        }
      ],
      "dialog_turn_counter": 1,
      "dialog_request_counter": 1,
      "_node_output_map": {
        "Start And Initialize Context": [
          0,
          0
        ]
      },
      "branch_exited": true,
      "branch_exited_reason": "completed"
    },
    "AConoff": "off",
    "lightonoff": "off",
    "musiconoff": "off",
    "appl_action": "",
    "heateronoff": "off",
    "volumeonoff": "off",
    "wipersonoff": "off",
    "default_counter": 0
  }
}
```

だと前までの会話を汲み取ってくれないです。

サンプルだと最初の挨拶をしてくるだけで、一向に会話が進まないという状態になります。

組み込み関数`help`で`message`メソッドのドキュメントを確認してみます。

```py3
print(help(conversation.message))

Help on method message in module watson_developer_cloud.conversation_v1:

message(workspace_id, input=None, alternate_intents=None, context=None, entities=None, intents=None, output=None) method of watson_developer_cloud.conversation_v1.ConversationV1 instance
    Get a response to a user's input.
    
    :param str workspace_id: Unique identifier of the workspace.
    :param InputData input: An input object that includes the input text.
    :param bool alternate_intents: Whether to return more than one intent. Set to `true` to return all matching intents.
    :param Context context: State information for the conversation. Continue a conversation by including the context object from the previous response.
    :param list[RuntimeEntity] entities: Include the entities from the previous response when they do not need to change and to prevent Watson from trying to identify them.
    :param list[RuntimeIntent] intents: An array of name-confidence pairs for the user input. Include the intents from the previous response when they do not need to change and to prevent Watson from trying to identify them.
    :param OutputData output: System output. Include the output from the request when you have several requests within the same Dialog turn to pass back in the intermediate information.
    :return: A `dict` containing the `MessageResponse` response.
    :rtype: dict
```

ちゃんと引数の説明を書いてくれています。
`context`に`response`の`'context'`渡せばできそう。

## 過去の会話を参照したリクエスト

```py3
response = conversation.message(
    workspace_id=workspace_id,
    input={'text': 'I\'m hungry'},
    context=reponse['context']
)
print(json.dumps(response, indent=2))

{
  "intents": [
    {
      "intent": "locate amenity",
      "confidence": 1
    }
  ],
  "entities": [],
  "input": {
    "text": "hey"
  },
  "output": {
    "text": [
      "Of course. Do you have a specific cuisine in mind?"
    ],
    "nodes_visited": [
      "Start And Initialize Context"
    ],
    "log_messages": []
  },
  "context": {
    "conversation_id": "706d33fc-dc6c-48a9-bbf1-ec404aca893f",
    "system": {
      "dialog_stack": [
        {
          "dialog_node": "root"
        }
      ],
      "dialog_turn_counter": 1,
      "dialog_request_counter": 1,
      "_node_output_map": {
        "Start And Initialize Context": [
          0,
          0
        ]
      },
      "branch_exited": true,
      "branch_exited_reason": "completed"
    },
    "AConoff": "off",
    "lightonoff": "off",
    "musiconoff": "off",
    "appl_action": "",
    "heateronoff": "off",
    "volumeonoff": "off",
    "wipersonoff": "off",
    "default_counter": 0
  }
}
```
Of course. Do you have a specific cuisine in mind?

と帰ってきたので話が進みました。