跳到主要内容

从零到一:构建Dify应用

本教程将带您从零开始,使用Dify平台构建一个完整的AI应用。我们将创建一个智能客服助手,能够回答产品问题、处理订单查询、提供个性化推荐。

项目概述

功能特性

  • ✅ 智能问答
  • ✅ 订单查询
  • ✅ 产品推荐
  • ✅ 多轮对话
  • ✅ 知识库集成
  • ✅ Web界面

技术栈

  • 平台:Dify
  • LLM:OpenAI GPT-4 / Claude
  • 向量数据库:内置向量数据库
  • 部署:Docker / 云服务

第一步:环境准备

1.1 安装Dify

方式1:Docker Compose(推荐)

# 克隆Dify仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker

# 启动服务
docker-compose up -d

方式2:云服务

访问 Dify官网 注册账号,使用云端服务。

1.2 配置环境变量

创建 .env 文件:

OPENAI_API_KEY=your-openai-api-key
ANTHROPIC_API_KEY=your-anthropic-api-key # 可选

第二步:创建应用

2.1 创建对话型应用

  1. 登录Dify平台
  2. 点击"创建应用" → 选择"对话型应用"
  3. 填写应用信息:
    • 应用名称:智能客服助手
    • 应用描述:处理客户咨询和订单查询

2.2 配置提示词

在提示词编辑器中输入:

你是一个专业的客服助手,负责回答客户关于产品、订单、服务的问题。

客户问题:{{#user.input#}}

请根据以下知识库内容回答问题:
{{#knowledge_base#}}

回答要求:
1. 准确、友好、专业
2. 如果不确定,请引导客户联系人工客服
3. 如果涉及订单查询,请提供订单号查询链接

2.3 配置知识库

  1. 创建知识库:

    • 名称:产品知识库
    • 描述:包含产品信息、常见问题、使用指南
  2. 上传文档:

    • 支持PDF、Word、TXT、Markdown等格式
    • 可以批量上传多个文档
  3. 配置检索设置:

    • Top K:5(返回最相关的5个文档片段)
    • 相似度阈值:0.7

第三步:配置工具和变量

3.1 添加工具

订单查询工具

# 工具配置
{
"name": "query_order",
"description": "查询订单信息",
"parameters": {
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "订单号"
}
},
"required": ["order_id"]
}
}

产品推荐工具

{
"name": "recommend_products",
"description": "根据用户需求推荐产品",
"parameters": {
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "产品类别"
},
"budget": {
"type": "number",
"description": "预算范围"
}
}
}
}

3.2 配置变量

在应用设置中添加变量:

  • user_name:用户名称
  • user_level:用户等级(VIP/普通)
  • language:语言偏好

第四步:测试和优化

4.1 测试对话

在对话界面测试:

用户:你好,我想查询订单12345的状态
助手:正在为您查询订单12345...
[调用订单查询工具]
助手:您的订单12345当前状态为"已发货",预计明天送达。

4.2 优化提示词

根据测试结果优化提示词:

  1. 调整回答风格
  2. 优化知识库检索策略
  3. 改进工具调用逻辑

4.3 配置对话设置

  • 温度:0.7(平衡创造性和准确性)
  • 最大Token:2000
  • 系统提示词:定义助手角色和行为

第五步:集成和部署

5.1 API集成

获取API密钥:

import requests

api_key = "your-api-key"
api_url = "https://api.dify.ai/v1/chat-messages"

headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}

data = {
"inputs": {},
"query": "用户问题",
"response_mode": "blocking",
"conversation_id": "",
"user": "user-123"
}

response = requests.post(api_url, headers=headers, json=data)
print(response.json())

5.2 Web嵌入

在网站中嵌入聊天窗口:

<script>
window.difySettings = {
apiKey: 'your-api-key',
appId: 'your-app-id'
};
</script>
<script src="https://udify.app/embed.min.js"></script>

5.3 自定义界面

使用Dify API构建自定义界面:

// React示例
import { useState } from 'react';

function ChatWidget() {
const [messages, setMessages] = useState([]);
const [input, setInput] = useState('');

const sendMessage = async () => {
const response = await fetch('https://api.dify.ai/v1/chat-messages', {
method: 'POST',
headers: {
'Authorization': 'Bearer your-api-key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
inputs: {},
query: input,
response_mode: 'streaming',
user: 'user-123'
})
});

// 处理流式响应
const reader = response.body.getReader();
// ... 处理逻辑
};

return (
<div className="chat-widget">
{/* 聊天界面 */}
</div>
);
}

第六步:监控和优化

6.1 查看使用统计

在Dify控制台查看:

  • 对话数量
  • Token使用量
  • 用户反馈
  • 错误日志

6.2 持续优化

  1. 分析对话日志:识别常见问题和改进点
  2. 更新知识库:添加新文档,删除过时内容
  3. 优化提示词:根据用户反馈调整
  4. A/B测试:测试不同的提示词版本

总结

本教程展示了如何使用Dify平台快速构建AI应用:

  1. 环境搭建和配置
  2. 创建对话型应用
  3. 配置知识库和工具
  4. 测试和优化
  5. 集成和部署
  6. 监控和持续优化

Dify平台大大简化了AI应用的开发流程,让您能够快速构建生产级的AI应用。