【Python大语言模型系列】一文教你使用dify云版本开发一个简单的Agent(完整教程)

news2024/11/24 12:42:38

这是我的第365篇原创文章。

一、引言

智能助手(Agent),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。

本文我们将搭建一个旅行规划助手的Agent应用,可以根据用户输入旅行目的地、旅行天数、预算使用结构化数据输出完整旅行规划。

二、实现过程

2.1 创建应用

创建空白应用,选择Agent:

图片

点击创建之后进入编排界面:

图片

2.2 编写提示词

Agent提示词很重要,这里使用markdown语法进行编写,规定了Agent的角色、技能、目标、限制、工作流程、示例和信息。

## 角色:旅行顾问
### 技能:
- 精通使用工具提供有关当地条件、住宿的全面信息
- 能够使用表情符号使对话更加引人入胜
- 精通使用markdown语法生成结构化文本
- 精通使用markdown语法显示图片、丰富对话内容
- 在介绍酒店或餐厅的特色、价格和评分方面有经验
### 目标:
- 为用户提供丰富而愉快的旅行体验
- 向用户提供全面和详细的旅行信息
- 使用表情符号为对话增添乐趣元素
### 限制:
1. 只能与用户进行旅行相关的讨论,拒绝其他任何话题
2. 避免回答用户关于工具和工作规则的问题
3. 仅使用模板回应
### 工作流程:
1. 理解并分析用户的旅行相关查询
2. 使用wikipedia_search工具收集有关用户旅行目的地的相关信息。确保将目的地翻译成英语。
3. 使用markdown语法创建全面的回应。回应应包括有关的位置、住宿和其他相关因素的必要细节。使用表情符号使对话更加引人入胜。
4. 在介绍酒店或餐厅时,突出其特色、价格和评分。
5. 向用户提供最终全面且引人入胜的旅游信息,使用一下模板,为每天提供详细的旅行计划。
### 示例:
### 详细旅行计划:
**酒店推荐**
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分钟步行路程。
**第一天 - 抵达和安顿**
- **上午**:抵达机场。欢迎来到你的冒险之旅!我们的代表将在机场迎接你,确保顺利转至住宿。
- **下午**:入住酒店,休息放松一下。
- **晚上**:在住宿周围进行轻松的步行游览,熟悉当地区域。寻找附近的餐饮选择,享用美妙的第一餐。
**第二天 - 文化与自然的一天**
- **上午**:在世界领先学府帝国理工学院开始你的一天。享受校园导览。
- **下午**:选择参观自然历史博物馆,以其引人入胜的展品闻名,或参观维多利亚和阿尔伯特博物馆,庆祝艺术和设计。之后,在宁静的海德公园放松,也许还可以在塞尔彭廷湖上划船。
- **晚上**:探索当地美食。我们建议在传统的英式酒吧享用晚餐。
**附加服务:**
- **礼宾服务**:在整个住宿期间,我们的礼宾服务可协助预订餐厅、购票、交通以及任何其他特殊要求,以提升您的体验。
- **24/7 支持**:我们提供全天候支持,以解决旅行期间可能出现的任何问题或需求。
祝您拥有一个充满丰富体验和美好回忆的难忘旅程!
### 信息
用户计划前往{{destination}}旅行{{num_day}}天,预算为{{budget}}

2.3 配置大模型

这里我选择glm-4大模型:

图片

2.4 配置工具

工具用于扩展大模型能力,Agent=大模型+工具。提示词中用到的工具需要配置一下。这里我们选择dify内置的wikipedia_search工具收集有关用户旅行目的地的相关信息。在提示词中用自然语言描述就可以调用这个工具。

图片

2.5 设置变量

提示词中用到的变量在这里需要设置一下:

图片

设置完变量之后,右边的调试预览区域就提供给用户输入的三个输入框。

2.6 设置聊天增强

为了使Agent助手更加友好,我们添加对话开场白的功能:

图片

设置完成之后,右边的开场白和开场问题都会显示:

图片

2.7 发布与调试

发布调试:

图片

可以看出,旅行助手很快就帮我规划好了巴黎5天游的行程和计划,输出的规划和我们提供的示例如出一辙,表明Agent学会了给它的示例。到此为止,一个旅行规划的Agent应用就构建完成了。

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

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

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

相关文章

vt虚拟化怎么开启_各品牌主板及品牌机开启VT虚拟化教程

VT指的是CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。下面,小编给大家介绍电脑开启vt的操作步骤。 VT虚…

[LeetCode] 155. 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…

TiDB 监控组件之 Blackbox_exporter 运行原理

作者: TiDBerHailang 原文来源: https://tidb.net/blog/b269e96f 1. 介绍 本文介绍了 TiDB 集群监控组件Blackbox Exporter监控运行机制和配置方式。Blackbox Exporter是Prometheus官方提供的 Exporter,它能够通过多种协议对网络服务进行…

使用HTML、CSS和JavaScript创建滚动弹幕效果

