Python > Beitragsinhalt abrufen, wenn erwähnt

Ich gehe davon aus, dass Sie eine Antwort von OpenAI generieren möchten, wenn ein bestimmter Benutzername (z. B. UserA) in einem Beitrag erwähnt wird. Wenn das korrekt ist, könnten Sie anstatt API-Anfragen an Discourse zu senden, um Benachrichtigungen zu erhalten, einen Discourse Notification Event Webhook auf den Server Ihrer Python-Anwendung zeigen. Die Python-Anwendung müsste die Nutzlast des Webhooks prüfen. Wenn der notification_type der Nutzlast auf 1 gesetzt ist und seine user_id mit der ID des Benutzers übereinstimmt, für den Sie Benachrichtigungen erhalten möchten, würden Sie eine API-Anfrage an Discourse senden, um den Beitrag zu erhalten, der im Feld original_post_id der Nutzlast festgelegt ist. Senden Sie dann den Beitrag, der aus dieser Anfrage zurückgegeben wird, an OpenAI.

Hier ist ein Beispiel dafür, wie die Nutzlast für eine Erwähnungsbenachrichtigung aussieht:

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

Der Vorteil dieses Ansatzes ist, dass Sie Benachrichtigungen in Echtzeit erhalten können, ohne eine große Anzahl von API-Anfragen an Ihre Discourse-Site senden zu müssen.

Wenn Sie sich für den Webhook-Ansatz entscheiden, wäre es ratsam, das Feld “Secret” des Webhooks in Discourse festzulegen und dann die Anfrage in Ihrer Python-Anwendung zu validieren, um sicherzustellen, dass der Secret-Schlüssel korrekt eingestellt ist. Ich habe noch nicht versucht, eine Route in einer Python-Anwendung einzurichten, um dies zu tun. Details zur Validierung eines Webhook-Secrets unter WordPress finden Sie hier: wp-discourse-custom-webhook-request/wp-discourse-custom-webhook-request.php at master · scossar/wp-discourse-custom-webhook-request · GitHub.