从零开始搭建Dify旅行助手Agent完整指南
本文介绍了使用Dify平台快速开发AI旅行助手应用的完整流程:从Docker部署Dify平台(解决国内网络问题)→初始化配置AI模型→创建智能旅行助手Agent→Postman接口测试→最终集成到Python Streamlit Web应用中。通过Dify的LLM开发平台,无需深厚AI背景即可高效构建智能应用,将开发效率提升10倍以上。教程包含详细步骤和代码示例,适合对AI应用开发感兴趣的开发者快
本文将带你完整体验:Docker部署Dify → 创建智能旅行助手 → Postman接口测试 → Python Web应用集成
适合人群:对AI应用开发感兴趣的开发者、想快速上手Dify的小伙伴
预计用时:30分钟
前言
Dify作为当下最火热的LLM应用开发平台,让我们无需深厚的AI背景就能快速构建智能应用。本文将以旅行助手Agent为例,带你走完从部署到实战的完整流程。相比传统开发方式,使用Dify可以将开发效率提升10倍以上!
话不多说,让我们开始吧!🎯
一、快速部署Dify平台
1.1 获取Dify源码
步骤如下:
- 访问 Dify官网,点击GitHub图标跳转至项目仓库

- 在GitHub页面点击 Code → Download ZIP 下载项目文件

- 解压
dify-main.zip压缩包
1.2 配置环境文件
进入解压后的项目目录,找到 docker 文件夹:
dify-main/
└── docker/
├── .env.example 👈 重命名这个文件
├── docker-compose.yaml
└── ...
关键步骤:
- 将
.env.example重命名为.env
💡 小提示: 这个.env文件包含了Dify运行所需的环境变量配置
1.3 启动Docker容器
在 docker 文件夹中打开命令行工具:
方式一: 在文件夹空白处按住 Shift + 右键,选择"在此处打开命令窗口"
方式二: 打开CMD后输入:
cd /d D:\your-path\dify-main\docker

执行部署命令:
docker compose up -d
Docker将自动拉取并启动Dify所需的所有服务容器。
⏳ 等待时间: 首次部署约需5-15分钟(取决于网络速度)
二、解决国内网络问题(必看!)
2.1 常见问题
如果遇到以下情况:
- ❌ 镜像拉取超时
- ❌ 下载到一半报错
- ❌ connection refused
原因: 未配置国内Docker镜像源导致访问Docker Hub受限
2.2 配置镜像加速
操作步骤:
- 打开Docker Desktop应用
- 点击右上角 设置(Settings) 图标

- 左侧菜单选择 Docker Engine

- 在右侧JSON配置中添加以下内容:
{ "registry-mirrors": [ "https://docker.1ms.run", "https://registry.dockermirror.com", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] }⚠️ 注意: 请确保JSON格式正确,逗号和括号不要遗漏
- 点击 Apply & restart 应用并重启Docker
- 重新执行部署命令:
docker compose up -d
三、初始化Dify平台
3.1 访问Dify
部署成功后,在浏览器中输入: ``` http://localhost/install部署成功后,在浏览器中输入: ``` http://localhost/install,设置管理员邮箱和密码,我这里是登录,因为已经设置过了.
3.2 配置AI模型
登录成功后,我们需要接入AI模型才能使用:
**步骤:**
1. 进入 **设置 → 模型供应商**

2. 找到 **你有API的模型** 并点击安装(比如我是deepseek,注册送20元)

3.3 获取API密钥
访问deepseek开发者平台:
1:注册/登录账号DeepSeek | 深度求索

deepseek api-key获取地址DeepSeek 开放平台

3.4添加秘钥
点击 **配置模型api**并保存


四、创建旅行助手Agent
4.1 新建应用
- 返回Dify 工作室(Studio)

- 点击右上角 创建空白应用

- 选择 Agent类型

- 输入应用名称:
智能旅行助手 - 添加应用描述:
为用户提供个性化旅行规划和建议
- 点击 创建

- 创建提示词

- 输入简单的提示词,点击生成

- 点击应用


- 测试效果:从下面的输入框输入一些信息,或者额外的要求.

- 发布和更新

4.2 postman测试
1:点击访问API
2:点击API秘钥,并生成API秘钥,然后复制


3:打开postman并创建一个新的collection
4:创建一个新的请求

5:参考API文档编写请求,如:
请求类型:psot
请求地址:http://localhost/v1/chat-messages
header:
Authorization: Bearer {API_KEY}
Content-Type: application/json

