AI Agent 实战:搭建个人在线旅游助手

AI Agent 实战:搭建个人在线旅游助手

本次实验中,我们将继续探索 Agent 的提示词,学习更加规范的提示词撰写方法。

本实验中你将掌握的知识点

  • 使用 Dify 构建 Agent 的方法
  • 结构化的提示词撰写技巧
  • 变量的使用方法

1. 准备

在新建 Agent 之前,请先确保以下步骤已经完成:

  • 注册和登录 Dify,如果你想要进行本地部署,可以参考 社区版 - Docker Compose 部署
  • 至少配置一个模型供应商(Dify 赠送 200 条 OpenAI 消息额度,但为了确保实验顺利建议自行配置 LLM 的 API Key)

2. 配置工具

Google

搭建在线旅游助手需要使用联网的搜索引擎作为参考资料来源,本文中将以 Google 作为示例。

当然,你也可以使用其他的搜索引擎,例如必应,甚至是由 AI 驱动的 Perplexity。

Dify 提供的 Google 工具基于 SerpAPI,因此需要提前进入 SerpAPI 的 API Key 管理页申请 API Key 并粘贴到 Dify - 工具 的对应位置。

具体操作步骤如下:

  1. 新增 SerpAPI 的 API Key:

进入SerpAPI - API Key,如果你尚未注册,会被跳转至进入注册页。

SerpAPI提供一个月100次的免费调用次数,这足够我们完成本次实验了。如果你需要更多的额度,可以增加余额,或者使用其他的开源方案。

点击复制

  1. 前往 Dify - 工具 - Google

点击 去授权 ,填入API Key并保存。

webscraper

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

Wikipedia

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

3. 构建 Agent

首先我们选择 创建空白应用 - Agent

添加工具:Googlewebscraperwikipedia并启用。

  1. 示例输出

示例输出不是必要的部分。示例输出的目的是为了给 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,也就是变量的名称,仅支持大小写英文、数字、下划线。字段名称是用户可以看到的提示内容。

添加变量后,用户可以按照应用开发者的意图向应用提供必要的背景信息,实现的效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

检索增强生成(RAG):强化 AI 智能体的知识 “武装”

技术点目录 第一章、智能体(Agent)入门第二章、基于字节Coze 构建智能体(Agent)第三章、基于其他平台构建智能体(Agent)第四章、国内外智能体(Agent)经典案例详解第五章、大语言模型应用开发框架LangChain入门第六章、基于LangChain的大模型API接入第七章…

vscode 打开工程 看不到文件目录

vscode 打开工程 看不到文件目录 View->Explorer 快捷键:CtrlShiftE

厘米级定位赋能智造升级:品铂科技UWB技术驱动工厂全流程自动化与效能跃升”

在智能制造中的核心价值体现在‌高精度定位、流程优化、安全管理‌等多个维度,具体应用如下: 一、‌核心技术与定位能力‌ ‌厘米级高精度定位‌ UWB技术通过‌纳秒级窄脉冲信号‌(带宽超500MHz)实现高时间分辨率,结合…

getID3获取本地或远程视频时长

音频文件也可使用,使用ffmeg安装太复杂了 附ffmpeg方式:centos下安装ffmpeg_yum安装ffmpeg-CSDN博客 使用composer先安装 composer require james-heinrich/getid3 获取本地视频 //获取本地视频$video_path $_SERVER[DOCUMENT_ROOT].$params[video];…

10、Linux C 网络编程(完整版)

1、网络发展历史和分层 1.1 Internet 的历史 起源: 1957 年:苏联发射第一颗人造卫星 "Sputnik"。 1958 年:美国总统艾森豪威尔成立 DARPA(国防部高级研究计划署)。 1968 年:DARPA 提出 "…

前端:开源软件镜像站 / 清华大学开源软件镜像站 / 阿里云 / 网易 / 搜狐

一、理解开源软件镜像站 开源软件镜像是指开源软件在远程服务器上的备份副本,允许用户通过互联网快速下载和安装所需的软件。在国内,有多个知名的开源软件镜像站,为开发者提供稳定、快速的开源软件下载服务。 二、常见开源软件镜像站 序号…

Oracle 数据库中优化 INSERT INTO 操作的性能

在 Oracle 数据库中优化 INSERT INTO 操作的性能,尤其是在处理大批量数据时,可以通过以下方法显著提升效率。 使用直接路径插入(Direct-Path Insert) 通过 APPEND 提示绕过缓冲区缓存,直接写入数据文件,减…

嵌入式硬件篇---嘉立创PCB绘制

