Dify API接口调用教程|适合站长
在网站运营、内容生产、在线客服、SEO自动化、用户增长等场景中,越来越多站长开始关注 AI 工具的实际落地能力。相比单纯使用 ChatGPT 网页端,Dify 这类 AI 应用开发平台更适合站长把 AI 能力接入到自己的网站、后台系统、公众号、小程序、CRM 或自动化工作流中。
Dify 的优势在于:它不仅能帮助你快速搭建 AI 应用,还提供了标准 API 接口。也就是说,你可以先在 Dify 后台配置好提示词、知识库、工作流、模型参数,然后通过 API 把这个 AI 应用嵌入到自己的网站业务里。
本文将从站长视角出发,详细讲解 Dify API 的调用思路、准备工作、接口调用方式、常见参数、代码示例、应用场景以及安全注意事项,帮助你真正把 Dify 用到网站运营中。
一、什么是 Dify?
Dify 是一个开源的 LLM 应用开发平台,主要用于构建 AI 聊天助手、文本生成工具、知识库问答系统、工作流应用等。它支持多种大语言模型,例如 OpenAI、Claude、通义千问、智谱、DeepSeek、Ollama 本地模型等。
对于站长来说,Dify 最大的价值不是“聊天”,而是把 AI 能力产品化。
例如,你可以用 Dify 搭建:
- 网站智能客服;
- SEO 标题生成器;
- 文章摘要工具;
- 关键词拓展工具;
- 用户留言自动回复系统;
- 企业知识库问答机器人;
- 产品推荐助手;
- 站内搜索增强工具;
- 文章伪原创或改写工具;
- 内容审核与分类系统;
- 自动化运营工作流。
如果没有 Dify,站长想接入大模型,通常需要自己写提示词管理、上下文管理、知识库检索、流式输出、日志记录、模型切换等功能。而 Dify 已经把这些能力封装成了可视化配置,站长只需要通过 API 调用即可。
二、为什么站长适合使用 Dify API?
很多站长的网站后台可能是 WordPress、Typecho、Discuz、帝国 CMS、织梦 CMS、Laravel、ThinkPHP、Node.js、Python、Java 等系统。只要网站能发送 HTTP 请求,就可以调用 Dify API。
相比直接调用大模型 API,Dify API 对站长有几个明显优势。
1. 提示词集中管理
如果你直接在代码里写 Prompt,后期修改非常麻烦。尤其是多个页面、多套工具都需要使用 AI 时,提示词分散在代码中,不利于维护。
使用 Dify 后,你可以在 Dify 后台统一修改提示词,网站端无需频繁改代码。
2. 支持知识库问答
很多站长希望 AI 回答基于自己网站资料、产品文档、帮助中心或企业介绍,而不是完全依赖模型自由发挥。
Dify 支持上传文档并构建知识库,API 调用时可以自动检索相关内容,让回答更贴合你的站点数据。
3. 支持工作流
Dify 的工作流功能非常适合复杂业务。例如:
- 用户输入关键词;
- AI 判断关键词意图;
- 自动生成标题;
- 自动生成文章大纲;
- 自动生成正文;
- 自动输出 SEO 描述;
- 最后返回结构化结果。
这类流程如果纯代码开发会比较复杂,但在 Dify 中可以通过可视化节点实现,再通过 API 调用。
4. 可降低开发成本
站长通常更关注业务结果,而不是底层模型接入细节。Dify 可以让你少写很多底层代码,把精力放在网站功能和用户体验上。
5. 便于后期扩展
当你的 AI 功能越来越多时,Dify 可以作为统一的 AI 应用管理中心。不同功能创建不同应用,每个应用有自己的 API Key,权限和调用记录更清晰。
三、Dify API调用前的准备工作
在正式调用 API 之前,需要完成以下准备。
1. 部署或使用 Dify
你可以选择两种方式:
- 使用 Dify 官方云服务;
- 自己服务器私有化部署 Dify。
如果你是普通站长,只是做工具站、内容站或企业站,使用官方云服务会更方便。如果你对数据安全、私有化、成本控制有更高要求,可以选择自部署。
自部署通常需要 Docker 环境,适合有服务器运维经验的站长。
2. 创建 Dify 应用
登录 Dify 后台后,通常可以创建几类应用:
- 聊天助手;
- 文本生成应用;
- Agent;
- 工作流;
- 知识库问答应用。
如果你想做在线客服,建议创建“聊天助手”或“知识库问答”应用。
如果你想做 SEO 标题生成、文章摘要、关键词拓展等工具,建议创建“文本生成应用”或“工作流应用”。
3. 配置模型
在 Dify 后台需要配置模型供应商,例如:
- OpenAI;
- Azure OpenAI;
- Anthropic;
- DeepSeek;
- 通义千问;
- 智谱 AI;
- 火山方舟;
- 本地 Ollama 模型。
站长选择模型时,需要综合考虑:
- 价格;
- 响应速度;
- 中文能力;
- 上下文长度;
- 稳定性;
- 是否支持流式输出;
- 是否适合你的业务场景。
如果你的网站主要面向中文用户,可以优先考虑中文表现较好的模型。如果你做英文 SEO 工具,也可以选择英文能力更强的模型。
4. 编写提示词
提示词是 AI 应用质量的关键。站长常见提示词可以这样设计:
你是一名专业的网站运营和SEO顾问。
请根据用户输入的关键词,生成适合搜索引擎优化的文章标题。
要求:
1. 标题简洁自然;
2. 包含核心关键词;
3. 不要堆砌关键词;
4. 输出5个备选标题;
5. 每个标题不超过30个中文字符。
好的提示词应该明确角色、任务、输出格式、限制条件和质量标准。
5. 获取 API Key
创建应用后,在 Dify 应用页面通常可以找到 API 访问入口。进入后可以创建或查看 API Key。
API Key 是调用 Dify 接口的凭证,格式通常类似:
app-xxxxxxxxxxxxxxxxxxxxxxxx
注意:API Key 不能暴露在前端页面中,否则别人可以直接盗用你的额度。
四、Dify API基础调用逻辑
Dify API 本质上是 HTTP 接口。站长只需要向指定接口地址发送请求,并在请求头中携带 API Key。
一个典型调用流程如下:
- 用户在网站页面输入内容;
- 网站后端接收用户输入;
- 后端向 Dify API 发送请求;
- Dify 调用配置好的大模型或工作流;
- Dify 返回 AI 结果;
- 网站后端将结果返回给前端展示。
请注意,推荐由网站后端调用 Dify API,而不是前端 JavaScript 直接调用。
原因很简单:前端调用会暴露 API Key。
五、Dify常用API接口类型
不同类型的 Dify 应用,对应的 API 接口略有不同。站长最常用的一般有以下几类。
六、文本生成应用 API 调用
文本生成应用适合一次性输入、一次性输出的场景,例如:
- SEO 标题生成;
- Meta Description 生成;
- 文章摘要;
- 文案润色;
- 产品描述生成;
- 关键词拓展;
- 邮件模板生成。
常见接口形式如下:
POST https://api.dify.ai/v1/completion-messages
如果你是自部署 Dify,需要把域名替换成自己的 Dify 地址,例如:
POST https://dify.example.com/v1/completion-messages
请求头
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
请求体示例
{
"inputs": {
"keyword": "WordPress SEO插件"
},
"response_mode": "blocking",
"user": "site-user-001"
}
其中:
inputs:传给 Dify 应用的变量;response_mode:响应模式,常见为blocking或streaming;user:用户标识,可以是站内用户 ID、访客 ID 或自定义字符串。
如果你在 Dify 应用中设置了变量 keyword,那么 API 请求中就需要传入对应字段。
返回示例
{
"event": "message",
"task_id": "xxxx",
"id": "xxxx",
"message_id": "xxxx",
"mode": "completion",
"answer": "1. WordPress SEO插件怎么选?新手站长必看\n2. 适合中文网站的WordPress SEO插件推荐\n3. WordPress SEO插件安装与优化教程",
"metadata": {
"usage": {
"prompt_tokens": 100,
"completion_tokens": 80,
"total_tokens": 180
}
},
"created_at": 1710000000
}
站长最关心的一般是 answer 字段,也就是 AI 生成的结果。
七、聊天助手 API 调用
聊天助手适合多轮对话,例如:
- 网站客服机器人;
- 产品咨询助手;
- 站内帮助中心问答;
- 会员服务助手;
- 售前咨询机器人。
常见接口形式如下:
POST https://api.dify.ai/v1/chat-messages
请求体示例
{
"inputs": {},
"query": "你们的网站会员怎么开通?",
"response_mode": "blocking",
"conversation_id": "",
"user": "user-001"
}
参数说明:
query:用户的问题;inputs:应用变量,如果没有可以传空对象;conversation_id:会话 ID,首次对话可以为空;user:用户唯一标识;response_mode:响应模式。
多轮对话关键点
首次请求时,conversation_id 可以为空。Dify 返回结果中通常会包含一个 conversation_id。站长需要把它保存起来,用于后续同一用户的连续对话。
例如:
{
"answer": "您好,网站会员可以在个人中心开通。",
"conversation_id": "abc123"
}
下一轮请求时传入:
{
"inputs": {},
"query": "多少钱一个月?",
"response_mode": "blocking",
"conversation_id": "abc123",
"user": "user-001"
}
这样 AI 才能理解上下文。
八、工作流 API 调用
工作流适合更复杂的自动化任务。例如站长想做一个“SEO文章生成器”,可以设计如下流程:
- 输入关键词;
- 判断搜索意图;
- 生成文章标题;
- 生成文章大纲;
- 生成正文;
- 生成 SEO 描述;
- 输出 JSON 结构。
工作流 API 常见接口为:
POST https://api.dify.ai/v1/workflows/run
请求体示例
{
"inputs": {
"keyword": "Dify API接口调用教程",
"audience": "网站站长",
"length": "2000字"
},
"response_mode": "blocking",
"user": "admin-001"
}
返回示例
{
"workflow_run_id": "xxxx",
"task_id": "xxxx",
"data": {
"id": "xxxx",
"workflow_id": "xxxx",
"status": "succeeded",
"outputs": {
"title": "Dify API接口调用教程|适合站长",
"description": "本文介绍Dify API调用方法、参数说明和站长落地场景。",
"content": "这里是生成的文章正文..."
}
}
}
工作流的强大之处在于可以输出多个字段,便于网站系统直接入库。
例如,你的网站后台可以将返回的:
title存为文章标题;description存为 SEO 描述;content存为正文;tags存为标签。
这样就可以实现半自动化内容生产。
九、blocking 与 streaming 的区别
Dify API 通常支持两种响应模式:
blocking
streaming
1. blocking 阻塞模式
阻塞模式是指请求发送后,服务器等待 AI 完整生成结果,再一次性返回。
优点:
- 代码简单;
- 适合后台任务;
- 适合短文本生成;
- 适合不需要实时展示的工具。
缺点:
- 长文本生成时等待时间较长;
- 用户体验不如流式输出。
适合场景:
- 标题生成;
- 摘要生成;
- 标签生成;
- 短文案生成;
- 后台批量处理。
2. streaming 流式模式
流式模式是指 AI 边生成边返回,类似 ChatGPT 打字效果。
优点:
- 用户体验更好;
- 长文本生成时不用一直空等;
- 适合聊天机器人和文章生成器。
缺点:
- 前后端处理稍复杂;
- 需要处理 SSE 数据流;
- 对服务器代理能力有一定要求。
适合场景:
- 在线客服;
- AI 聊天窗口;
- 长文章生成;
- 实时问答;
- 需要逐字展示的页面。
对于大部分站长来说,初期可以先使用 blocking 模式,等功能稳定后再升级为 streaming。
十、PHP调用Dify API示例
很多站长的网站使用 PHP,因此这里提供一个基础示例。
[
'keyword' => 'Dify API接口调用教程'
],
'response_mode' => 'blocking',
'user' => 'site-user-001'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo '请求错误:' . curl_error($ch);
curl_close($ch);
exit;
}
curl_close($ch);
$result = json_decode($response, true);
if (isset($result['answer'])) {
echo $result['answer'];
} else {
echo '接口返回异常:';
print_r($result);
}
这个示例适合 PHP 后端调用文本生成应用。
如果你使用 WordPress,可以把这段逻辑封装到插件、主题函数或后台工具页面中。
十一、JavaScript Node.js调用示例
如果你的网站后端使用 Node.js,可以这样调用:
const axios = require('axios');
async function callDify() {
const apiKey = 'YOUR_DIFY_API_KEY';
const url = 'https://api.dify.ai/v1/completion-messages';
try {
const response = await axios.post(
url,
{
inputs: {
keyword: 'Dify API接口调用教程'
},
response_mode: 'blocking',
user: 'site-user-001'
},
{
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json'
}
}
);
console.log(response.data.answer);
} catch (error) {
console.error('Dify接口调用失败:', error.response?.data || error.message);
}
}
callDify();
如果是 Express 后端,可以进一步封装成接口:
app.post('/api/ai-title', async (req, res) => {
const { keyword } = req.body;
const response = await axios.post(
'https://api.dify.ai/v1/completion-messages',
{
inputs: { keyword },
response_mode: 'blocking',
user: req.ip
},
{
headers: {
Authorization: `Bearer ${process.env.DIFY_API_KEY}`,
'Content-Type': 'application/json'
}
}
);
res.json({
text: response.data.answer
});
});
这样前端只调用你自己网站的 /api/ai-title,不会暴露 Dify API Key。
十二、Python调用Dify API示例
如果你用 Python 做后台脚本、采集系统、内容生产系统,可以参考:
import requests
api_key = "YOUR_DIFY_API_KEY"
url = "https://api.dify.ai/v1/completion-messages"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
payload = {
"inputs": {
"keyword": "Dify API接口调用教程"
},
"response_mode": "blocking",
"user": "site-user-001"
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
print(data.get("answer"))
else:
print("请求失败:", response.status_code, response.text)
Python 非常适合做批量任务,比如:
- 批量生成文章摘要;
- 批量生成栏目描述;
- 批量改写产品介绍;
- 批量生成 SEO 标题;
- 批量处理用户反馈。
十三、WordPress站长如何接入Dify?
WordPress 站长可以有几种接入方式。
1. 后台工具页调用
你可以开发一个简单插件,在 WordPress 后台增加一个“AI工具”页面,输入关键词后调用 Dify API,返回标题、大纲或文章。
适合用途:
- 文章标题生成;
- SEO 描述生成;
- 文章摘要生成;
- 标签推荐。
2. 前台表单调用
你可以在网站前台放一个表单,例如“AI标题生成器”,用户输入关键词后展示结果。
这种方式适合工具站,但一定要注意限制调用频率,避免被刷接口。
3. 评论自动回复
当用户提交评论后,可以调用 Dify 判断评论内容,并生成回复建议。
建议不要完全自动发布 AI 回复,最好先进入审核队列,避免错误回复影响网站质量。
4. 知识库客服
如果你有帮助文档、产品说明、教程文章,可以导入 Dify 知识库,再把聊天助手嵌入 WordPress 页面中。
适合企业站、SaaS 官网、教程站、软件下载站。
十四、站长常见落地场景
1. SEO标题生成器
用户输入关键词,Dify 输出多个标题。站长可以把它做成内部工具,也可以做成公开工具吸引流量。
示例输入:
关键词:Dify API接口调用教程
示例输出:
1. Dify API接口调用教程,新手站长快速上手
2. Dify API怎么调用?完整接口教程
3. 站长必看:Dify API接入网站实战
2. 文章摘要工具
把长文章正文传给 Dify,让它生成简短摘要,用于列表页、SEO 描述或社交分享。
3. 关键词拓展工具
输入一个主关键词,生成长尾关键词列表。
例如输入:
WordPress SEO
输出:
WordPress SEO插件推荐
WordPress SEO优化教程
WordPress SEO标题怎么写
WordPress SEO关键词设置
WordPress SEO新手指南
4. 智能客服
把网站帮助文档导入知识库,用户提问时让 Dify 检索回答。这样可以减少重复咨询,提高用户体验。
5. 产品描述生成
电商站长可以根据产品名称、卖点、参数生成商品描述。
6. 内容审核
通过 Dify 判断用户提交内容是否包含广告、辱骂、违法违规、垃圾信息等,并输出审核建议。
7. 自动标签分类
文章发布时调用 Dify,根据正文自动推荐标签和分类,提高后台管理效率。
十五、Dify API安全注意事项
站长在接入 API 时,一定要重视安全问题。
1. 不要在前端暴露 API Key
错误做法:
const apiKey = 'app-xxxx';
如果这段代码出现在前端页面,任何用户都可以通过浏览器查看源码或抓包获得 API Key。
正确做法是:
- 前端请求自己网站后端;
- 后端再请求 Dify;
- API Key 存在服务器环境变量中。
2. 设置访问频率限制
如果你的 AI 工具公开给用户使用,必须限制频率。例如:
- 同一 IP 每分钟最多请求 5 次;
- 登录用户每天最多请求 100 次;
- 游客每天最多请求 10 次;
- 异常请求进入黑名单。
否则容易被恶意刷接口,造成模型费用上升。
3. 做输入长度限制
用户输入内容不能无限长。建议根据功能设置限制:
- 标题生成:100 字以内;
- 摘要生成:5000 字以内;
- 客服问答:1000 字以内;
- 文章生成:根据实际模型上下文限制。
4. 保存调用日志
建议记录:
- 用户 ID;
- IP 地址;
- 请求时间;
- 输入内容;
- 输出结果;
- token 消耗;
- 接口状态;
- 错误信息。
这些日志有助于排查问题、优化提示词和控制成本。
5. 增加敏感内容过滤
虽然 Dify 和模型本身可能有一定安全机制,但站长仍应在业务层做过滤,尤其是公开工具站。
6. 防止批量滥用
可以增加验证码、人机验证、登录限制、付费会员限制等手段。
十六、常见错误与排查方法
1. 401 Unauthorized
一般是 API Key 错误或请求头格式不正确。
请检查:
Authorization: Bearer YOUR_API_KEY
注意 Bearer 后面有空格。
2. 404 Not Found
可能是接口地址写错,或者自部署 Dify 的 API 路径不正确。
请检查:
- 域名是否正确;
- 是否带
/v1/; - 应用类型是否匹配接口。
3. 400 Bad Request
通常是参数错误。例如:
inputs缺少必填变量;- JSON 格式错误;
response_mode写错;- 工作流输入字段不匹配。
4. 返回为空
可能原因包括:
- 提示词没有正确引用变量;
- 模型没有配置成功;
- 应用没有发布;
- 输入字段名称与 Dify 变量不一致。
5. 请求超时
长文本生成可能耗时较久,可以:
- 增加后端超时时间;
- 使用 streaming 模式;
- 减少生成长度;
- 优化提示词;
- 换响应速度更快的模型。
十七、如何优化调用成本?
AI 接口通常按 token 或调用量计费。站长如果做公开工具或批量生成内容,需要特别关注成本。
1. 控制输入长度
不要把无关内容全部传给模型,尽量只传必要信息。
2. 优化提示词
提示词越冗长,消耗越高。可以在保证效果的前提下精简提示词。
3. 使用缓存
对于相同输入,可以直接返回缓存结果。例如同一个关键词的标题生成,不需要每次都重新调用。
4. 区分模型等级
简单任务用便宜模型,复杂任务用高级模型。例如:
- 标签分类:低成本模型;
- 标题生成:中等模型;
- 长文章生成:高质量模型;
- 复杂推理:更强模型。
5. 设置用户额度
对公开工具站来说,建议设置免费额度和付费额度,避免无限制消耗。
十八、推荐的站长接入架构
一个比较稳妥的接入架构如下:
用户浏览器
↓
网站前端页面
↓
网站后端接口
↓
权限校验 / 频率限制 / 日志记录
↓
Dify API
↓
大语言模型 / 知识库 / 工作流
↓
返回结果
↓
网站后端处理
↓
前端展示
这样的架构有几个好处:
- API Key 不暴露;
- 可以控制调用频率;
- 可以记录用户行为;
- 可以统一处理错误;
- 可以做缓存;
- 可以根据用户等级控制功能;
- 后期容易扩展。
十九、Dify API接入实战建议
如果你是第一次接入 Dify API,建议按以下步骤推进。
第一步:先做一个简单功能
不要一开始就做复杂工作流。可以先做一个 SEO 标题生成器,只需要一个输入变量和一个输出结果。
第二步:确认接口稳定
测试不同关键词、不同输入长度、不同用户场景,确认返回稳定。
第三步:加入后端代理
不要让前端直接请求 Dify,必须通过后端代理。
第四步:加入频率限制
尤其是公开页面,一定要加限制。
第五步:优化提示词
根据实际返回效果不断调整提示词,让输出更符合你的站点风格。
第六步:扩展到更多场景
标题生成稳定后,可以继续做:
- 摘要生成;
- 描述生成;
- 标签推荐;
- 文章大纲;
- 智能客服;
- 知识库问答。
二十、总结
Dify API 对站长来说,是一个非常实用的 AI 接入方案。它把复杂的大模型应用开发过程封装到可视化平台中,让站长可以通过简单的 HTTP 请求,把 AI 能力接入自己的网站系统。
如果你只是想快速做一个 AI 工具,Dify 可以帮你减少大量开发工作;如果你想做更复杂的自动化运营系统,Dify 的工作流和知识库功能也能提供很好的扩展能力。
站长在接入 Dify API 时,需要重点关注以下几点:
- 根据业务选择合适的应用类型;
- 正确配置模型和提示词;
- 使用后端调用 API,避免泄露 Key;
- 根据应用类型选择 completion、chat 或 workflow 接口;
- 合理使用 blocking 和 streaming;
- 做好频率限制、日志记录和成本控制;
- 持续优化提示词和用户体验。
对于内容站、工具站、企业站、电商站和教程站来说,Dify API 都有很大的应用空间。只要设计好业务流程,它不仅可以提升网站效率,还能帮助站长打造更有价值的 AI 功能,从而提升用户体验、增加网站粘性,并为后续商业化提供更多可能。
标签:
- DifyAPI
- 站长
- AI应用
- 网站运营