Так Вы сами запрашиваете его дать ответ в виде JSON. Зачем?
messages=[
{"role": "user", "content": "я чувствую усталость json"},
{"role": "system", "content": "советы при усталости json"},
]
А в целом, если Вы хотите у GPT узнать, что делать в зависимости от того, как чувствует себя пользователь, то логично было бы передавать его же сообщение, а не уже заготовленное?
messages=[
{"role": "user", "content": str(message.text)},
{"role": "system", "content": "советы при " + str(message.text)},
]
Безусловно, этот вариант не идеален, так как пользователь может ввести что захочет, но решение этой проблемы уже за Вами.