Dify
简体中文
简体中文
  • 入门
    • 欢迎使用 Dify
      • 特性与技术规格
      • 模型供应商列表
    • 云服务
    • 社区版
      • Docker Compose 部署
      • 本地源码启动
      • 宝塔面板部署
      • 单独启动前端 Docker 容器
      • 环境变量说明
      • 常见问题
    • Dify Premium
    • Dify 教育版
  • 手册
    • 接入大模型
      • 增加新供应商
      • 预定义模型接入
      • 自定义模型接入
      • 接口方法
      • 配置规则
      • 负载均衡
    • 构建应用
      • 创建应用
      • 聊天助手
        • 多模型调试
      • Agent
      • 应用工具箱
        • 敏感内容审查
    • 工作流
      • 关键概念
      • 变量
      • 节点说明
        • 开始
        • LLM
        • 知识检索
        • 问题分类
        • 条件分支
        • 代码执行
        • 模板转换
        • 文档提取器
        • 列表操作
        • 变量聚合
        • 变量赋值
        • 迭代
        • 参数提取
        • HTTP 请求
        • Agent
        • 工具
        • 结束
        • 直接回复
        • 循环
      • 快捷键
      • 编排节点
      • 文件上传
      • 异常处理
        • 预定义异常处理逻辑
        • 错误类型
      • 附加功能
      • 预览与调试
        • 预览与运行
        • 单步调试
        • 对话/运行日志
        • 检查清单
        • 运行历史
      • 应用发布
      • 结构化输出
      • 变更公告:图片上传被替换为文件上传
    • 知识库
      • 创建知识库
        • 1. 导入文本数据
          • 1.1 从 Notion 导入数据
          • 1.2 从网页导入数据
        • 2. 指定分段模式
        • 3. 设定索引方法与检索设置
      • 管理知识库
        • 维护知识库内文档
        • 通过 API 维护知识库
      • 元数据
      • 在应用内集成知识库
      • 召回测试/引用归属
      • 知识库请求频率限制
      • 连接外部知识库
      • 外部知识库 API
    • 工具
      • 快速接入工具
      • 高级接入工具
      • 工具配置
        • Google
        • Bing
        • SearchApi
        • StableDiffusion
        • Dall-e
        • Perplexity Search
        • AlphaVantage 股票分析
        • Youtube
        • SearXNG
        • Serper
        • SiliconFlow (支持 Flux 绘图)
        • ComfyUI
    • 发布
      • 发布为公开 Web 站点
        • Web 应用的设置
        • 文本生成型应用
        • 对话型应用
      • 嵌入网站
      • 基于 APIs 开发
      • 基于前端组件再开发
    • 标注
      • 日志与标注
      • 标注回复
    • 监测
      • 集成外部 Ops 工具
        • 集成 LangSmith
        • 集成 Langfuse
        • 集成 Opik
      • 数据分析
    • 扩展
      • API 扩展
        • 使用 Cloudflare Workers 部署 API Tools
        • 敏感内容审查
      • 代码扩展
        • 外部数据工具
        • 敏感内容审查
    • 协同
      • 发现
      • 邀请与管理成员
    • 管理
      • 应用管理
      • 团队成员管理
      • 个人账号管理
      • 订阅管理
      • 版本管理
  • 动手实验室
    • 初级
      • 如何搭建 AI 图片生成应用
      • AI Agent 实战:搭建个人在线旅游助手
    • 中级
      • 使用文件上传搭建文章理解助手
      • 使用知识库搭建智能客服机器人
      • ChatFlow 实战:搭建 Twitter 账号分析助手
  • 社区
    • 寻求支持
    • 成为贡献者
    • 为 Dify 文档做出贡献
  • 插件
    • 功能简介
    • 快速开始
      • 安装与使用插件
      • 插件开发
        • 初始化开发工具
        • Tool 插件
        • Model 插件
          • 创建模型供应商
          • 接入预定义模型
          • 接入自定义模型
        • Agent 策略插件
        • Extension 插件
        • Bundle 插件包
      • 插件调试
    • 插件管理
    • 接口定义
      • Manifest
      • Endpoint
      • Tool
      • Agent
      • Model
        • 模型设计规则
        • 模型接口
      • 通用规范定义
      • 持久化存储
      • 反向调用 Dify 服务
        • App
        • Model
        • Tool
        • Node
    • 最佳实践
      • 开发 Slack Bot 插件
      • Dify MCP 插件指南:一键连接 Zapier 并自动发送邮件
    • 发布插件
      • 自动发布插件
      • 发布至 Dify Marketplace
        • 插件开发者准则
        • 插件隐私政策准则
      • 发布至个人 GitHub 仓库
      • 本地发布与分享
      • 第三方签名验证
    • 常见问题
  • 研发
    • 后端
      • DifySandbox
        • 贡献指南
    • 模型接入
      • 接入 Hugging Face 上的开源模型
      • 接入 Replicate 上的开源模型
      • 接入 Xinference 部署的本地模型
      • 接入 OpenLLM 部署的本地模型
      • 接入 LocalAI 部署的本地模型
      • 接入 Ollama 部署的本地模型
      • 接入 LiteLLM 代理的模型
      • 接入 GPUStack 进行本地模型部署
      • 接入 AWS Bedrock 上的模型(DeepSeek)
    • 迁移
      • 将社区版迁移至 v1.0.0
  • 阅读更多
    • 应用案例
      • DeepSeek 与 Dify 集成指南:打造具备多轮思考的 AI 应用
      • 本地私有化部署 DeepSeek + Dify,构建你的专属私人 AI 助手
      • 如何训练出专属于“你”的问答机器人?
      • 教你十几分钟不用代码创建 Midjourney 提示词机器人
      • 构建一个 Notion AI 助手
      • 如何在几分钟内创建一个带有业务数据的官网 AI 智能客服
      • 使用全套开源工具构建 LLM 应用实战:在 Dify 调用 Baichuan 开源模型能力
      • 手把手教你把 Dify 接入微信生态
      • 使用 Dify 和 Twilio 构建 WhatsApp 机器人
      • 将 Dify 应用与钉钉机器人集成
      • 使用 Dify 和 Azure Bot Framework 构建 Microsoft Teams 机器人
      • 如何让 LLM 应用提供循序渐进的聊天体验?
      • 如何将 Dify Chatbot 集成至 Wix 网站?
      • 如何连接 AWS Bedrock 知识库?
      • 构建 Dify 应用定时任务助手
      • 如何在 Dify 内体验大模型“竞技场”?以 DeepSeek R1 VS o1 为例
      • 在 Dify 云端构建 AI Thesis Slack Bot
      • 将 Dify 快速接入 QQ、微信、飞书、钉钉、Telegram、Discord 等平台
    • 扩展阅读
      • 什么是 LLMOps?
      • 什么是数组变量?
      • 检索增强生成(RAG)
        • 混合检索
        • 重排序
        • 召回模式
      • 提示词编排
      • 如何使用 JSON Schema 让 LLM 输出遵循结构化格式的内容?
    • 常见问题
      • 本地部署
      • LLM 配置与使用
      • 插件
  • 政策
    • 开源许可证
    • 用户协议
      • 服务条款
      • 隐私政策
      • 获取合规报告
