Python > Получить содержимое поста, если упомянут

Полагаю, вы хотите, чтобы при упоминании определённого имени пользователя (например, UserA) в сообщении генерировался ответ от OpenAI. Если это так, вместо того чтобы делать API-запросы к Discourse для получения уведомлений, вы можете настроить вебхук события уведомлений Discourse на ваш сервер с Python-приложением. Приложению на Python потребуется анализировать полезную нагрузку вебхука. Если поле notification_type в полезной нагрузке установлено в 1, а user_id совпадает с ID пользователя, для которого вы хотите получать уведомления, вы сделаете API-запрос к Discourse, чтобы получить сообщение, указанное в поле original_post_id полезной нагрузки. Затем отправьте содержимое сообщения, полученное в результате этого запроса, в OpenAI.

Вот пример полезной нагрузки для уведомления об упоминании:

{
  "notification": {
    "id": 55267,
    "user_id": 2,
    "notification_type": 1,
    "read": false,
    "high_priority": false,
    "created_at": "2022-12-08T23:23:36.379Z",
    "post_number": 5,
    "topic_id": 277,
    "fancy_title": "I should be able to call this topic anything",
    "slug": "i-should-be-able-to-call-this-topic-anything",
    "data": {
      "topic_title": "I should be able to call this topic anything",
      "original_post_id": 10999,
      "original_post_type": 1,
      "original_username": "scossar",
      "revision_number": null,
      "display_username": "scossar"
    }
  }
}

Преимущество этого подхода заключается в том, что он позволяет получать уведомления в реальном времени, не выполняя множество API-запросов к вашему сайту Discourse.

Если вы выберете подход с вебхуком, рекомендуется установить поле «Секрет» вебхука в Discourse, а затем проверять запрос в вашем Python-приложении, чтобы убедиться, что секретный ключ установлен правильно. Я ещё не пробовал настраивать маршрут в Python-приложении для этого. Подробная информация о том, как проверить секрет вебхука в WordPress, доступна здесь: wp-discourse-custom-webhook-request/wp-discourse-custom-webhook-request.php at master · scossar/wp-discourse-custom-webhook-request · GitHub.