Erstellen eines Bots in Discourse

Gibt es eine Möglichkeit, einen Bot auf Discourse zu erstellen, der auf meine Befehle antwortet, ähnlich wie ich viele meiner Discord-Bots erstellt habe?

Grundsätzlich weiß ich, dass es verschiedene Plugins gibt, die ich installieren kann, aber in meinem Kopf wäre es für mich weitaus einfacher zu warten, wenn ich einfach einen Bot hätte, der den Text in einem Kommentar abhören könnte, anstatt zu versuchen, Plugins zu installieren, die anfällig dafür sind, Dinge durcheinander zu bringen, und insbesondere, wenn der Wartende beschließt, dass er das Plugin nicht mehr warten möchte.

1 „Gefällt mir“

Sie werden ein Plugin benötigen.

Schauen Sie sich mein Frotz-Plugin als Beispiel/Ausgangspunkt an:

Nur API-Plugins wie dieses sind in der Regel über die Zeit stabiler, also machen Sie sich keine Sorgen über Instabilität. Jeder Code erfordert ohnehin Wartung. Ich habe im Laufe der Zeit nur minimale Änderungen am Frotz-Bot vorgenommen.

Schauen Sie sich mein Discord-Bot-Plugin an, um zu sehen, wie Sie Code gegen Ereignisse wie neue Beiträge schreiben können:

Ihre Bedürfnisse könnten durch Folgendes erfüllt werden:

Wenn Sie mehr Kontrolle über das Schicksal des Codes wünschen, pflegen Sie selbst eine Fork/ein Repository.

6 „Gefällt mir“

Wenn Sie wirklich möchten, dass es vollständig getrennt ist, könnten Sie eine Kombination aus Webhooks verwenden, um Ereignisse an Ihren Bot zu liefern, und die HTTP-Anfragen-API, damit Ihr Bot Änderungen in Discourse vornehmen kann.

Discourse API Docs

Wie @merefield andeutet, ist es möglich, Plugins zu erstellen, die die Kernfunktionalität nicht überschreiben, sondern stattdessen über Ereignisse benachrichtigt werden und mit Kern-APIs interagieren, die einfacher zu warten sind und weniger wahrscheinlich unerwünschte Nebenwirkungen haben.

Der Weg über Webhooks/API erfordert auch die Einrichtung eines Stacks zur Ausführung Ihres Bots und die Sicherstellung, dass dieser immer verfügbar ist, während Discourse verfügbar ist, beides ist mit einem in Discourse geladenen Plugin kostenlos.

Das Schreiben eines Plugins erfordert das Erlernen von Ruby und die Vertrautheit mit Discourse-Klassen, aber wenn Sie bereits in der Lage sind, einen Bot in etwas anderem zu schreiben und zu warten, bin ich sicher, dass Sie das Notwendige ziemlich schnell lernen können.

3 „Gefällt mir“

Ah ja, das auch, guter Punkt Simon!

Vielen Dank für all eure Vorschläge – ich werde sie mir auf jeden Fall ansehen. :smiley:

Dies kann im Beitrag/Kommentar erfolgen.

Ist es möglich, einen Bot in einem Gruppenchat zu haben?
Ich sehe, dass es eingehende Webhooks gibt, die Nachrichten an einen Gruppenchat senden können.
Aber es scheint keinen Weg zu geben, ein Bot-Konto zu haben, das auf Chat-Nachrichten hört und dann entsprechend handelt…?

Ja, zum Beispiel:

unterstützt Gruppenchats (sowie Themen, PMs …)

(Dies ist ein rein KI-Bot ohne Befehle (die Benutzeroberfläche ist zu 100 % natürliche Sprache, daher ist dies nicht erforderlich), aber die Struktur wäre dieselbe)

1 „Gefällt mir“

Danke @merefield

Mit einem Plugin könnte ein Event-Handler/Listener für Gruppenchat-Nachrichten hinzugefügt werden.
Ich habe einen REST-Endpunkt-Server, der die Webhook-Events verarbeitet, was gut funktioniert, um einen Bot zu einem Beitrag/Kommentar hinzuzufügen.
Aber leider werden keine Events für Gruppenchat-Nachrichten ausgelöst, das funktioniert so nicht… :frowning: