华为云主机+DeepSeek|基于华为云主机快速构建DeepSeek,结合Dify平台AI智能旅游规划工作流Agent应用天气功
一、前言:
在数字化技术飞速发展的当下,云计算领域的创新成果不断涌现,华为云云主机凭借强大性能与先进架构备受瞩目。一直以来,我对其前沿技术与多样功能满怀好奇。恰逢华为云提供 180 免费小时使用机会,这无疑是近距离探索体验的绝佳契机。我决定借此东风,在云主机上下载并安装Dify。
关于华为开发者空间:
对于我这种既想实践前沿技术,又不想被硬件成本束缚的我来说,简直是福音。
华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。
在 AI 应用开发领域,Dify 作为一个面向业务场景的 LLM 应用平台,以其强大的 Agent 流程、插件能力和代码执行支持,成为许多开发者和企业构建智能助手的首选工具。
在使用“华为云主机快速搭建Dify-LLM应用开发平台”的过程中,开发者往往会遇到一个比较典型的问题:在代码执行节点中,某些 Python 库无法导入或使用,导致脚本运行失败,这种情况虽然常见,却并非系统错误,而是源于 Dify 在架构设计与执行安全方面的有意限制。
二、华为云主机快速搭建Dify-LLM应用开发平台实战:
2.1 免费领取开发者空间云主机:
首次打开华为开发者空间,整洁的界面和清晰的导航就让人眼前一亮。这个专为全球开发者打造的平台,就像一个一站式技术宝库,不仅提供了昇腾、鸿蒙、鲲鹏等华为核心技术的开发工具,还贴心地配备了云主机、存储空间和详细的案例指导。
点击"免费领取开发者空间云主机"按钮时,无论是PC端还是移动端,都能轻松免费获取并使用4核8G的Ubuntu 24.04云主机,领取启动取后这里我们稍等几分钟就行了,因为系统正在加载图形化界面。
进入到了桌面后,跟平时我们的电脑桌面差不多,但是华为云主机专注于开发领域的,一般的开发软件都已经存在在桌面上了,直接上手使用就行。
右键终端输入命令,安装ollama:
下完完后,就会进行安装ollama就安装好了。
接下来借助ollama工具来进行deepseek r1模型的部署操作,这里选择的是deepseek-r1:1.5b模型,当然也可以部署其他的模型。
这里在开始进行部署时,可以看到华为云主机部署速度还是很快的,8M每秒,对于下载大容量的大模型也不在话下。
2.2 集成天气查询:
在公开可用的天气 API 里,已经能够满足“只用中国城市名称即可查询”这一需求的免费方案不少:既有专注中国本土数据的服务,也有国际平台在中国城市上的免费额度,下面依照“无门槛可注册”“免费配额或完全开放”“支持直接传入城市名称,归纳十个常用接口,并给出要点速览与示例调用链接,方便直接落地。
找到第8个服务“Sojson/Itboy”这个免费的获取天气预报的API接口(Json格式),该天气查询是一个用于获取实时天气数据和预报信息的服务接口,该API提供国内范围内的返回包含生活指数、空气质量、未来 7 天。
{
"result": {
"message": "success",
"status": 200,
"date": "20250629",
"time": "2025-06-29 22:37:59",
"cityInfo": {
"city": "北京市",
"citykey": "101010100",
"parent": "北京",
"updateTime": "19:08"
},
"data": {
"shidu": "64%",
"pm25": 16,
"pm10": 22,
"quality": "良",
"wendu": "29.6",
"ganmao": "极少数敏感人群应减少户外活动",
"forecast": [
{
"date": "29",
"high": "高温 35℃",
"low": "低温 24℃",
"ymd": "2025-06-29",
"week": "星期日",
"sunrise": "04:48",
"sunset": "19:47",
"aqi": 53,
"fx": "东南风",
"fl": "2级",
"type": "阴",
"notice": "不要被阴云遮挡住好心情"
},
……
],
}
}
增加一个新的节点“网页爬虫”,可以将网站内容转换为适用于大型语言模型(LLM)的结构化数据,并将这些内容转换为干净、格式化的 text文本,它能智能识别并提取网页中的主要内容,自动过滤广告、导航栏等无关元素,确保保留对 AI 系统有用的核心信息。
只需要将网页URL链接输入进来,用户友好的操作体验,无需编程知识,只需输入目标 URL,即可完成 Web 知识库的一键式生成。
2.2 字符串序列化操作:
上面天气网页爬虫可以看到返回的结果是string类型,可能不满足我们在后面的节点进行操作,需要进行字符串序列化操作,那么,在 Dify 平台中,代码执行节点(Code Node) 是工作流(Workflow/Chatflow)中用于执行自定义 Python 代码的核心功能模块,实现复杂的数据处理、逻辑控制或与其他系统的交互。
import json
def main(arg1: str) -> dict:
return {
"result": json.loads(arg1)
}
Dify 的 代码执行节点(Code Node) 是工作流(Workflow/Chatflow)中用于运行自定义 Python 代码的核心模块,执行结构化数据解析(如 JSON/XML 提取)、文本清洗或格式转换,替代 LLM 节点处理非语言类任务,下面可以看到我们可以通过python的代码将text字符串转换为json对象成功。
2.3 如何获取字典中子孙节点值:
上面转换的json对象有好几个层级,我们目前只想使用到forecast这个字段,因为他是可以进行得到未来7天的天气状况,防止有些时间下雨的、天气不能出去游玩的。
通过python3的代码直接取字典的下级的data,再取下级的forecast字段即可拿到forecast字段的List返回值:
def main(arg1: str) -> dict:
return {
"result": arg1['data']['forecast']
}
通过测试也确实是可以拿到forecast字段的List数据,这样就会数组的结果进行挨着进行运算匹配,判断当前的最高温度是多少,适不适合出行。
2.4 如何进行迭代节点批量处理元素:
Dify 的迭代节点(Iteration Node)是工作流中用于循环处理数组数据的核心组件,可以批量处理数组元素,对输入的数组(如JSON列表)逐项执行相同操作,适用于长文本分章节生成、多链接内容汇总等场景。
import re
def main(arg1: str) -> dict:
# 提取high字段
high_str = arg1['high']
# 使用正则表达式提取数字
numbers = re.findall(r'\d+', high_str)
if numbers:
high_temp = int(numbers[0]) # 将提取的数字转换为整数
return {
"result": high_temp
}
else:
return {
"result": 0
}
比如:将文章大纲拆分为多个章节,通过LLM节点循环生成每部分内容,这里我们把每一个节点的元素进行循环,先获取high字段,再把“高温35度C”这个数字使用正则进行匹配出来,就可以得到今天的最高温度的数字。
这样可以简化循环逻辑设计,相比传统代码循环,提供可视化配置界面,内置迭代计数器(index)和当前项变量(item),降低开发门槛,同时,也是支持流式输出,可在每次迭代后立即通过直接回复节点返回部分结果,提升用户体验。
2.5 如何计算未来时间天气比较适合出行的逻辑:
上面我们通过得到的数组来看的话,会获取一个包含天气最高温度的List,我们设置一个游玩的规则,就是只要有一天的最高温度大于20度,就表示天气比较好,可以出去游玩一下。
def main(arg1: str) -> dict:
count = 0
for element in arg1:
if element > 20:
count += 1
return {
"result": count
}
通过以上代码可以发现,我们传入一个数组进行测试[10, 25, 30, 15, 22, 27],可以看到10和15肯定是不符合要求的,所以,我们得到的结果是25、30、22、27这4个值,返回值是4,表示代码执行正确。
2.6 模板最后拼接:
Dify 的模板转换节点是基于 Jinja2 模板引擎的核心功能组件,主要用于实现 动态文本生成与数据格式化,通过模板语法将多源数据(如变量、API 响应、知识库检索结果)自动拼接为目标格式.
尊敬的客户,您的要求{{ arg3 }}游玩{{ arg2 }}天,预算是{{ arg4 }},以下是您的旅程规划信息:
------------------------------
在未来的{{ arg1 }}天天气是非常棒的,您可以按照以下的计划进行出行:
{{ arg5 }}
我们可以通过模板转换进行数据结构转换与重组,将复杂 JSON 或嵌套数据转换为扁平化结构,或重组为符合下游节点要求的格式,示例:将知识库检索的原始 JSON 转换为带标题的 Markdown 列表。
最后再来一个结束的节点,将输出的变量进行绑定输出,这样,基本上第一条大于1w费用的奢侈体验的分支就完成了整个布局,以下是通过“运行”,然后填写3个参数,然后,也是通过了所有节点的测试,最后将预算超过1w的行程输出出来了。
三、其它2个分支的节点完善:
(1). 舒适导向(>1w):
prompt = """作为高端旅行顾问,请为预算{}元的客户设计行程:
- 重点突出【奢华酒店】【私人导览】【尊享服务】
- 忽略成本限制,优先满足体验舒适性"""
(2). 性价比导向(5k-1w):
prompt = """作为旅行规划师,请为预算{}元客户推荐方案:
- 平衡【体验质量】与【费用支出】
- 标注每项服务的性价比指数"""
(3). 省钱导向(<5k):
prompt = """根据{}元严格预算制定行程:
- 标注每项开支并验证必要性
- 提供3个成本压缩方案备选"""
最上面的流程已完成了,那我们进行下面2个分支的流程进行开发,系统会根据输入内容智能拆解需求,结合目的地的基础信息和常见旅行路线,生成一份包含每日行程安的完整旅游计划,行程规划内容结构清晰。
基于华为云一键部署Dify平台,整个使用过程无需任何技术背景,操作简便,用户无需运维背景也能快速搭建AI应用环境,整个过程自动化程度高,配置步骤清晰,让用户在很快就能完成一个专业的个性化推荐出游计划。
四、发布:
Dify平台提供图形化应用构建界面,无需编写复杂代码,配置Agent逻辑就像填写表单一样简单,这样可以极大地降低了大模型应用的开发门槛,适用于个人开发者、小型团队甚至非技术背景的业务人员。
通过发布这个智能本后,接入华为云ModelArts Studio的DeepSeek模型后,Agent在处理复杂输入时表现出极强的语言理解与规划能力,能生成内容丰富、结构完整的旅行方案。
五、总结:
在数字化时代,快速响应和高效解决客户问题是企业成功的关键,Dify作为一个强大的开源LLM应用开发平台,华为云主机平台上的DeepSeek-V3/R1大模型推理服务,提供了可视化编排工具,让即使没有深厚编程背景的人也能快速构建强大的AI应用。
在旅游旺季到来之际,为用户快速生成个性化旅行攻略成为刚需,Dify 作为低代码智能体开发平台,使用华为云快速搭建Dify-LLM应用开发平台,凭借灵活的工作流编排能力,让开发者能够高效构建智能应用。本文将以“AI智能旅游规划工作流Agent应用”入手为例,深入剖析其工作流的设计与实现,带大家领略 Dify 的强大之处。
- 点赞
- 收藏
- 关注作者
评论(0)