Powered by GitBook
On this page
  • 1. 概述
  • 2. 准备工作
  • 3. 创建 Dify 基础编排聊天助手应用
  • 4. 创建 Azure Bot Service
  • 5. 创建你的聊天机器人
  • 6. 配置你的 Azure Bot
  • 7. Teams 测试
  • 8. 后记
  1. 阅读更多
  2. 应用案例

使用 Dify 和 Azure Bot Framework 构建 Microsoft Teams 机器人

Previous将 Dify 应用与钉钉机器人集成Next如何让 LLM 应用提供循序渐进的聊天体验?

Last updated 9 months ago

作者:Warren,

1. 概述

随着人工智能的崛起,聊天机器人变得更聪明,更个性化,更直观。在本文中,我们将向你展示如何使用 Azure Bot Service,将 Dify 集成至 Microsoft Teams,打造团队中的 AI 助手。

在本文中将介绍如何集成 Azure Bot Service 的 Teams Channel,允许客户与你的 Microsoft Teams 聊天机器人开始对话。

2. 准备工作

  • 安装好 Docker 和 Docker Compose

  • Microsoft Teams 账户

  • 一个安装了 Microsoft Teams 的手机或电脑,用于测试你的 AI 聊天机器人

3. 创建 Dify 基础编排聊天助手应用

首先,登录 ,使用 Github 登录或者使用 Google 登录。此外,你也可以参考 Dify 官方教程 私有部署。

登录成功后,进入 Dify 页面,我们按照下方步骤创建一个基础编排聊天助手应用

  1. 点击页面上方的工作室

  2. 创建空白应用

  3. 应用类型选择聊天助手

  4. 聊天助手编排方式选择基础编排

  5. 选择应用图标并为应用填写一个名称,比如基础编排聊天助手

  6. 点击创建

创建成功后会跳转到上图所示页面,此时继续配置应用

  1. 选择模型,如 gpt-3.5-turbo-0125

  2. 设置模型参数

  3. 填写应用提示词

