应用场景与解决方案

Dify 搭建网站 AI 客服机器人教程:知识库配置、嵌入代码与日常运营

6 个步骤 9 分钟阅读 19 次阅读 0
本文目录

网站上的客服机器人可以回答团队每天都在重复回答的问题,例如套餐、价格、发货、付款方式和配置步骤,而且全天候在线,还能用访客的语言回复。Dify 是一个开源的 AI 应用开发平台,提供可视化编辑器、内置知识库和现成的网站嵌入功能。本文使用自托管的 Dify 搭建一个根据你自己的文档回答问题的聊天机器人,以聊天气泡的形式嵌入网站,并介绍让它越用越好的日常工作:查看对话记录、优化回答、保持知识库内容最新。

请先按照 Dify、n8n 与 AI Agent 服务器配置要求安装好 Dify(官方 Docker Compose 部署、HTTPS 反向代理和安全检查清单)。下文的菜单名称以 Dify 1.x 为准,不同版本之间可能有变化。如果使用云端 AI 模型,访客的消息会发送给该服务商:请仅在服务商支持的地区使用,并在隐私政策中加以说明。

步骤 1:设置 Dify 的公网访问地址

嵌入代码和文件链接使用的是 Dify 中配置的地址。如果这些地址仍指向 IP 地址或 localhost,网站上的聊天气泡将无法加载。请把它们改为你的 HTTPS 域名并重启:

# In dify/docker/.env, set your HTTPS domain:
CONSOLE_API_URL=https://dify.example.com
CONSOLE_WEB_URL=https://dify.example.com
SERVICE_API_URL=https://dify.example.com
APP_API_URL=https://dify.example.com
APP_WEB_URL=https://dify.example.com
FILES_URL=https://dify.example.com

# Then apply the change:
cd dify/docker && docker compose up -d

步骤 2:接入模型

在 Settings > Model Provider(设置 > 模型供应商)中安装要使用的模型供应商。如果使用本地模型,请安装 Ollama 供应商并添加两个模型:一个对话模型和一个嵌入模型。

ollama pull qwen2.5:7b
ollama pull nomic-embed-text

# Dify runs in Docker, so Ollama must accept connections from containers
# (OLLAMA_HOST=0.0.0.0 plus the firewall rules from the Ollama guide). Check:
curl -s http://172.17.0.1:11434/api/tags | head -c 300; echo

# In Dify, add both models with the base URL:  http://172.17.0.1:11434
#   qwen2.5:7b        model type: LLM
#   nomic-embed-text  model type: Text Embedding

Ollama 端的配置请参阅使用 Ollama 部署本地大模型。然后在系统模型设置中把这两个模型设为默认模型。你也可以同时添加云端服务商,再为每个应用分别选择使用哪个模型。

步骤 3:创建知识库

  1. 打开 Knowledge(知识库),创建一个知识库,上传常见问题、产品页面、价格、发货和付款说明以及配置教程。
  2. 普通文档保持默认的通用分段方式即可。对于 FAQ 文件,请每段只写一个问题及其答案,让每组问答成为一个独立的分段。
  3. 索引方式选择“高质量”并使用你的嵌入模型,检索方式选择混合检索或向量检索,然后保存,等待 Dify 处理文件。
  4. 使用召回测试功能输入真实的客户问题,检查能否返回正确的段落。

干净、最新的文档比任何参数设置都重要:删除旧的价目表,重要的答案要完整写出来,不要依赖散落在各处的零星提及。较大规模部署的架构选型,请参阅在独立服务器上搭建私有 AI 客服知识库。

步骤 4:创建聊天机器人

在 Studio(工作室)中新建一个 Chatbot(聊天助手)类型的应用。在编辑器中把知识库添加为上下文,选择对话模型并设置较低的温度(约 0.3),然后编写提示词:

You are the online assistant of ACME Hosting.
Answer only with information from the context. If the context does not contain
the answer, say you are not sure and suggest contacting support at [email protected].
Keep answers under 120 words and reply in the visitor's language.
Never promise discounts, refunds or delivery times that are not in the context.
If the question is unrelated to our products and services, politely decline.

再添加一段对话开场白,附上三四个推荐问题,并开启引用功能,以便查看每个回答引用了哪份文档。发布之前,请在预览面板中用至少 20 个来自工单和聊天记录的真实问题进行测试。

步骤 5:发布并嵌入网站

发布应用后,选择嵌入到网站的选项,并选择聊天气泡样式。Dify 会为你的应用生成具体代码,大致如下:

<script>
  window.difyChatbotConfig = {
    token: 'your-app-token',
    baseUrl: 'https://dify.example.com'
  }
</script>
<script src="https://dify.example.com/embed.min.js" id="your-app-token" defer></script>
<style>
  #dify-chatbot-bubble-button { background-color: #009aff !important; }
</style>

把它粘贴到网站模板的 </body> 闭合标签之前。WordPress 网站可以借助页眉页脚代码插件完成,无需修改主题。如果想要整页聊天界面或自建前端,同一个应用还提供公开网页和 API。

步骤 6:日常运营

  • 每周复查对话:在应用的日志中查找机器人答不上来的问题和回答错误的情况,然后修正对应的文档。
  • 善用标注回复:针对高频问题保存一条审核过的答案,开启标注回复后,每当有人提出相似的问题,机器人就会直接返回这条答案。
  • 关注监测页面:留意消息量、活跃用户数和 Token 用量,接入付费模型时尤其如此。
  • 及时更新知识库:价格、套餐或政策变更时同步更新,并删除过期文件。
  • 提供人工客服:在开场白中写明人工客服的联系方式,退款、投诉和账户变更等事项仍交由团队人工处理。
  • 防止滥用:公开的聊天机器人可能被恶意刷消息。如果发现异常流量,请在 Nginx 或 CDN 上按 IP 对 Dify 的 API 路径进行限速。

常见问题

选 Dify 还是 AnythingLLM?

Dify 面向对外发布 AI 应用:公开的聊天气泡、API、工作流、日志和标注。如果只是给自己团队搭建内部文档助手,AnythingLLM 上手更快,请参阅使用 AnythingLLM 搭建私有 RAG 知识库问答机器人。

网站上不显示聊天气泡怎么办?

打开浏览器的开发者控制台查看。最常见的原因是步骤 1 中的 URL 仍指向 IP 地址或 http://,导致浏览器在 HTTPS 网站上拦截了该脚本;也可能是安全插件或内容安全策略(CSP)拦截了来自其他域名的脚本。

同一个机器人能在 Telegram 上回复吗?

可以。Dify 应用提供 API,可供其他工具调用。也可以直接在 n8n 中搭建 Telegram 机器人,请参阅使用 n8n 搭建 AI 客服 Telegram 机器人。

如果按以上步骤操作后问题仍未解决,请提交工单联系 IMIDC 7×24 技术支持,并附上服务器 IP、Dify 版本和域名、在 dify/docker 目录下执行 docker compose ps 的输出,以及浏览器控制台中的报错信息,方便工程师快速定位。

这篇文章有帮助吗?

相关教程