Proporcionar el recuento de temas a través de la API de la herramienta Discourse AI función `discourse.getUser`

Descripción de la característica:

Añadir una clave al objeto devuelto por la función discourse.getUser de la API de herramientas de Discourse que proporcione el número de temas creados por el usuario.

Comportamiento actual:

Se pueden proporcionar capacidades adicionales a las personas de Discourse AI creando “herramientas” personalizadas para que las utilice el LLM. Discourse proporciona una API que se puede utilizar en el código de la herramienta.

Se pueden obtener datos sobre una cuenta de usuario a través de la función discourse.getUser.

El objeto devuelto por la función tiene una clave post_count. Resulta que, en el contexto de las estadísticas de usuario, “publicación” en realidad significa “respuesta”. Por lo tanto, el valor de esta clave no incluye el número de publicaciones originales de los temas creados por el usuario.

Tendría sentido proporcionar los datos de estos dos tipos de actividad distintos a través de dos claves separadas, pero inexplicablemente la función no devuelve los datos del recuento de temas, aunque esta es una de las estadísticas principales del usuario.

:slightly_frowning_face: No se puede obtener una imagen completa de la actividad del usuario a través de la función discourse.getUser. Será incómodo o inviable obtener esta información por otros medios.

Pasos reproducibles:

  1. Inicia sesión en un foro donde tengas privilegios de administrador.
  2. Navega a la página Admin > Plugins > AI > Tools (/admin/plugins/discourse-ai/ai-tools).
  3. Haz clic en el botón “+ New tool”.
    Se abrirá un menú.
  4. Selecciona “Start from blank…” en el menú.
    Se abrirá la página de configuración de una nueva herramienta.
  5. Introduce cualquier valor en los siguientes campos de la página:
    • Name
    • Tool Name
    • Description
    • Summary
  6. Introduce el siguiente código en el campo “Script”:
    function invoke() {
      return discourse.getUser(-1);
    }
    
    Se seleccionó el ID de usuario -1 arbitrariamente, ya que es probable que esté presente en cualquier foro. Se puede pasar cualquier otro ID de usuario o nombre de usuario a discourse.getUser si se prefiere.
  7. Haz clic en el botón “Save” en la parte inferior de la página.
  8. Haz clic en el botón “Run test” en la parte inferior de la página.
    Se abrirá el diálogo “Test AI tool”.
  9. Haz clic en el botón “Run test” en el diálogo.

:slightly_frowning_face: El resultado de la prueba no proporciona el número de temas creados por el usuario.

Versión de Discourse:

f8f53ac5e8e4348ae308fcddc078766463d5e5f3

Contexto adicional:

Soy consciente de que puedo obtener esta información del endpoint /user-badges/{username}/summary.json de la API de Discourse, y que las solicitudes de API se pueden realizar a través de la función http.get de la API de herramientas. No es factible hacerlo porque la configuración del sitio hide_new_user_profiles está habilitada en el foro que administro, y por lo tanto el endpoint para usuarios nuevos solo es accesible para solicitudes autenticadas. Por lo tanto, sería necesario almacenar una clave de API en el código de la herramienta para utilizar la API. No haré eso.