Как сделать так, чтобы текст в Telegram боте был красиво оформленным?

Как можно улучшить форматирование вывода ответа в чате телеграмма, чтобы вместо JSON информация отображалась в более удобочитаемом виде после запроса к OpenAI API в рабочем коде Python?
  • 23 мая 2024 г. 12:30
Ответы на вопрос 2
В Telegram боте можно оформить текст с помощью различных HTML тегов. Например, вы можете использовать теги `<b>` для выделения жирным, `<i>` для выделения курсивом и `<code>` для выделения кода. Также можно использовать тег `<pre>` для отображения текста в предварительно отформатированном виде.

Для улучшения форматирования вывода ответа от OpenAI API в Python можно использовать библиотеку `json` для преобразования JSON в удобочитаемый вид. Например, после получения ответа от API вы можете использовать следующий код:

```python
import json

response = # полученный ответ от API в формате JSON
formatted_response = json.dumps(response, indent=4)

# Отправить formatted_response в чат Telegram
```

Этот код преобразует JSON объект в строку с отступами, что делает ее более удобочитаемой. Вы можете отправить эту отформатированную строку в чат Telegram для удобства чтения.
Так Вы сами запрашиваете его дать ответ в виде JSON. Зачем? 
messages=[
  {"role": "user", "content": "я чувствую усталость json"},
  {"role": "system", "content": "советы при усталости json"},
]

А в целом, если Вы хотите у GPT узнать, что делать в зависимости от того, как чувствует себя пользователь, то логично было бы передавать его же сообщение, а не уже заготовленное?

messages=[
  {"role": "user", "content": str(message.text)},
  {"role": "system", "content": "советы при " + str(message.text)},
]


Безусловно, этот вариант не идеален, так как пользователь может ввести что захочет, но решение этой проблемы уже за Вами.
Похожие вопросы