Themaanzahl über Discourse AI Tool API `discourse.getUser` Funktion bereitstellen

Funktionsbeschreibung:

Fügen Sie dem von der Discourse AI Tool API-Funktion discourse.getUser zurückgegebenen Objekt einen Schlüssel hinzu, der die Anzahl der vom Benutzer erstellten Themen angibt.

Aktuelles Verhalten:

Zusätzliche Fähigkeiten können Discourse AI-Personas durch die Erstellung benutzerdefinierter „Tools“ zur Verfügung gestellt werden, die die LLM nutzen kann. Discourse stellt eine API bereit, die im Tool-Code verwendet werden kann.

Informationen zu einem Benutzerkonto können über die Funktion discourse.getUser abgerufen werden.

Das von der Funktion zurückgegebene Objekt enthält einen Schlüssel namens post_count. Es stellt sich heraus, dass „Post“ im Kontext von Benutzerstatistiken tatsächlich „Antwort“ bedeutet. Der Wert dieses Schlüssels enthält daher nicht die Anzahl der ursprünglichen Beiträge von Themen, die vom Benutzer erstellt wurden.

Es wäre sinnvoll, die Daten für diese beiden unterschiedlichen Aktivitätstypen über zwei separate Schlüssel bereitzustellen, aber inexplicably gibt die Funktion keine Themenanzahl-Daten zurück, obwohl dies eine der primären Benutzerstatistiken ist.

:slightly_frowning_face: Ein vollständiges Bild der Benutzeraktivität kann nicht über die Funktion discourse.getUser erhalten werden. Es ist umständlich oder unmöglich, diese Informationen auf andere Weise zu erhalten.

Reproduzierbare Schritte:

  1. Melden Sie sich auf einem Forum an, auf dem Sie Administratorrechte besitzen.
  2. Navigieren Sie zur Seite Admin > Plugins > AI > Tools (/admin/plugins/discourse-ai/ai-tools).
  3. Klicken Sie auf die Schaltfläche „+ Neues Tool“.
    Ein Menü wird geöffnet.
  4. Wählen Sie im Menü „Von Grund auf neu starten…“ aus.
    Die Seite zur Konfiguration eines neuen Tools wird geöffnet.
  5. Geben Sie in die folgenden Felder auf der Seite beliebige Werte ein:
    • Name
    • Tool Name
    • Description
    • Summary
  6. Geben Sie den folgenden Code in das Feld „Script“ ein:
    function invoke() {
      return discourse.getUser(-1);
    }
    
    Die Benutzer-ID -1 wurde willkürlich ausgewählt, da sie wahrscheinlich auf jedem Forum vorhanden ist. Jede andere Benutzer-ID oder Benutzername kann an discourse.getUser übergeben werden, falls Sie dies bevorzugen.
  7. Klicken Sie unten auf der Seite auf die Schaltfläche „Speichern“.
  8. Klicken Sie unten auf der Seite auf die Schaltfläche „Test ausführen“.
    Der Dialog „KI-Tool testen“ wird geöffnet.
  9. Klicken Sie im Dialog auf die Schaltfläche „Test ausführen“.

:slightly_frowning_face: Das Testergebnis liefert nicht die Anzahl der vom Benutzer erstellten Themen.

Discourse-Version:

f8f53ac5e8e4348ae308fcddc078766463d5e5f3

Zusätzlicher Kontext:

Mir ist bekannt, dass ich diese Informationen über den Endpunkt /user-badges/{username}/summary.json der Discourse API erhalten kann und dass API-Anfragen über die Funktion http.get der Tool-API gestellt werden können. Es ist nicht praktikabel, dies zu tun, da die Website-Einstellung hide_new_user_profiles auf dem von mir verwalteten Forum aktiviert ist und somit der Endpunkt für neue Benutzer nur für authentifizierte Anfragen zugänglich ist. Es wäre daher notwendig, einen API-Schlüssel im Tool-Code zu speichern, um die API nutzen zu können. Das werde ich nicht tun.