AI Agent 实战:搭建个人在线旅游助手
AI Agent 实战:搭建个人在线旅游助手
本次实验中,我们将继续探索 Agent 的提示词,学习更加规范的提示词撰写方法。
本实验中你将掌握的知识点
- 使用 Dify 构建 Agent 的方法
- 结构化的提示词撰写技巧
- 变量的使用方法
1. 准备
在新建 Agent 之前,请先确保以下步骤已经完成:
- 注册和登录 Dify,如果你想要进行本地部署,可以参考 社区版 - Docker Compose 部署
- 至少配置一个模型供应商(Dify 赠送 200 条 OpenAI 消息额度,但为了确保实验顺利建议自行配置 LLM 的 API Key)
2. 配置工具
搭建在线旅游助手需要使用联网的搜索引擎作为参考资料来源,本文中将以 Google 作为示例。
当然,你也可以使用其他的搜索引擎,例如必应,甚至是由 AI 驱动的 Perplexity。
Dify 提供的 Google 工具基于 SerpAPI,因此需要提前进入 SerpAPI 的 API Key 管理页申请 API Key 并粘贴到 Dify - 工具 的对应位置。
具体操作步骤如下:
- 新增 SerpAPI 的 API Key:
进入SerpAPI - API Key,如果你尚未注册,会被跳转至进入注册页。
SerpAPI提供一个月100次的免费调用次数,这足够我们完成本次实验了。如果你需要更多的额度,可以增加余额,或者使用其他的开源方案。
点击复制

- 前往 Dify - 工具 - Google:
点击 去授权 ,填入API Key并保存。

webscraper
本次实验中,我们需要一个爬虫工具从指定的网页中抓取内容,Dify 已提供内置工具,无需额外配置。

Wikipedia
我们还希望 Agent 能够准确介绍目的地知识,Wikipedia 是一个比较好知识来源,Dify 也内置了该工具,无需额外配置。

3. 构建 Agent
首先我们选择 创建空白应用 - Agent:
添加工具:Google、webscraper和wikipedia并启用。

- 示例输出
示例输出不是必要的部分。示例输出的目的是为了给 Agent 一个书写格式的参考,以确保 Agent 的输出更接近我们的期望。
以下是旅游助手的示例输出:
## 示例### 详细旅行计划**酒店推荐**
1. 肯辛顿酒店 (了解更多:www.doylecollection.com/hotels/the-kensington-hotel)
- 评分:4.6⭐
- 价格:每晚约350美元
- 简介:坐落在一座摄政时期的联排别墅中,这家优雅的酒店距离南肯辛顿地铁站5分钟步行路程,距离维多利亚和阿尔伯特博物馆10分钟步行路程。2. 伦勃朗酒店 (了解更多:www.sarova-rembrandthotel.com)
- 评分:4.3⭐
- 价格:每晚约130美元
- 简介:建于1911年,最初是哈罗德百货公司(距离0.4英里)的公寓,这家现代化酒店坐落在维多利亚和阿尔伯特博物馆对面,距离南肯辛顿地铁站(直达希思罗机场)5分钟步行路程。**第1天 - 抵达和安顿**
- **上午**:抵达机场。欢迎来到你的冒险之旅!我们的代表将在机场迎接你,确保你顺利入住。
- **下午**:入住酒店,稍作休息,恢复精力。
- **晚上**:在住宿周边进行轻松的步行游览,熟悉当地环境。发现附近的用餐选择,享受愉快的第一顿晚餐。**第2天 - 文化与自然之旅**
- **上午**:从帝国理工学院开始你的一天,这是世界顶尖的学府之一。享受一次校园导览。
- **下午**:选择参观自然历史博物馆(以其引人入胜的展览而闻名)或维多利亚和阿尔伯特博物馆(庆祝艺术和设计)。之后,在宁静的海德公园放松,也许还可以在蛇形湖上乘船游览。
- **晚上**:探索当地美食。我们推荐你在传统的英国酒吧享用晚餐。**附加服务:**
- **礼宾服务**:在你停留期间,我们的礼宾服务随时可以协助预订餐厅、购买门票、安排交通,以及满足任何特殊要求,以提升你的体验。
- **24/7支持**:我们提供全天候支持,以解决你在旅行中可能遇到的任何问题或需求。祝你旅途愉快,满载丰富经历和美好回忆!
思考题 1: 如何规范化用户输入?
通常我们输入 Agent 内容都是自然语言,而自然语言的一个缺点是很难规范化,有可能包含了一些 Agent不需要的信息或者没有价值的信息,这个时候我们可以引入变量来规范化输入。
Dify 目前支持文本、段落、下拉选项、数字、基于 API 的变量这几种类型的变量。
在本实验中,我们只需要选用文本类型的变量即可。
在变量中,选择合适的变量类型,我们可以询问用户目的地、旅行天数、预算。
| 变量Key | 变量类型 | 字段名称 | 可选 |
|---|---|---|---|
| destination | 文本 | 目的地 | 是 |
| day | 文本 | 旅行天数 | 是 |
| budget | 文本 | 旅行预算 | 是 |
需要注意的是,变量 Key,也就是变量的名称,仅支持大小写英文、数字、下划线。字段名称是用户可以看到的提示内容。
添加变量后,用户可以按照应用开发者的意图向应用提供必要的背景信息,实现的效果如下:

