通过 Discourse AI 工具 API `discourse.getUser` 函数提供主题计数

功能描述:

向 Discourse AI 工具 API discourse.getUser 函数返回的对象添加一个键,该键提供用户创建的主题数量。

当前行为:

可以通过创建自定义“工具”供 LLM 使用,为 Discourse AI 角色提供额外的功能。Discourse 提供了一个API 可以在工具代码中使用。

可以通过discourse.getUser 函数获取有关用户帐户的数据。

该函数返回的对象有一个 post_count 键。事实证明,在用户统计数据的上下文中,“帖子”实际上意味着“回复”。因此,该键的值不包括用户创建的主题的原始帖子数量。

通过两个单独的键提供这两种不同类型活动的​​数据是有意义的,但令人费解的是,该函数不返回主题计数数据,尽管这是主要的​​用户统计数据之一。

:slightly_frowning_face: 无法通过 discourse.getUser 函数获得用户活动的完整情况。通过其他方式获取此信息是不方便或不可行的。

可重现步骤:

  1. 登录到您具有管理员权限的论坛。
  2. 导航到 管理 > 插件 > AI > 工具 页面 (/admin/plugins/discourse-ai/ai-tools)。
  3. 点击“+ 新建工具”按钮。
    将打开一个菜单。
  4. 从菜单中选择“从空白开始…”。
    将打开一个用于配置新工具的页面。
  5. 在页面上的以下字段中输入任何值:
    • 名称
    • 工具名称
    • 描述
    • 摘要
  6. 在“脚本”字段中输入以下代码:
    function invoke() {
      return discourse.getUser(-1);
    }
    
    用户 ID -1 是任意选择的,因为它可能存在于任何论坛上。如果需要,可以将任何其他用户 ID 或用户名传递给 discourse.getUser
  7. 点击页面底部的“保存”按钮。
  8. 点击页面底部的“运行测试”按钮。
    将打开“测试 AI 工具”对话框。
  9. 点击对话框中的“运行测试”按钮。

:slightly_frowning_face: 测试结果没有提供用户创建的主题数量。

Discourse 版本:

f8f53ac5e8e4348ae308fcddc078766463d5e5f3

附加背景:

我​​知道可以从 Discourse API/user-badges/{username}/summary.json 端点获取此信息,并且可以通过工具 API 的 http.get 函数 发起 API 请求。这样做是不可行的,因为我管理的论坛启用了 hide_new_user_profiles 站点设置,因此新用户的端点只能通过经过身份验证的请求访问。因此,有必要在工具代码中存储 API 密钥才能使用 API。我不会这样做。