华为云主机+DeepSeek|基于华为云主机快速构建DeepSeek,结合Dify平台AI智能旅游规划工作流Agent应用天气功

举报
杨琴 发表于 2025/07/24 11:20:00 2025/07/24
【摘要】 一、前言:在数字化技术飞速发展的当下,云计算领域的创新成果不断涌现,华为云云主机凭借强大性能与先进架构备受瞩目。一直以来,我对其前沿技术与多样功能满怀好奇。恰逢华为云提供 180 免费小时使用机会,这无疑是近距离探索体验的绝佳契机。我决定借此东风,在云主机上下载并安装Dify。 关于华为开发者空间:对于我这种既想实践前沿技术,又不想被硬件成本束缚的我来说,简直是福音。华为开发者空间,是为全...

一、前言:

在数字化技术飞速发展的当下,云计算领域的创新成果不断涌现,华为云云主机凭借强大性能与先进架构备受瞩目。一直以来,我对其前沿技术与多样功能满怀好奇。恰逢华为云提供 180 免费小时使用机会,这无疑是近距离探索体验的绝佳契机。我决定借此东风,在云主机上下载并安装Dify。

关于华为开发者空间:

对于我这种既想实践前沿技术,又不想被硬件成本束缚的我来说,简直是福音。

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。

在 AI 应用开发领域,Dify 作为一个面向业务场景的 LLM 应用平台,以其强大的 Agent 流程、插件能力和代码执行支持,成为许多开发者和企业构建智能助手的首选工具。

image.png

在使用“华为云主机快速搭建Dify-LLM应用开发平台”的过程中,开发者往往会遇到一个比较典型的问题:在代码执行节点中,某些 Python 库无法导入或使用,导致脚本运行失败,这种情况虽然常见,却并非系统错误,而是源于 Dify 在架构设计与执行安全方面的有意限制。


二、华为云主机快速搭建Dify-LLM应用开发平台实战:

2.1 免费领取开发者空间云主机:

首次打开华为开发者空间,整洁的界面和清晰的导航就让人眼前一亮。这个专为全球开发者打造的平台,就像一个一站式技术宝库,不仅提供了昇腾、鸿蒙、鲲鹏等华为核心技术的开发工具,还贴心地配备了云主机、存储空间和详细的案例指导。

image.png

点击"免费领取开发者空间云主机"按钮时,无论是PC端还是移动端,都能轻松免费获取并使用4核8G的Ubuntu 24.04云主机,领取启动取后这里我们稍等几分钟就行了,因为系统正在加载图形化界面。

image.png

进入到了桌面后,跟平时我们的电脑桌面差不多,但是华为云主机专注于开发领域的,一般的开发软件都已经存在在桌面上了,直接上手使用就行。

右键终端输入命令,安装ollama:

image.png

下完完后,就会进行安装ollama就安装好了。

image.png

接下来借助ollama工具来进行deepseek r1模型的部署操作,这里选择的是deepseek-r1:1.5b模型,当然也可以部署其他的模型。

image.png

这里在开始进行部署时,可以看到华为云主机部署速度还是很快的,8M每秒,对于下载大容量的大模型也不在话下。

image.png


2.2 集成天气查询:

在公开可用的天气 API 里,已经能够满足“只用中国城市名称即可查询”这一需求的免费方案不少:既有专注中国本土数据的服务,也有国际平台在中国城市上的免费额度,下面依照“无门槛可注册”“免费配额或完全开放”“支持直接传入城市名称,归纳十个常用接口,并给出要点速览与示例调用链接,方便直接落地。

image.png

找到第8个服务“Sojson/Itboy”这个免费的获取天气预报的API接口(Json格式),该天气查询是一个用于获取实时天气数据和预报信息的服务接口,该API提供国内范围内的返回包含生活指数、空气质量、未来 7 天。

image.png

{
  "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 系统有用的核心信息。

image.png

只需要将网页URL链接输入进来,用户友好的操作体验,无需编程知识,只需输入目标 URL,即可完成 Web 知识库的一键式生成。

image.png


2.2 字符串序列化操作:

上面天气网页爬虫可以看到返回的结果是string类型,可能不满足我们在后面的节点进行操作,需要进行字符串序列化操作,那么,在 Dify 平台中,‌代码执行节点(Code Node)‌ 是工作流(Workflow/Chatflow)中用于执行自定义 Python 代码的核心功能模块,实现复杂的数据处理、逻辑控制或与其他系统的交互。

image.png

import json
def main(arg1: str) -> dict:
    return {
        "result": json.loads(arg1)
}

Dify 的 ‌代码执行节点(Code Node)‌ 是工作流(Workflow/Chatflow)中用于运行自定义 Python 代码的核心模块,执行结构化数据解析(如 JSON/XML 提取)、文本清洗或格式转换,替代 LLM 节点处理非语言类任务,下面可以看到我们可以通过python的代码将text字符串转换为json对象成功。

image.png


2.3 如何获取字典中子孙节点值:

上面转换的json对象有好几个层级,我们目前只想使用到forecast这个字段,因为他是可以进行得到未来7天的天气状况,防止有些时间下雨的、天气不能出去游玩的。

image.png

通过python3的代码直接取字典的下级的data,再取下级的forecast字段即可拿到forecast字段的List返回值:

def main(arg1: str) -> dict:
    return {
        "result": arg1['data']['forecast']
}

image.png

通过测试也确实是可以拿到forecast字段的List数据,这样就会数组的结果进行挨着进行运算匹配,判断当前的最高温度是多少,适不适合出行。


2.4 如何进行迭代节点批量处理元素:

Dify 的迭代节点(Iteration Node)是工作流中用于‌循环处理数组数据‌的核心组件,可以批量处理数组元素‌,对输入的数组(如JSON列表)逐项执行相同操作,适用于长文本分章节生成、多链接内容汇总等场景。

image.png

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”这个数字使用正则进行匹配出来,就可以得到今天的最高温度的数字。

image.png

这样可以简化循环逻辑设计‌,相比传统代码循环,提供可视化配置界面,内置迭代计数器(index)和当前项变量(item),降低开发门槛,同时,也是支持流式输出‌,可在每次迭代后立即通过直接回复节点返回部分结果,提升用户体验。

image.png


2.5 如何计算未来时间天气比较适合出行的逻辑:

上面我们通过得到的数组来看的话,会获取一个包含天气最高温度的List,我们设置一个游玩的规则,就是只要有一天的最高温度大于20度,就表示天气比较好,可以出去游玩一下。

image.png

def main(arg1: str) -> dict:
    count = 0
    for element in arg1:
        if element > 20:
            count += 1
    return {
        "result": count
}

image.png


通过以上代码可以发现,我们传入一个数组进行测试[10, 25, 30, 15, 22, 27],可以看到10和15肯定是不符合要求的,所以,我们得到的结果是25、30、22、27这4个值,返回值是4,表示代码执行正确。


2.6 模板最后拼接:

Dify 的模板转换节点是基于 ‌Jinja2 模板引擎‌的核心功能组件,主要用于实现 ‌动态文本生成与数据格式化‌,通过模板语法将多源数据(如变量、API 响应、知识库检索结果)自动拼接为目标格式.

image.png

尊敬的客户,您的要求{{ arg3 }}游玩{{ arg2 }}天,预算是{{ arg4 }},以下是您的旅程规划信息:

------------------------------

在未来的{{ arg1 }}天天气是非常棒的,您可以按照以下的计划进行出行:

{{ arg5 }}

我们可以通过模板转换进行数据结构转换与重组‌,将复杂 JSON 或嵌套数据转换为扁平化结构,或重组为符合下游节点要求的格式,示例:将知识库检索的原始 JSON 转换为带标题的 Markdown 列表。

image.png

最后再来一个结束的节点,将输出的变量进行绑定输出,这样,基本上第一条大于1w费用的奢侈体验的分支就完成了整个布局,以下是通过“运行”,然后填写3个参数,然后,也是通过了所有节点的测试,最后将预算超过1w的行程输出出来了。

image.png


三、其它2个分支的节点完善:

(1). 舒适导向(>1w):

prompt = """作为高端旅行顾问,请为预算{}元的客户设计行程:
- 重点突出【奢华酒店】【私人导览】【尊享服务】
- 忽略成本限制,优先满足体验舒适性"""

(2). 性价比导向(5k-1w):

prompt = """作为旅行规划师,请为预算{}元客户推荐方案:
- 平衡【体验质量】与【费用支出】
- 标注每项服务的性价比指数"""

(3). 省钱导向(<5k):

prompt = """根据{}元严格预算制定行程:
- 标注每项开支并验证必要性
- 提供3个成本压缩方案备选"""

最上面的流程已完成了,那我们进行下面2个分支的流程进行开发,系统会根据输入内容智能拆解需求,结合目的地的基础信息和常见旅行路线,生成一份包含每日行程安的完整旅游计划,行程规划内容结构清晰。

image.png

基于华为云一键部署Dify平台,整个使用过程无需任何技术背景,操作简便,用户无需运维背景也能快速搭建AI应用环境,整个过程自动化程度高,配置步骤清晰,让用户在很快就能完成一个专业的个性化推荐出游计划。


四、发布:

Dify平台提供图形化应用构建界面,无需编写复杂代码,配置Agent逻辑就像填写表单一样简单,这样可以极大地降低了大模型应用的开发门槛,适用于个人开发者、小型团队甚至非技术背景的业务人员。

image.png

通过发布这个智能本后,接入华为云ModelArts Studio的DeepSeek模型后,Agent在处理复杂输入时表现出极强的语言理解与规划能力,能生成内容丰富、结构完整的旅行方案。


五、总结:

在数字化时代,快速响应和高效解决客户问题是企业成功的关键,Dify作为一个强大的开源LLM应用开发平台,华为云主机平台上的DeepSeek-V3/R1大模型推理服务,提供了可视化编排工具,让即使没有深厚编程背景的人也能快速构建强大的AI应用。

在旅游旺季到来之际,为用户快速生成个性化旅行攻略成为刚需,Dify 作为低代码智能体开发平台,使用华为云快速搭建Dify-LLM应用开发平台,凭借灵活的工作流编排能力,让开发者能够高效构建智能应用。本文将以“AI智能旅游规划工作流Agent应用”入手为例,深入剖析其工作流的设计与实现,带大家领略 Dify 的强大之处。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。