相关文章:
AI Agent 实战:搭建个人在线旅游助手
AI Agent 实战:搭建个人在线旅游助手 本次实验中,我们将继续探索 Agent 的提示词,学习更加规范的提示词撰写方法。 本实验中你将掌握的知识点 使用 Dify 构建 Agent 的方法结构化的提示词撰写技巧变量的使用方法 1. 准备 在新建 Agent 之…...
【JavaScript】十四、轮播图
文章目录 实现一个轮播图,功能点包括: 自动播放鼠标经过暂时播放鼠标离开继续播放点击切换按钮手动切换 div盒子嵌套先写出静态HTML,再使用JS来修改样式和数据,渲染页面: <!DOCTYPE html> <html lang"…...
2025 全球音乐 AI 大模型对决:技术革新引领商业变革浪潮
未来的世界声音: 音乐产业如今正被 AI 技术推动着,开启一场智能革命的全新篇章。无论是旋律的诞生,还是工业化编曲的流程,AI 大模型都在以飞快的速度改变着行业的基本逻辑架构。在中国,昆仑万维依靠 Mureka 系列产品在…...
RabbitMQ详解,RabbitMQ是什么?架构是怎样的?
目录 一,RabbitMQ是什么? 二,RabbitMQ架构 2.1 首先我们来看下RabbitMQ里面的心概念Queue是什么? 2.2 交换器Exchange 2.3 RabbitMQ是什么? 2.4 重点看下优先级队列是什么? 三,RabbitMQ集群 3.1 普通集群模式 3.2 镜像队列集群 一,RabbitMQ是什么? 假设我们程序…...
Java 大视界 -- Java 大数据在智能教育自适应学习平台中的用户行为分析与个性化推荐(169)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
智能打印预约系统:微信小程序+SSM框架实战项目
微信小程序打印室预约系统,采用SSM(SpringSpringMVCMyBatis)经典框架组合。 一、系统核心功能详解 1. 智能化管理后台 用户数据看板打印店资源管理预约动态监控服务评价系统 2. 微信小程序端 智能定位服务预约时段选择文件…...
Redisson 操作 Redis Stream 消息队列详解及实战案例
目录 一、Redis Stream 概念 1.Redis消息队列-认识消息队列 2.Redis Stream特点 3.Redis Stream与RabbitMQ等消息队列的比较 二.Redis Stream基本操作命令 1.生产消息 2.消费消息 3.消费者组操作 4.确认消息处理 三、Redisson 操作 Stream 的核心 API 1. 获取流的API…...
【深度学习量化交易19】行情数据获取方式比测(1)——基于miniQMT的量化交易回测系统开发实记
我是Mr.看海,我在尝试用信号处理的知识积累和思考方式做量化交易,应用深度学习和AI实现股票自动交易,目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 经常使用MiniQMT的朋友都知道,xtquant的…...
23种设计模式-结构型模式-代理
文章目录 简介问题解决方案代码核心设计要点 总结 简介 代理是一种结构型设计模式,让你能够提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在把请求提交给对象前后进行一些处理。 问题 为什么要控制对于某个对象的访问呢?…...
Windows C++ 排查死锁
开发出来应用程序突然间卡死不动,如果其中是因为死锁问题卡列该如何排查 下面是一个简单的死锁例子 #include <iostream> #include <thread> #include <mutex>std::mutex a, b;void function_a() {std::lock_guard<std::mutex> _x(a);std:…...
ctfshow
1,web517 通过输入两个单引号让查询语句正常,判断是什么注入,使用的是什么字符 然后我们通过order by 判断回显位,进行一个联合查询注入 获取数据库名 ctfshow的sqli-labs和本地搭建最大的不同,就是show的flag不在当前…...
【AI论文】什么、如何、何处以及效果如何?大语言模型测试时缩放技术调研
摘要:随着预训练时代对计算(数据和参数)缩放的热情逐渐减退,测试时缩放(Test-Time Scaling, TTS),也被称作“测试时计算”,已成为一个备受瞩目的研究焦点。近期研究表明,…...
大模型学习一:deepseek api 调用实战以及参数介绍
一、说明 DeepSeek(杭州深度求索人工智能基础技术研究有限公司)是一家专注于大语言模型(LLM)研发的中国创新型科技公司,成立于2023年7月17日,由幻方量化孵化。其核心产品包括开源推理模型DeepSeek-R1、多模…...
C++ 编程指南33 - 使用模板来表达适用于多种参数类型的算法
一:概述 在 C 中,模板(Templates)提供了一种强大的泛型编程方式,使代码可以适用于不同的数据类型,而无需重复编写类似的逻辑。模板的主要目标是: 泛化能力(Generality)&a…...
MYSQL实现获取某个经纬度区域内的数据
1.创建表 2.插入表数据 INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (资料名称1, 114.437625, 16.016914, ST_GeomFromText(POINT(114.437625 16.016914))); INSERT INTO tf_sys.tf_location(name, longitude, latitude, location) VALUES (…...
《Python实战进阶》No39:模型部署——TensorFlow Serving 与 ONNX
第39集:模型部署——TensorFlow Serving 与 ONNX 摘要 在机器学习项目中,训练好的模型需要被部署到生产环境中才能发挥实际价值。本集聚焦于如何将模型高效地部署到生产环境,涵盖TensorFlow Serving和ONNX两种主流工具的使用方法。我们将从理…...
嵌入式调试进阶:从手动到自动的HardFault破案指南
今天和大家聊聊嵌入式开发中让无数新手头疼,但又避不开的HardFault。 还记得我刚入行那会儿,信誓旦旦改了几行代码,信心爆棚地烧录进板子。结果呢?灯!没!亮!调试器显示程序卡在了HardFault_Han…...
YOLOv11区域检测
TrackZone 使用Ultralytics YOLO11 -Ultralytics YOLO 文档 如何通过Ultralytics YOLO11 在Python 中使用 TrackZone? 只需几行代码,您就可以在特定区域设置对象跟踪,从而轻松将其集成到您的项目中。 import cv2from ultralytics import s…...
手工win提权土豆家族一键梭哈
手工提权 就是在没有工具使用的时候进行提权(或者是win版本过新导致的exp作者没更新等) 优点就是 随选随用 缺点就是非常繁琐(建议是先土豆梭哈然后再手工提权) 先进行信息收集(这边靶机以例子) 这个…...
在Qt中直接在构建目录下直接运行.exe文件报错问题分析
在Qt中直接在构建目录下直接运行.exe文件报错问题分析 在学习Qt的过程中遇到过一个问题,直接在Qt构建目录下运行生成的.exe文件时会报错。这和MFC有一定的差别,如果MFC是可以直接运行的。 这是怎么回事呢? 在 Qt 中直接运行构建目录下的 .…...
头戴式面捕头盔:高精度捕捉真人面部表情,赋能元宇宙多场景应用
随着元宇宙虚拟人与现实场景的不断交融,如何赋予虚拟人更加自然,灵动的表情成为了业内人员共同讨论的话题,尤其是在虚拟人直播,影视动画制作方面。在虚拟人直播间,丰富的面部表情可以赋予虚拟人更加生动的情感表达&…...
LLM大模型教程——什么是AI大模型
引言 当GPT-4展现出惊人的上下文理解能力,当Stable Diffusion创造出媲美人类画师的图像作品,当AlphaFold2破解蛋白质折叠密码——这些里程碑事件标志着人工智能发展进入大模型主导的新纪元。本综述将深入解析这一技术革命的核心载体——AI大模型。 一、AI 大模型是什么 概…...
产品经理的大语言模型课 04 -模型应用的云、边、端模式对比
目录 算力部署方式的影响因素数据量计算难度前期投入数据隐私应用规模与泛化能力 云、边、端部署的特点和对比典型场景举例社区人脸门禁后厨老鼠识别 未来展望 算力部署方式的影响因素 最近和人工智能从业者进行了非常广泛的沟通,尝试对模型应用的云、边、端模式进…...
机器学习(八):K-Means聚类原理与实战
声明:未经允许禁止转载与抄袭。 前言 k k k均值( k k k-means)聚类算法是一种经典的无监督聚类算法,本文将深入解析其理论原理,并在真是数据集上进行算法实践,话不多说,请看下文。 算法原理 …...
基于yolo11的BGA图像目标检测
1.产生图像数据的分辨率 2.产生图像的大小 3.产生图像是黑白或是RGB彩色 灰度图像,达到识别要求,减少计算量 4.标注数据的精准程度 1.模型标注后,少量标注全部人工校验,大量数据抽检,部分人工检验 2.明确边界框贴合…...
分享一些新版GPT-4o使用方式!能多模态生图!
目前GPT-4o的整体测评,真的很惊艳。 不知道又有多少人因为OpenAI的这次更新而失业,当然只要AI用得好,会有更多人因之而受益!很多人表示不知道怎么用,对于门外汉来说,4o似乎有点高端。 今天就给大家介绍几…...
【stm32--HAL库DMA+USART+空闲中断不定长收发数据】
串口通信-Hal库实现不定长度收发,DMAUSART DMA串口STM32CUBEMX配置(工程创建)基础配置时钟配置工程配置 代码编写现象 DMA 在正式配置之前,我们先来一起简单了解一下DMA。DMA(Direct Memory Access,直接内…...
【算法中的数学】欧拉筛埃氏筛
筛质数 题目传送门 题目链接 一、题目描述 给定一个正整数 n,请你求出 1∼n 中质数的个数。 输入格式 共一行,包含整数 n。 输出格式 共一行,包含一个整数,表示 1∼n 中质数的个数。 数据范围 1 ≤ n ≤ 10⁶ 输入样例&am…...
【SPP】蓝牙串口配置中LM互操作性要求深度解析
在蓝牙协议栈中,链路管理器(Link Manager, LM)承担着链路建立、安全管理、功耗控制等核心功能。对于串行端口配置文件(SPP)而言,LM 的互操作性直接影响连接稳定性、数据安全性和设备功耗。本文基于蓝牙核心…...
Java迭代器【设计模式之迭代器模式】
目录 一.前言 二.正文 1.我写的类为什么不能使用增强for(迭代器遍历) 2.代码健全性——迭代器常见的两个Exception 1.NoSuchElementException 2.ConcurrentModificationException 三.后言 一.前言 本篇面向对象主要为和我一样的小白,主要是对迭代器模式的浅…...
