AI 机器人 - 自定义工具

:bookmark: 本指南介绍了如何在 Discourse AI 插件中创建、配置和集成自定义 AI 工具,使管理员能够通过用户定义的 JavaScript 函数扩展机器人的功能。

:person_raising_hand: 所需用户级别:管理员

工具是可编程的功能,AI 机器人可以使用它们来执行特定任务或检索信息,而不仅仅是基于文本的响应。这些工具是脚本或集成,允许机器人与外部 API 交互、操作数据或执行其他功能来扩展其功能。

摘要

本文档涵盖:

  • 创建新的自定义 AI 工具
  • 配置工具参数和脚本
  • 可用于工具脚本的 API
  • 将自定义工具与 AI 角色集成
  • 测试和故障排除自定义工具

创建新的自定义 AI 工具

要创建新的 AI 工具:

  1. 导航到管理面板 > 插件 > Discourse AI > 工具
  2. 点击“新建工具”(您可以使用现有的预设来了解选项)
  3. 填写以下字段:
    • 名称:工具在 LLM 中显示的名称
    • 描述:工具在 LLM 中显示的描述
    • 摘要:工具的作用以帮助用户的摘要(显示在详细信息中)
    • 参数:定义工具作为 LLM 显示的输入
    • 脚本:为工具提供动力的 JavaScript 代码
  4. 点击“保存”

配置工具脚本

可用 API

您的工具脚本可以访问以下 API:

  1. HTTP 请求:

    http.get(url, options)
    http.post(url, options)
    

    使用这些与外部服务进行交互。您可以使用 options 来指定 HTTP 标头:

    http.get(url, { headers: { Auth: "some value" } })
    http.post(url, { headers: { Auth: "some value", body: "some body" } })
    http.patch(url, { headers: { Auth: "some value", body: "some body" } })
    http.delete(url, { headers: ...})
    http.put(url, { headers: ... , body: ...})
    
  2. LLM(语言模型)集成:

    llm.truncate(text, length)
    

    这允许您在 AI 模型令牌限制内操作文本。

  3. 自定义上传集成 (RAG)

    index.search(query, { filenames: options, limit: max_fragments_optional })
    
  4. 上传创建支持

    upload.create(filename, base_64_content)
    
  5. 执行链控制

    chain.setCustomRaw(raw) - 设置链中 post 的正文。
    

所需函数

您的脚本必须实现:

  • invoke(params):调用工具时执行的主函数

它还可以选择实现:

  • details():(可选)提供有关工具执行的附加信息

示例脚本:

function invoke(params) {
  let result = http.get("https://api.example.com/data?query=" + params.query);
  return JSON.parse(result.body);
}

function details() {
  return "Fetched data from Example API";
}

限制和安全

  • 执行超时:工具的默认超时时间为 2 秒
  • HTTP 请求:每个工具执行最多 20 个请求
  • 沙盒环境:无法访问服务器文件系统或 Ruby 库

测试您的工具

您应该测试您构建的任何工具,以确保提供给 LLM 的结果符合您的预期。

将工具与 AI 角色集成

要将自定义工具添加到 AI 角色:

  1. 转到管理面板 > 插件 > Discourse AI > 角色
  2. 编辑现有角色或创建新角色
  3. 在“工具”部分,您将看到自定义工具与内置工具并列显示
  4. 选择您的自定义工具以将其添加到角色

自定义工具实战

一旦您将自定义工具提供给 LLM,它就可以使用它来增强对话。

故障排除

如果您的工具无法按预期工作:

  1. 使用测试界面确保它对您的输入表现符合预期。
  2. 确保您的组在 ai_bot_debugging_allowed_groups 中。此组的成员可以完全访问机器人会话记录;您可以在此处查看 AI 日志。
  3. 如果发生任何意外情况,请访问 https://SITENAME/logs 检查错误。

附加资源

14 个赞