文章目录 前言一、PCB绘制简介1.1绘制步骤1.1.1前期准备1.1.2原理图设计1.1.3原理图转PCB1.1.4PCB布局1.1.5布线1.1.6布线优化和丝印1.1.7制版 1.2原理1.2.1电气连接原理1.2.2信号传输原理1.2.3电源和接地原理 1.3注意事项1.3.1元件封装1.3.2布局规则1.3.3过孔设计1.3.4DRC检查…

ideal自动生成类图的方法

在 IntelliJ IDEA 中,“**在项目资源管理器中选择以下类**” 是指通过 **项目资源管理器(Project Tool Window)** 找到并选中你需要生成类图的类文件(如 .java 文件),然后通过右键菜单或快捷键操作生成类图…

【零基础入门unity游戏开发——2D篇】2D物理关节 —— Joint2D相关组件

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…

在Vue 3 + TypeScript + Vite 项目中安装和使用 SCSS

在Vue 3 TypeScript Vite 项目中安装和使用 SCSS 1、安装 SCSS 的相关依赖 npm install sass --save-dev2、配置 Vite 对于 Vue 3,Vite 已经内置了对 SCSS 的支持,通常不需要额外的配置。但是,如果需要自定义配置,可以在路径…

【渗透测试】Vulnhub靶机-FSoft Challenges VM: 1-详细通关教程

下载地址:https://www.vulnhub.com/entry/fsoft-challenges-vm-1,402/ 目录 前言 信息收集 目录扫描 wpscan扫描 修改密码 反弹shell 提权 思路总结 前言 开始前注意靶机简介,当第一次开机时会报apache错误,所以要等一分钟后重启才…

Redis 6.2.6 生产环境单机配置详解redis.conf

文章目录 Redis 生产环境配置详解配置文件示例基础网络与进程管理RDB 持久化配置复制(主从同步)设置内存管理AOF 持久化性能优化设置限制与监控其他参数完整配置总结 Redis 生产环境配置详解 在实际生产环境中,为了保障 Redis 的稳定性和高性…

SpringBoot实战:Excel文件上传、数据验证与存储全流程解析

一、需求场景与技术选型 在企业管理、数据中台等系统中,Excel文件处理是常见需求。本文将基于SpringBoot实现以下核心功能: 支持.xls/.xlsx文件上传数据完整性验证(非空、格式等)业务数据验证(关联数据库校验&#x…

使用Java爬虫按关键字搜索淘宝商品?

在电商领域,通过关键字搜索商品是获取商品信息的常见需求。Java爬虫技术可以帮助我们自动化地获取这些信息,提高工作效率。本文将详细介绍如何使用Java爬虫按关键字搜索淘宝商品,并提供完整的代码示例。 一、准备工作 1. 注册淘宝开放平台账…

【Git】5 个分区的切换方式及示例

目录 1. **工作区(Working Directory)**2. **缓存区(Stage/Index)**3. **本地仓库(Local Repository)**4. **远程仓库(Remote Repository)**5. **贮藏区(Stash&#xff0…

【计算机视觉】YOLO语义分割

一、语义分割简介 1. 定义 语义分割(Semantic Segmentation)是计算机视觉中的一项任务,其目标是对图像中的每一个像素赋予一个类别标签。与目标检测只给出目标的边界框不同,语义分割能够在像素级别上区分不同类别,从…

MATLAB之数据分析图系列:从二维到三维(直接套用)

MATLAB以其强大的矩阵运算和可视化功能,成为科研、工程领域的标配工具。本文提供从基础二维图形到复杂三维模型的即用代码块,涵盖数据标注、多图排版、动态演示等核心技巧 所有代码均经过MATLAB 2023a实测,替换数据即可生成专业级图表。” …

HTTP响应数据包全面解析:结构、原理与最佳实践

目录 HTTP响应概述 HTTP响应数据包结构 2.1 状态行 2.2 响应头 2.3 空行 2.4 响应体 HTTP状态码详解 3.1 1xx信息响应 3.2 2xx成功响应 3.3 3xx重定向 3.4 4xx客户端错误 3.5 5xx服务器错误 常见HTTP响应头字段 响应体内容类型 缓存控制机制 实际HTTP响应示例分…

H.264编码解析与C++实现详解

一、H.264编码核心概念 1.1 分层编码结构 H.264采用分层设计,包含视频编码层(VCL)和网络抽象层(NAL)。VCL处理核心编码任务,NAL负责封装网络传输数据。 1.2 NALU单元结构 // NAL单元头部结构示例 struc…