用Dify搭建飞书AI助手:企业自建应用 + 知识库检索 + 结构化答案

0 阅读9分钟

文章简介:本文手把手教你搭建一个飞书AI助手,实现飞书应用机器人触发、基于知识库的智能问答、结构化答案输出。适合需要企业知识库问答场景的开发者。 标签:Dify、飞书、知识库、企业自建应用、AI助手


前言

在前两篇文章中,我们分别搭建了多分支AI客服和工单审批流,实现了意图识别和条件分支处理。

这次我们来解决一个更实用的场景:飞书AI助手

这篇文章能解决什么问题?

企业里经常有这样的需求:

  • 员工在飞书问"怎么申请VPN?"
  • 销售问"产品A的最新报价是多少?"
  • 客服问"这个故障怎么处理?"

传统方式:

  • 问题1:重复回答,效率低
  • 问题2:答案不统一,容易出错
  • 问题3:资深员工被频繁打扰

通过本文,你将学会:

  • 如何用Dify + 飞书搭建AI助手
  • 如何基于知识库检索回答
  • 如何输出结构化的专业答案

读完这篇你能得到什么?

  • 一个完整可运行的飞书AI助手Demo
  • 理解知识库检索的使用场景
  • 掌握Dify与飞书企业自建应用集成的方法

前置知识:需要了解Dify的基本使用,有飞书管理员权限更佳。


一、项目需求

飞书问答的痛点

  1. 重复性问题多:80%的问题都是常见问题
  2. 答案不统一:不同人回答可能不一致
  3. 响应不及时:依赖人工回复,无法7×24小时
  4. 知识分散:产品文档、FAQ分散在各处

需要实现的功能

本文要搭建一个飞书AI助手,实现以下功能:

  1. 应用机器人触发:在飞书给应用机器人发消息即可提问
  2. 知识库检索:基于企业知识库回答
  3. 结构化输出:返回格式化的专业答案

预期效果

用户在飞书给应用机器人发送消息 → Dify接收消息 → 知识库检索 → LLM生成答案 → 返回结构化回复

二、核心概念:知识库检索

什么是知识库检索?

知识库检索是Dify的一个重要功能,它允许你:

  • 上传企业文档(PDF、Word、Markdown等)
  • 自动分段和建立索引
  • 根据用户问题检索相关内容
  • 将检索结果提供给LLM生成答案

什么场景下需要知识库检索?

  1. 企业FAQ:产品手册、常见问题
  2. 技术文档:API文档、开发指南
  3. 规章制度:员工手册、流程规范
  4. 培训资料:产品培训、销售话术

本文的知识库设计

我们用知识库来存储企业产品文档:

用户提问 → 知识库检索 → 返回相关段落 → LLM基于内容生成答案

设计思路

  • 检索阶段:找出与用户问题最相关的文档片段
  • 生成阶段:LLM基于检索内容组织语言,不编造答案
  • 输出阶段:返回结构化的Markdown格式答案

三、环境准备

  • Dify版本:1.11.x
  • 飞书:企业版(需要管理员权限)
  • 知识库:提前准备好产品文档
  • LLM模型:DeepSeek
  • 内网穿透:Cloudflare Tunnel(如Dify部署在内网)

四、开始搭建

4.1 创建飞书企业自建应用

  1. 打开 飞书开放平台
  2. 点击「创建企业自建应用」
  3. 输入应用名称:Dify AI助手
  4. 点击「创建」

image-12.png

image-21.png

4.2 获取应用凭证

  1. 进入应用详情页
  2. 点击「凭证与基础信息」
  3. 复制以下信息:
    • App ID
    • App Secret

image-22.png 保存好这两个凭证,后续需要用到

4.3 添加应用能力(机器人)

  1. 在飞书开放平台应用详情页,点击左侧菜单「应用能力」
  2. 点击「添加应用能力」
  3. 选择「机器人」能力,点击「添加」

image-34.png 说明

  • 机器人能力是飞书AI助手的基础,必须添加
  • 添加后,用户可以在飞书客户端搜索并与机器人对话

4.4 配置权限

  1. 点击「权限管理」
  2. 添加以下权限:
权限名称权限标识说明
获取与发送单聊消息im:message:send_as_bot发送消息给用户
接收消息im:message接收用户消息
  1. 提交审核(如是企业内部应用,可直接启用)

image-23.png

4.5 创建Dify工作流

  1. 打开Dify → 创建应用 → 选择「工作流」
  2. 输入应用名称:飞书AI助手
  3. 点击「创建」进入工作流画布

image-24.png

整体结构

收到消息 → 知识检索 → LLM处理 → 发送LARK应用消息

4.6 配置Dify接收飞书消息

关键:安装Lark触发器插件后,使用「收到消息」节点

  1. 在Dify工作流画布中,点击「开始」节点
  2. 选择「收到消息」节点
  3. 配置订阅,要记录好回调URL
  4. 选择订阅

image-25.png

image-26.png

image-27.png

image-28.png

image-29.png

4.7 配置内网穿透(Dify部署在内网时需要)

如果 Dify 部署在内网环境,需要配置内网穿透,使飞书服务器能够访问到 Dify 的回调地址。

