网站上的客服机器人可以回答团队每天都在重复回答的问题,例如套餐、价格、发货、付款方式和配置步骤,而且全天候在线,还能用访客的语言回复。Dify 是一个开源的 AI 应用开发平台,提供可视化编辑器、内置知识库和现成的网站嵌入功能。本文使用自托管的 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
在 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 部署本地大模型。然后在系统模型设置中把这两个模型设为默认模型。你也可以同时添加云端服务商,再为每个应用分别选择使用哪个模型。
干净、最新的文档比任何参数设置都重要:删除旧的价目表,重要的答案要完整写出来,不要依赖散落在各处的零星提及。较大规模部署的架构选型,请参阅在独立服务器上搭建私有 AI 客服知识库。
在 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 个来自工单和聊天记录的真实问题进行测试。
发布应用后,选择嵌入到网站的选项,并选择聊天气泡样式。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。
Dify 面向对外发布 AI 应用:公开的聊天气泡、API、工作流、日志和标注。如果只是给自己团队搭建内部文档助手,AnythingLLM 上手更快,请参阅使用 AnythingLLM 搭建私有 RAG 知识库问答机器人。
打开浏览器的开发者控制台查看。最常见的原因是步骤 1 中的 URL 仍指向 IP 地址或 http://,导致浏览器在 HTTPS 网站上拦截了该脚本;也可能是安全插件或内容安全策略(CSP)拦截了来自其他域名的脚本。
可以。Dify 应用提供 API,可供其他工具调用。也可以直接在 n8n 中搭建 Telegram 机器人,请参阅使用 n8n 搭建 AI 客服 Telegram 机器人。
如果按以上步骤操作后问题仍未解决,请提交工单联系 IMIDC 7×24 技术支持,并附上服务器 IP、Dify 版本和域名、在 dify/docker 目录下执行 docker compose ps 的输出,以及浏览器控制台中的报错信息,方便工程师快速定位。