配置完成后,可以在右侧对话框进行测试。测试完成后,进行如下操作:

  1. 发布

  2. 更新

  3. 访问 API

接着生成基础编排聊天助手 API 密钥

点击 "访问 API" 后,会跳转到上图的 API 管理页面,按照如下步骤获取 API 密钥:

  1. 点击右上角 API 密钥

  2. 点击创建密钥

  3. 复制保存密钥

在保存密钥后,还需要查看右上角的 API 服务器,如果是 Dify 官网的应用,API 服务器地址为 https://api.dify.ai/v1, 如果是私有部署的,请确认你自己的 API 服务器地址。

至此,创建聊天助手的准备工作结束。在此小节中我们只需要保存好两个东西:API 密钥 与 API 服务器地址。

4. 创建 Azure Bot Service

确认所有设置然后创建。

创建好后转到 Azure Bot 页面,先把 Subscription ID 保存好。

然后选择 Configuration,保存好 Microsoft App ID 然后选择 Manage Password。

创建和保存新 client secret。

5. 创建你的聊天机器人

在这一部分,你将使用 Microsoft Bot Framework 编写一个基本的聊天机器人的代码。

5.1 下载代码

git clone https://github.com/somethingwentwell/dify-teams-bot

5.2 配置.env

在项目根目录创建.env,内容如下:

MicrosoftAppType=MultiTenant
MicrosoftAppId=< 在 (4) 获取的 Client ID>
MicrosoftAppPassword=< 在 (4) 获取的 Client Secret>
MicrosoftAppTenantId=< 在 (4) 获取的 Tenant ID>

API_ENDPOINT=< 在 (3) 获取的 Dify API 服务器地址 >
API_KEY=< 在 (3) 获取的 Dify API 密钥 >

5.3 运行代码

执行 docker compose up

docker compose up

如果运行成功,你应该会看到

[+] Running 2/0
 ✔ Network dify-teams-bot_dify-network    Created                     0.0s 
 ✔ Container dify-teams-bot-nodejs-app-1  Created                     0.0s 
Attaching to nodejs-app-1
nodejs-app-1  | 
nodejs-app-1  | > echobot@1.0.0 start
nodejs-app-1  | > node ./index.js
nodejs-app-1  | 
nodejs-app-1  | (node:18) [DEP0111] DeprecationWarning: Access to process.binding ('http_parser') is deprecated.
nodejs-app-1  | (Use `node --trace-deprecation ...` to show where the warning was created)
nodejs-app-1  | (node:18) [DEP0111] DeprecationWarning: Access to process.binding ('http_parser') is deprecated.
nodejs-app-1  | 
nodejs-app-1  | restify listening to http://0.0.0.0:3978
nodejs-app-1  | 
nodejs-app-1  | Get Bot Framework Emulator: https://aka.ms/botframework-emulator
nodejs-app-1  | 
nodejs-app-1  | To talk to your bot, open the emulator select "Open Bot"

5.4 使用 Localtunnel 将本地项目放到公网访问

Azure Bot 需要向你的后端发送消息,你需要在公共服务器上托管你的应用。一个简单的方法是使用 localtunnel。

让 Azure BotI 应用继续在 3978 端口运行,并在另一个终端窗口运行以下 localtunnel 命令:

npx localtunnel --port 3978

上述命令在你的本地服务器(运行在 3978 端口)和 localtunnel 创建的公共域之间建立了一个连接。一旦你有了 localtunnel 转发 URL,任何来自客户端对该 URL 的请求都会自动被定向到你的 FastAPI 后端。

6. 配置你的 Azure Bot

6.1 打开 Azure Bot

转到在第四步创建的 Azure Bot,并在左侧面板上选择 Configuration。

将 Message Endpoint 替换为在第五步中获取的 localtunnel 转发 URL。

6.2 配置 Channels

在左侧面板上选择 Channels,点击 Microsoft Teams。

7. Teams 测试

回到在 6.2 步中创建的 Channels 页面,点击 “Open in Teams”

发送 Teams 消息,并等待你的 AI 聊天机器人的回复。尝试向 AI 聊天机器人提问你可以向 Dify 聊天助手提问的任何问题。

8. 后记

现在,你的 AI 聊天机器人应该能够在 Microsoft Teams 上运行良好。如果运行良好,可以切换至使用公司的 Microsoft Teams 商业账户内的正式环境,并使用远程服务器托管,使这个 Teams 助手在生产环境中运行。希望你喜欢这个教程,我们下次再见。

转到 画面应该会直接到 Azure Bot Service 的创建画面。

Azure Marketplace
Microsoft 最有价值专家 (MVP)
Azure 账户
Dify 平台
Docker Compose 部署