使用 Cloudflare Tunnel 配置内网穿透:

  1. 下载 cloudflared:

    curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
    
  2. 添加执行权限:

    chmod +x cloudflared
    
  3. 启动内网穿透(假设 Dify 运行在本地 80 端口):

    ./cloudflared tunnel --url http://localhost:80
    
  4. 启动成功后,终端会显示一个公网 URL(如 https://xxxxx.trycloudflare.com),请保存这个地址

image-30.png 说明

  • 内网穿透工具会生成一个临时的公网 URL,用于飞书回调
  • 每次重启 cloudflared 后 URL 可能会变化,需要更新飞书中的配置
  • 生产环境建议使用固定的域名和稳定的内网穿透方案

4.8 配置飞书事件与回调

  1. 回到飞书开放平台,点击「事件与回调」
  2. 选择「事件配置」标签页
  3. 配置订阅方式
  4. 在「请求地址」填入 Dify 生成的回调URL(如果使用内网穿透,则使用 cloudflared 生成的公网地址替换http://localhost): xxxxx.trycloudflare.com/triggers/pl…

image-31.png 5. 添加事件: * im.message.receive_v1

image-32.png

4.9 发布应用

  1. 点击「版本管理与发布」
  2. 创建新版本
  3. 提交发布
  4. 在「应用发布」→「待发布」中确认

注意:企业自建应用需要管理员审核或在后台直接启用。

4.10 添加「知识检索」节点

在「收到消息」节点后,直接查询知识库获取相关内容:

  1. 添加「知识检索」节点
  2. 配置:
    • 知识库:选择已创建的知识库(如产品文档、FAQ等)
    • 查询内容:使用「收到消息」节点的消息内容变量

image-33.png 知识库准备

  • 提前在 Dify 中创建知识库
  • 上传产品文档、常见问题等资料
  • 配置好分段和索引策略

4.11 添加「LLM」节点

  1. 在「知识检索」节点后,添加「LLM」节点
  2. 模型选择:DeepSeek
  3. 系统提示词
你是一个飞书群助手。请根据用户的问题和知识库检索结果,给出专业、准确的回答。

回答要求:
1. 基于知识库内容回答,如果知识库中没有相关信息,说明"根据现有资料,我暂时无法回答这个问题"
2. 简洁明了,直接回答问题
3. 使用 Markdown 格式输出,支持标题、列表、代码块等
4. 如果涉及步骤说明,使用有序列表
5. 如果不知道答案,诚实地说明,不要编造

4. 用户提示词

用户问题:{{#1775661379508.content#}}


知识库检索结果:
{{#context#}}


请基于以上知识库内容,给出结构化的回答。如果知识库中没有相关信息,请说明。

image-35.png

4.12 添加「发送LARK应用消息」节点

将 LLM 的结构化回答发送回飞书:

image-36.png

image-37.png

关键:安装Lark消息和群组插件后,使用「发送LARK应用消息」节点

  1. 拖入「发送LARK应用消息」节点
  2. 配置接收人和消息内容

五、完整工作流结构

┌─────────────────────────────────────────────────────────────┐
│                      Demo3 完整工作流                        │
└─────────────────────────────────────────────────────────────┘

开始(收到消息)
       │
       ▼
知识检索(根据用户消息查询相关内容)
       │
       ▼
LLM(基于知识库生成结构化答案)
       │
       ▼
发送LARK应用消息(将结构化答案发回飞书)
       │
       ▼
结束

六、测试验证

测试用例

场景测试问题预期结果
产品咨询"有什么产品?"基于知识库返回所有产品列表
无答案"公司明年战略是什么?"说明无法回答

实际测试

  1. 在飞书搜索「Dify AI助手」
  2. 输入测试问题
  3. 查看返回的结构化答案

image-4.png


七、常见问题

Q: 企业自建应用需要审核吗?

A

  • 如果是企业管理员创建的应用,可以直接启用
  • 如果是普通员工创建,需要管理员审核

Q: 收不到飞书消息?

A: 检查:

  1. 应用是否已发布/启用
  2. 事件订阅是否正确配置
  3. Dify 回调URL 是否可访问
  4. 权限是否正确配置

八、与Demo1/Demo2的区别

项目Demo1Demo2Demo3
核心功能意图识别 + 分支紧急程度判断知识库检索 + 飞书应用
应用场景智能客服工单审批企业知识问答
外部集成HTTP请求HTTP请求飞书 + 知识库
消息来源用户输入用户输入飞书应用消息
新特性-代码执行知识库检索 + 内网穿透

九、总结

通过本文你学到了什么?

  • 飞书企业自建应用:创建应用、添加机器人能力、配置权限
  • 内网穿透配置:使用Cloudflare Tunnel实现内网Dify的公网访问
  • 知识库检索:文档上传、分段、检索策略
  • 结构化输出:Markdown格式、专业答案

知识库检索的使用技巧

  1. 文档质量:上传结构清晰的文档
  2. 分段策略:合理设置分段长度和重叠
  3. 检索调优:调整相似度阈值,平衡召回和精确
  4. 提示词工程:指导LLM基于检索内容回答

参考资料