Полагаю, вы хотите, чтобы при упоминании определённого имени пользователя (например, 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.