Python: Obtener contenido de post si se menciona

Supongo que lo que quieres hacer es generar una respuesta de OpenAI cuando se menciona a un nombre de usuario determinado (por ejemplo, UserA) en una publicación. Si es así, en lugar de realizar solicitudes a la API de Discourse para obtener las notificaciones, podrías apuntar un webhook de Evento de Notificación de Discourse a tu servidor de aplicación Python. La aplicación Python necesitaría examinar la carga útil del webhook. Si el notification_type de la carga útil estuviera configurado como 1, y su user_id coincidiera con el ID del usuario para el que deseas recibir notificaciones, realizarías una solicitud a la API de Discourse para obtener la publicación que se establece en el campo original_post_id de la carga útil. Luego, enviarías el contenido de la publicación devuelto por esa solicitud a OpenAI.

Aquí tienes un ejemplo de cómo se ve la carga útil para una notificación de mención:

{
  "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"
    }
  }
}

El beneficio de este enfoque es que te permitiría recibir notificaciones en tiempo real, sin tener que realizar un gran número de solicitudes a la API de tu sitio de Discourse.

Si optas por el enfoque del webhook, sería una buena idea configurar el “Secreto” del webhook en Discourse y luego validar la solicitud en tu aplicación Python para asegurarte de que la clave secreta esté correctamente configurada. Aún no he intentado configurar una ruta en una aplicación Python para hacer esto. Los detalles sobre cómo validar un secreto de webhook en WordPress se encuentran aquí: wp-discourse-custom-webhook-request/wp-discourse-custom-webhook-request.php at master · scossar/wp-discourse-custom-webhook-request · GitHub.