当前位置: 首页 > news >正文

从零开始搭建Dify旅行助手Agent完整指南

本文将带你完整体验: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
└── ...
AI写代码
关键步骤:

将 .env.example 重命名为 .env
💡 小提示: 这个.env文件包含了Dify运行所需的环境变量配置

1.3 启动Docker容器
在 docker 文件夹中打开命令行工具:

方式一: 在文件夹空白处按住 Shift + 右键,选择"在此处打开命令窗口"

方式二: 打开CMD后输入:

cd /d D:\your-path\dify-main\docker
AI写代码
bash


执行部署命令:

docker compose up -d
AI写代码
bash
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"
]
}
AI写代码
bash

⚠️ 注意: 请确保JSON格式正确,逗号和括号不要遗漏

点击 Apply & restart 应用并重启Docker
重新执行部署命令:
docker compose up -d
AI写代码
bash
三、初始化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"
}
AI写代码
bash

 


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")
AI写代码
python
运行

web应用效果:

 

 

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

文章转自:[《黑神话悟空》第三难完成方法]   (https://www.52mwyd.com/news/37097.html)

作者:[美文阅读网](https://www.52mwyd.com/),转载请注明原文链接:https://www.52mwyd.com/

http://www.gsyq.cn/news/49032.html

相关文章:

  • 2025年EGUOO睡眠片助眠:权威深度解析科学配方与缓释机制
  • 2025年热门的缓冲防摆动滑轨品牌厂家排行榜
  • 2025年比较好的橱柜上翻门高评价厂家推荐榜
  • 2025年EGUOO睡眠片:深度解析科学助眠机制与临床验证
  • 2025年11月长白山旅游度假酒店推荐榜:5家口碑住宿全维度对比
  • 2025年11月长白山度假酒店推荐榜:5C营地与瑞士风木屋综合榜
  • 价值原语化理论:实践智慧与核心挑战的系统性回应
  • 价值原语化工程网络:共识、价值与文明的涌现系统
  • Universal Smart Remote Key for Porsche – 5-Pack KEYDIY KD ZB19-3
  • Filebeat配置和启动
  • mysql可以用内容为汉字的列作为索引列吗?
  • 文字识别准确率
  • logstash配置和启动
  • 2025年广东军事化训练学校/机构最新TOP5权威评测:铸就坚毅品格,领航成长之路
  • 2025年广东青少年感恩教育学校/机构最新TOP5推荐:家庭教育、心理健康,科学评测
  • 2025广东法制教育机构/学校最新TOP5评测:心理健康、素质拓展、行为矫正全覆盖
  • 2025年贵州贵阳母婴护理机构最新TOP5评测:守护母婴健康的专业力量
  • 使用 vLLM 本地部署 Qwen3-Embedding-8B 模型并接入 Dify 完整指南 - yi
  • 《VS Code:高效编程的插件与配置》
  • 10.26 NOTE
  • 2025年共享仓库服务最新TOP5推荐:山东、河北、江浙沪等国内区域,中亚、阿富汗、俄罗斯等国际地区,高效仓储解决方案引领者
  • 在ec2上部署CosyVoice2模型
  • 每日反思(2025_11_13)
  • 2025年运输服务企业最新TOP5评测:国内、跨境物流解决方案引领者
  • 疲劳数据分析与设计曲线 25
  • 【AI翻译】分布式系统中的心跳机制
  • “ArcGIS Pro制图-模型构建器-ArcPy开发-AI-无人机实操”系列培训班预告
  • 控制领域常用希腊字母表
  • DNS record types: AAAA vs AA All In One
  • JVM之锁优化(自旋锁 适应性自旋 锁消除 锁粗化 轻量级锁 偏向锁) - 教程