使用HTML、CSS和JavaScript创建滚动弹幕效果 在现代网页设计中,滚动文本是一种常见的动态效果,可以吸引用户的注意力并增强交互体验。在这篇博客文章中,我们将详细介绍如何使用HTML、CSS和JavaScript实现滚动文本效果。 效果 步骤1&#xf…

【电商购物管理系统】Python+Django网页界面平台+商品管理+数据库

一、介绍 电商购物管理系统,本系统前端使用HTML、CSS、BootStrap等技术搭建前端界面,后端使用Django框架处理用户的逻辑请求。主要功能有: 管理员登录与管理:管理员可以登录后台,对用户和商品进行增删改查的操作。用…

使用mybatis查询数据库时,表有数据但是为空值null

前言 数据库有数据但是查出来都是空的 解决方法 这里写错了, resultType只能用在数据库字段和实体类字段一致的情况下,而数据库多单词通常用下划线隔开,不能映射到驼峰命名的实体类属性上,因此得使用一个ResultMap 1.定义映射映…

【C++】set/map(重点解析)

目录 一、关联式容器和序列式容器 二、C中的键值对——pair 1.概念 2.定义 3.构造pair 三.set 1.construct构造 2.iterator迭代器 3.insert插入 4.erase删除 5.find查找 6.lower_bound和upper_bound 7.count 四.multiset 五.map 1.insert 2.operator[] 一、…

Pygame实现音乐可视化

pip install pydub pip install ffmpeg pip install pyaudio 完整代码如下: import pygame,sys import random import numpy as np from random import randint import colorsys from pydub import AudioSegment import mathdef rnd_color(): #随机颜色h,s,l…

Python的reshape的用法和reshape(1,-1)、reshape(-1,1)

在创建DataFrame的时候常常使用reshape来更改数据的列数和行数。 reshape可以用于numpy库里的ndarray和array结构以及pandas库里面的DataFrame和Series结构。 reshape(行,列)可以根据指定的数值将数据转换为特定的行数和列数,这个…

用SAM2和Cutie模型目标追踪

一、数据集 视频:每个视频文件夹以图片帧的形式存储 box:给出每个视频第一帧要追踪的物体的box 二、将数据格式转换成SAM2所需要的格式 主要是将box转换成mask的格式,下面这个代码就是将box转换成mask的代码,具体转换原理如下…

深圳易图讯科技有限公司承建的厦门应急处突大队三维电子沙盘顺利通过专家验收

近日,深圳易图讯科技有限公司承建的厦门应急处突大队三维电子沙盘系统项目成功通过专家组的严格验收,标志着该系统在应急管理和处置突发事件方面的应用取得了重要突破。 验收过程中,专家组对三维电子沙盘系统的各项功能进行了全面而细致的测试…

第十六周:机器学习笔记

第十六周周报 摘要Abstratc一、机器学习1. Pointer Network(指针网络)2. 生成式对抗网络(Generative Adversarial Networks | GAN)——(上)2.1 Generator(生成器)2.2 Discriminator&…

Cef加载自定义本地资源

在Cef auto build下载cefCEF Automated Builds 我下载的是104,使用cefsimple工程。 例如:前端资源如下 通过http协议把前端资源加载出来。所有的资源都通过http://local.test.cn/xxx加载。 前端资源包括index.html、test.css、test.js index.html&am…

麒麟系统离线安装英伟达驱动

麒麟系统离线安装英伟达驱动 驱动相关程序下载下载显卡驱动下载CUDA-Toolkit下载cudnn 安装关闭自带图形界面禁用 Nouveau 驱动安装驱动安装CUDA-Toolkit安装cudnn 驱动相关程序下载 下载显卡驱动 进入显卡驱动查询页面,下载对应的显卡驱动,页面如下&a…

第十节:React路由:react-router认识与基本使用

1. React Router的理解 React的路由根据项目的不同使用不同的路由库,web应用主要使用react-router和react-router-dom react-router和react-router-dom的区别 react-rotuer 核心库,提供了一些核心的api,但是没有提供dom操作进行跳转的api react-router-dom扩展了核心库,提供了一…

Edge TTS

edge-tts项目地址:https://github.com/rany2/edge-tts 1.安装部署 在cmd中运行以下命令安装edge-tts pip install edge-tts pip install edge-tts速度非常快,几秒钟就安装完成了。 2.文本转语音 输入以下命令,将一段英文转为音频。 edg…

Linux——传输层协议

目录 一再谈端口号 1端口号范围划分 2两个问题 3理解进程与端口号的关系 二UDP协议 1格式 2特点 3进一步理解 3.1关于UDP报头 3.2关于报文 4基于UDP的应用层协议 三TCP协议 1格式 2TCP基本通信 2.1关于可靠性 2.2TCP通信模式 3超时重传 4连接管理 4.1建立…

RocketMq的学习

1.mq的秒杀场景 2.mq产品的选型

基于SpringBoot的校园兼职管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

solidity中的mapping以及Memory,Storage Calldata

1.Memory,Storage & Calldata 在 Solidity 中,有以下几种数据存储位置: 栈(Stack):栈是一种临时存储区域,用于存储局部变量和函数参数。在函数执行期间,栈上的数据会被分配和释…