Fournir le compte de sujet via l'outil Discourse AI API fonction `discourse.getUser`

Description de la fonctionnalité :

Ajouter une clé à l’objet retourné par la fonction discourse.getUser de l’API de l’outil Discourse AI qui fournit le nombre de sujets créés par l’utilisateur.

Comportement actuel :

Des capacités supplémentaires peuvent être fournies aux personas de l’IA de Discourse en créant des « outils » personnalisés que le LLM peut utiliser. Discourse fournit une API qui peut être utilisée dans le code de l’outil.

Les données concernant un compte utilisateur peuvent être obtenues via la fonction discourse.getUser.

L’objet retourné par la fonction possède une clé post_count. Il s’avère que, dans le contexte des statistiques de l’utilisateur, « post » signifie en réalité « réponse ». Ainsi, la valeur de cette clé n’inclut pas le nombre de messages originaux des sujets créés par l’utilisateur.

Il serait logique de fournir les données pour ces deux types d’activité distincts via deux clés séparées, mais inexplicablement, la fonction ne renvoie pas les données de nombre de sujets, même s’il s’agit de l’une des statistiques principales de l’utilisateur.

:slightly_frowning_face: Une image complète de l’activité de l’utilisateur ne peut pas être obtenue via la fonction discourse.getUser. Il sera gênant ou impossible d’obtenir cette information par d’autres moyens.

Étapes reproductibles :

  1. Connectez-vous à un forum sur lequel vous avez des privilèges d’administrateur.
  2. Naviguez vers la page Admin > Plugins > AI > Outils (/admin/plugins/discourse-ai/ai-tools).
  3. Cliquez sur le bouton « + Nouvel outil ».
    Un menu s’ouvrira.
  4. Sélectionnez « Partir de zéro… » dans le menu.
    La page de configuration d’un nouvel outil s’ouvrira.
  5. Entrez n’importe quelles valeurs dans les champs suivants de la page :
    • Nom
    • Nom de l’outil
    • Description
    • Résumé
  6. Entrez le code suivant dans le champ « Script » :
    function invoke() {
      return discourse.getUser(-1);
    }
    
    L’ID utilisateur -1 a été sélectionné arbitrairement car il est susceptible d’être présent sur n’importe quel forum. Tout autre ID utilisateur ou nom d’utilisateur peut être passé à discourse.getUser si vous préférez.
  7. Cliquez sur le bouton « Enregistrer » en bas de la page.
  8. Cliquez sur le bouton « Exécuter le test » en bas de la page.
    La boîte de dialogue « Tester l’outil IA » s’ouvrira.
  9. Cliquez sur le bouton « Exécuter le test » dans la boîte de dialogue.

:slightly_frowning_face: Le résultat du test ne fournit pas le nombre de sujets créés par l’utilisateur.

Version de Discourse :

f8f53ac5e8e4348ae308fcddc078766463d5e5f3

Contexte supplémentaire :

Je suis conscient que je peux obtenir cette information à partir du point de terminaison /user-badges/{username}/summary.json de l’API Discourse, et que les requêtes API peuvent être effectuées via la fonction http.get de l’API de l’outil. Il n’est pas réalisable de le faire car le paramètre de site hide_new_user_profiles est activé sur le forum que je gère, et donc le point de terminaison pour les nouveaux utilisateurs n’est accessible que pour les requêtes authentifiées. Il serait donc nécessaire de stocker une clé API dans le code de l’outil afin d’utiliser l’API. Je ne le ferai pas.