⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
项目背景
Slack Bot 插件让你的团队能够直接在 Slack 中与 LLM 聊天,将 AI 带到对话已经发生的地方。 Slack 是一个开放的实时通信平台,拥有强大的 API,包括一个易于构建的基于 webhook 的事件系统。本指南使用该系统创建 Slack Bot 插件,如下图所示:
本指南中出现两个相似的术语:
- Slack Bot:Slack 平台上的聊天机器人——一个可以实时交互的虚拟用户。
- Slack Bot 插件:Dify 市场中的一个插件,用于连接 Dify 应用与 Slack。本指南将展示如何构建它。
工作原理
- 用户向 Slack Bot 发送消息 当 Slack 中的用户向 Bot 发送消息时,Slack Bot 会立即向 Dify 平台发出 webhook 请求。
- Slack 将消息转发给 Slack Bot 插件 Dify 平台触发 Slack Bot 插件,该插件将消息转发给 Dify 应用——类似于邮件系统将邮件投递到收件人地址。你通过 Slack 的 API 设置 Slack webhook 地址并在插件中输入来建立此连接。插件处理 Slack 请求并将其转发到 Dify 应用,LLM 分析输入并生成响应。
- 插件将响应返回给 Slack 一旦插件收到 Dify 应用的回复,它就会通过相同的路径将 LLM 的答案发送回 Slack Bot,用户就能在聊天的地方获得响应。
前提条件
- Dify 插件开发工具:参阅初始化开发工具。
- Python 环境(版本 3.12):参阅 Python 官方下载页面。
- 带有 OAuth 令牌的 Slack App:参阅以下步骤。

- 启用 Webhooks:

- 在你的 Slack 工作区安装应用:

- 获取 OAuth 令牌以供插件开发使用:

1. 开发插件
在开始编码之前,请确保你已阅读快速入门:开发扩展插件或已经构建过 Dify 插件。1.1 初始化项目
运行以下命令来设置你的插件开发环境:extension 模板,并授予 Apps 和 Endpoints 权限。
有关在插件中反向调用 Dify 服务的更多详细信息,请参阅反向调用:App。

1.2 编辑配置表单
插件需要两条信息:哪个 Dify 应用处理回复,以及用于验证机器人响应的 Slack App 令牌。将这两个字段添加到插件的表单中。 修改group 目录中的 YAML 文件(例如 group/slack.yaml)。表单的文件名来自你创建插件时提供的信息,请相应调整路径。
示例代码:
slack.yaml
type:设置为app-selector,允许用户在使用此插件时将消息转发到特定的 Dify 应用。scope:设置为chat,意味着该插件只能与 Agent、chatbot 或 chatflow 等应用类型交互。
endpoints/slack.yaml 文件中,将请求方法更改为 POST,以便端点能够处理传入的 Slack 消息。
示例代码:
endpoints/slack.yaml
2. 编辑功能代码
修改endpoints/slack.py 文件并添加以下代码:
3. 调试插件
前往 Dify 平台并获取插件的远程调试地址和密钥。
.env.example 文件并将其重命名为 .env,然后填入调试详情:
配置插件端点
在 Dify 的插件管理页面,找到新安装的测试插件并创建一个新端点。输入名称和你的 Bot Token,然后选择你想要连接的应用。

-
启用事件订阅
粘贴你上面生成的 POST 请求 URL。


-
授予所需权限

4. 验证插件
插件通过self.session.app.chat.invoke 调用 Dify 应用,传入 app_id 和 query 等参数,并将响应返回给 Slack Bot。再次运行 python -m main 重启插件,然后检查 Slack 是否正确显示 Dify 应用的回复:

5. 打包插件(可选)
确认插件工作正常后,使用以下命令打包。该命令会在当前目录中生成一个slack_bot.difypkg 文件——这就是你的最终插件包。有关详细的打包步骤,请参阅打包为本地文件并分享。
6. 发布插件(可选)
你现在可以将其上传到 Dify 市场仓库 进行公开发布。在发布之前,请确保你的插件符合发布到 Dify 市场指南。一旦获得批准,你的代码将合并到主分支,插件将在 Dify 市场 上线。相关资源
- 插件开发基础:Dify 插件开发的全面概述
- 插件开发快速入门指南:从零开始开发插件
- 开发扩展插件:扩展插件开发
- 反向调用 Dify 服务:如何调用 Dify 平台功能
- 反向调用:App:如何调用平台内的应用
- 发布插件:发布流程
- 发布到 Dify 市场:市场发布指南
- 端点详细定义:端点参考
延伸阅读
要获取完整的 Dify 插件项目示例,请访问 GitHub 仓库。你还可以找到包含完整源代码和实现细节的其他插件。 如果你想了解更多关于插件开发的内容,请查看以下资源: 快速入门: 插件接口文档:- 通过 Manifest 文件定义插件信息:Manifest 结构
- 端点:端点参考
- 反向调用:从插件调用 Dify 功能
- 通用规范:工具规范
- 模型 Schema:模型 Schema 参考
Edit this page | Report an issue