Presumo que o que você deseja fazer é gerar uma resposta da OpenAI quando um determinado nome de usuário (por exemplo, UserA) for mencionado em uma postagem. Se isso estiver correto, em vez de fazer solicitações de API para o Discourse para obter as notificações, você pode apontar um webhook de Evento de Notificação do Discourse para o servidor do seu aplicativo Python. O aplicativo Python precisaria analisar a carga útil do webhook. Se o notification_type da carga útil estivesse definido como 1 e seu user_id correspondesse ao ID do usuário para o qual você deseja receber notificações, você faria uma solicitação de API para o Discourse para obter a postagem que está definida no campo original_post_id da carga útil. Em seguida, envie o conteúdo da postagem retornado dessa solicitação para a OpenAI.
Aqui está um exemplo de como se parece a carga útil para uma notificação de menção:
{
"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"
}
}
}
O benefício dessa abordagem é que ela permitiria que você recebesse notificações em tempo real - sem ter que fazer um grande número de solicitações de API para o seu site Discourse.
Se você optar pela abordagem de webhook, seria uma boa ideia definir o campo “Secret” do webhook no Discourse e, em seguida, validar a solicitação em seu aplicativo Python para garantir que a chave secreta esteja corretamente definida. Eu ainda não tentei configurar uma rota em um aplicativo Python para fazer isso. Detalhes sobre como validar o Secret de um webhook no WordPress estão aqui: wp-discourse-custom-webhook-request/wp-discourse-custom-webhook-request.php at master · scossar/wp-discourse-custom-webhook-request · GitHub.