功能描述:
向 Discourse AI 工具 API discourse.getUser 函数返回的对象添加一个键,该键提供用户创建的主题数量。
当前行为:
可以通过创建自定义“工具”供 LLM 使用,为 Discourse AI 角色提供额外的功能。Discourse 提供了一个API 可以在工具代码中使用。
可以通过discourse.getUser 函数获取有关用户帐户的数据。
该函数返回的对象有一个 post_count 键。事实证明,在用户统计数据的上下文中,“帖子”实际上意味着“回复”。因此,该键的值不包括用户创建的主题的原始帖子数量。
通过两个单独的键提供这两种不同类型活动的数据是有意义的,但令人费解的是,该函数不返回主题计数数据,尽管这是主要的用户统计数据之一。
无法通过 discourse.getUser 函数获得用户活动的完整情况。通过其他方式获取此信息是不方便或不可行的。
可重现步骤:
- 登录到您具有管理员权限的论坛。
- 导航到 管理 > 插件 > AI > 工具 页面 (
/admin/plugins/discourse-ai/ai-tools)。 - 点击“+ 新建工具”按钮。
将打开一个菜单。 - 从菜单中选择“从空白开始…”。
将打开一个用于配置新工具的页面。 - 在页面上的以下字段中输入任何值:
- 名称
- 工具名称
- 描述
- 摘要
- 在“脚本”字段中输入以下代码:
ⓘ 用户 IDfunction invoke() { return discourse.getUser(-1); }-1是任意选择的,因为它可能存在于任何论坛上。如果需要,可以将任何其他用户 ID 或用户名传递给discourse.getUser。 - 点击页面底部的“保存”按钮。
- 点击页面底部的“运行测试”按钮。
将打开“测试 AI 工具”对话框。 - 点击对话框中的“运行测试”按钮。
测试结果没有提供用户创建的主题数量。
Discourse 版本:
f8f53ac5e8e4348ae308fcddc078766463d5e5f3
附加背景:
我知道可以从 Discourse API 的 /user-badges/{username}/summary.json 端点获取此信息,并且可以通过工具 API 的 http.get 函数 发起 API 请求。这样做是不可行的,因为我管理的论坛启用了 hide_new_user_profiles 站点设置,因此新用户的端点只能通过经过身份验证的请求访问。因此,有必要在工具代码中存储 API 密钥才能使用 API。我不会这样做。