6:编写body:,选择raw,json
输入:根据实际情况 agent只支持流式输出
{
"inputs": {
"destination": "北京",
"day": "5",
"budget": "5000"
},
"query": "我从上海出发,不喜欢坐飞机",
"response_mode": "streaming",
"user": "test-user-123"
}

7:查看结果:
4.3 python web应用
直接附上代码:
import streamlit as st
import requests
import json
# 页面配置
st.set_page_config(
page_title="AI旅行助手",
page_icon="✈️",
layout="wide"
)
# 标题
st.title("✈️ AI旅行助手")
st.markdown("让AI帮你规划完美的旅行计划!")
# 侧边栏输入
with st.sidebar:
st.header("📝 旅行信息")
destination = st.text_input(
"目的地",
placeholder="例如:东京、巴黎、纽约...",
help="输入你想去的城市或国家"
)
days = st.number_input(
"旅行天数",
min_value=1,
max_value=30,
value=5,
help="计划旅行的天数"
)
budget = st.number_input(
"预算(元)",
min_value=100,
max_value=100000,
value=10000,
step=1000,
help="本次旅行的总预算"
)
st.divider()
query = st.text_area(
"其他要求(可选)",
placeholder="例如:我喜欢美食,想体验当地文化...",
help="告诉AI你的特殊需求"
)
generate_button = st.button("🚀 生成旅行计划", type="primary", use_container_width=True)
# 主要内容区域
if generate_button:
if not destination:
st.error("❌ 请输入目的地!")
else:
# 准备API调用
api_url = "http://localhost/v1/chat-messages"
api_key = "app-LTyjvHzwlLaFg5zK7Aqu0wFm"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# 构建查询
if query:
final_query = query
else:
final_query = "请帮我规划这次旅行"
data = {
"inputs": {
"destination": destination,
"day": days,
"budget": budget
},
"query": final_query,
"response_mode": "streaming",
"user": "streamlit-user"
}
st.info(f"🔍 正在为你规划 **{destination}** 的 **{days}天** 旅行(预算:**¥{budget}**)...")
# 创建一个容器来显示流式输出
response_container = st.empty()
full_response = ""
try:
# 发送流式请求
with requests.post(api_url, headers=headers, json=data, stream=True) as response:
if response.status_code == 200:
for line in response.iter_lines():
if line:
line_text = line.decode('utf-8')
# 跳过 "data: " 前缀和 "event: ping"
if line_text.startswith('data: '):
json_str = line_text[6:] # 去掉 "data: "
try:
data_obj = json.loads(json_str)
event_type = data_obj.get('event')
# 处理agent消息事件
if event_type == 'agent_message':
answer = data_obj.get('answer', '')
if answer:
full_response += answer
response_container.markdown(full_response)
# 处理普通消息事件(非agent模式)
elif event_type == 'message':
answer = data_obj.get('answer', '')
if answer:
full_response += answer
response_container.markdown(full_response)
# 处理结束事件
elif event_type == 'message_end':
st.success("✅ 旅行计划生成完成!")
break
except json.JSONDecodeError:
continue
elif line_text.startswith('event: ping'):
continue
if not full_response:
st.warning("⚠️ 未收到回复,请重试")
else:
st.error(f"❌ API调用失败:{response.status_code}")
st.code(response.text)
except Exception as e:
st.error(f"❌ 发生错误:{str(e)}")
else:
# 默认显示
st.markdown("""
### 👈 请在左侧填写旅行信息
#### 功能介绍:
- 🌍 **智能行程规划**:根据你的预算和时间,AI会为你规划详细的行程
- 🏨 **住宿推荐**:推荐符合预算的酒店和住宿
- 🍜 **美食指南**:当地特色美食和餐厅推荐
- 🎯 **景点推荐**:必去景点和游玩建议
- 💰 **预算分配**:帮你合理分配旅行预算
#### 使用步骤:
1. 在左侧输入你的目的地
2. 设置旅行天数和预算
3. (可选)添加其他特殊要求
4. 点击"生成旅行计划"按钮
5. 等待AI为你生成专属的旅行计划
---
**示例**:
- 目的地:东京
- 天数:5天
- 预算:10000元
""")
# 页脚
st.divider()
st.caption("🤖 Powered by Dify AI Agent")
web应用效果:


OK,展示结束,如果有不懂的小伙伴可以评论区留言,大家一起学习!
更多推荐


所有评论(0)