基于扣子(Coze)打造第一个智能体——个性化对话机器人

文章目录

  • 一,智能体体验
  • 二,动手打造一个自己的智能体
    • 1,主页点击创建机器人
      • 1.1 创建一个新的机器人
      • 1.2 修订Bot基础信息
      • 1.3 工具编排信息修订人设和回复逻辑、增补开场白等
    • 2,使用插件优化机器人
    • 3,使用工作流优化机器人输出
      • 3.1 旅游机器人的业务流程
      • 3.2 工作流的实现
        • ① 新建工作流
        • ② 初识工作流
        • ③编辑开始结点
        • ④增加大模型节点-处理用户输入
        • ⑤编辑大模型节点
          • 选择大模型
          • 选择输入
          • 给大模型设置提示词
          • 给大模型设置输出
        • ⑥增加必应搜索结点
        • ⑦在搜索节点后增加大模型节点-输出小红书攻略
        • ⑧增加酒店搜索插件节点
        • ⑨增加大模型节点处理酒店搜索结果-输出酒店攻略
        • ⑩增加插件-天气查询节点
        • ⑪增加大模型节点处理天气结果-输出天气结果
        • ⑫增加插件-航班查询节点-出发机票
        • ⑬ 增加大模型节点处理出发机票搜索结果-输出去程机票
        • ⑭增加插件-航班查询节点-返程机票
        • ⑮ 增加大模型节点处理返程机票搜索结果-输出返程机票
        • ⑯ 增加5个消息结点用以输出前面5个大模型的结果
      • 3.3 工作流整体概览
  • 附录:AI Agent 常用的一些共同概念
    • 提示词(人设与回复逻辑功能)
    • 插件
    • 工作流
    • 记忆库
    • 知识库

AI时代,确实能够大幅提高很多工作的效率,这篇文章就演示制作一个旅游攻略小红书笔记制作工具。

这个工具如何要通过代码编写,至少需要一个星期的时间,但是通过智能体半天的时间就可以搞定。

一,智能体体验

我们参考扣子Bots商店里面的这两个智能体,亲自动手打造一个智能体。

在这里插入图片描述

智能体1:来一场说走就走的旅行
智能体2:来一躺说走就走的旅行

本质上,它们都是对话机器人。
在这里插入图片描述

二,动手打造一个自己的智能体

1,主页点击创建机器人

1.1 创建一个新的机器人

在这里插入图片描述

1.2 修订Bot基础信息

在这里插入图片描述

1.3 工具编排信息修订人设和回复逻辑、增补开场白等

点开机器人后,我们发现,扣子在创建这个机器人的过程中,根据机器人的名称已经生成了提示词,主要是机器人的人设和技能。

所以,这一步,其实我们无需做什么。

在这里插入图片描述

一个具备基本沟通能力的机器人就已经创建完成,我们可以测试一下。

在这里插入图片描述
当然,此时的机器人功能还比较弱。

2,使用插件优化机器人

上述第一步结束,我们可以发现,结果并不理想。

因此我们下一步需要调整下大模型,增补一下人设和逻辑设定。

1)首先根据需求调整大模型的参数

在这里插入图片描述

  • 要了解相关的旅游目的,至少需要有多轮的对答,因此我们修改上下文轮数为15
  • 要求输出的内容会比较多,改正输出的长度为 2048 token
  • 大模型,保留使用豆包·function call 模型,后续调试若有问题,可以再修改

注意 : 修改 token 和轮数,会导致 token 的急剧增加,需要依据实际需要调整

2)调整提示词,优化人设和技能

# 角色
你是超厉害的小红书旅游博主,擅长给出高性价比旅行计划和超实用建议分享超赞旅游经验和攻略,推荐有趣目的地,给出实用旅行建议。

## 技能
### 技能 1: 了解目的地特色
1. 深入挖掘不同旅游地的独特之处,为用户提供深度体验推荐
2. 使用工具搜索目的地信息,了解其热门最点和小众宝藏地。


### 技能 2: 提供个性化计划
1. 根据用户需求,制定个性化旅行计划,包括行程安排和费用预算。
2. 考虑用户旅行时间、目的地、预算和兴趣爱好,确保计划的可行性。

### 技能 3: 分享前沿建议
1. 关注旅游行业最新趋势,提供前沿旅游建议。
2. 结合爆款关键词,如“宝藏目的地”“绝绝子是点”等,吸引用户关注。


## 限制
- 只聊旅游相关话题,保证专业性和实用性。
- 遵循小红书风格,用口语化生动表达。
- 内容按格式组织,不偏离要求。
- 考虑用户需求制定计划和建议,充分考虑用户的旅行时间、出发地、目的地、预算、天气等因素。
- 文案中融入一些小红书的关键词,可从列表中选出:我宣布、我不允许、请大数据把我推荐给、真的好用到哭、真22的可以改变阶级、真的不输、永远可以相信、吹、钱必看、狠狠搞钱、一招拯救、正确姿势、正确打开方式、摸鱼誓停、停止摆烂、救命!、啊啊啊啊啊啊啊!、以前的...vs现在的...再数一遍、再也不怕、教科书股、好用哭了、小白必看、宝藏、绝绝子、神器、都给我冲、划重点、打开了新世界的大门、YD5、秘方、压箱底、建议收藏、上天在提醒你、挑战全网、手把手、揭秘、普通女生、沉浸式、有手就行、打工人、吐血整理、家人们、隐藏、高级感、治愈、破防了、万万没想到、爆款、被夸爆

修改之后,再次测试。

在这里插入图片描述
这个结果就比第一次好多了。

3)增加网络搜索插件

但还不够好,我们可以尝试增加一些网络搜索插件。

在这里插入图片描述

在添加插件界面,搜索需要的插件,然后点击添加即可。

在这里插入图片描述

最终我们添加的插件如下。
在这里插入图片描述

添加完成后,再次测试。

在这里插入图片描述
我们发现这次对话,机器人使用必应搜索,给出了参考文章,结果更加详细。

3,使用工作流优化机器人输出

3.1 旅游机器人的业务流程

提到工作流,不要感觉有什么高大上的,工作流本质就是我们完成一件事情的流程。

比方说,我们这个对话机器人“说走就走的旅行”,它的工作就是根据用户的要求给出旅游攻略,其工作流程如下:

  • 理解用户提出的要求,从用户的需求描述中提取出发地与目的地,以及用户的其他要求,比如酒店预算
  • 根据用户的要求调用搜索引擎,找到最热门的攻略作为参考,这就要用到我们配置的必应搜索插件
  • 调用携程插件搜索酒店信息
  • 调用携程插件查询出行方式并给出推荐
  • 调用必应插件搜索目的地推荐景点
  • 输出旅行计划、酒店推荐、出行推荐、景点推荐

画出流程图如下:
在这里插入图片描述

3.2 工作流的实现

① 新建工作流

在这里插入图片描述

点击添加工作流进入工作流编辑界面。

在这里插入图片描述
在编辑器左侧是各种不同的工作流结点,我们常用的结点:

  • 大模型,这个是必须的
  • 文本处理
  • 消息,消息就是最后的输出,也是必须,不然就相当于这个机器人是个哑巴,能听懂,也能干活,就是没有结果给你
② 初识工作流

每次创建新的工作流,进入编辑界面后,默认有两个工作流结点,一个开始一个结束。

在这里插入图片描述

③编辑开始结点

在这里插入图片描述

开始结点是必须的,这个界面就对应机器人对话界面,用来接收用户的输入。

注意这个节点有一个输入模块,代表传输到这个节点的信息,每个节点都必须有输入。

下面是存储输入信息的变量名称,如果有一点编程知识,就比较好理解。

变量名是为了方便在后面的结点中引用当前结点的信息。

比如用户在对话机器人中输入“我要从佛山去北京3天旅游,酒店预算不超过500元”,这句话就会被存入到变量"BOT_USER_INPUT"或者“query”中,在后面的结点中就可以通过这两个名称来获取用户的输入了。

这里说是用户的输入,主要是这个节点是开始结点,接受的就是用户的输入。

后续节点的输入一般是其前面节点的输出。

注意,"BOT_USER_INPUT”是默认的变量,不能修改,“query”是我们新增的变量,为了演示用,不加也可以,这两个变量存储的都是用户的输入。

④增加大模型节点-处理用户输入

接收到用户输入后,就要将输入交给大模型进行文本处理,所以开始结点后需要一个大模型结点。

在这里插入图片描述

在左侧节点类型列表中选择大模型,点击+号或者拖拽到编辑区都可以。

在这里插入图片描述
节点之间需要用连线表示先后关系,把鼠标放在图中小蓝点上,按下鼠标右键拖出一条线,指向下一个节点的边框的小蓝点,就有一条线把这两个节点连接在一起,表示前后顺序关系。

注意,上一步不可缺少,只有连上之后,后节点才能获取前节点的信息。

⑤编辑大模型节点
选择大模型

扣子提供了很多大模型可供选择,我们选择字节的豆包大模型。

在这里插入图片描述

选择输入

大模型的输入就是开始结点的输出,点击右侧输入框就会打开一个下拉列表,选择开始结点,开始结点提供两个输出,就是我们前面提到的变量,这两个随便选一个。

在这里插入图片描述

给大模型设置提示词

大模型必须要配合提示词才能工作,且提示词的好坏影响最终的结果。

注意下面的提升词中“{{input}}”,表示的是用户输入的文本内容。

sourceCity是指从用户输入的文本中匹配到旅游的起点,sourceCity也是变量名,会作为大模型节点的输出,在后续的节点中使用。

其他依次类推。

# 角色
你是一个文本分析器,能够准确地从给定文本中提取信息,并按照特定格式输出为 JSON 数据。

给定文本

{{input}}


## 技能
### 技能 1:提取信息
1. 从输入的文本中提取出发地城市名称、目的地城市名称、日期和返程日期等信息。
2. 如果无法确定某个信息,可以询问用户以获取更多上下文。

### 技能 2:转换信息
1. 将提取到的城市名称转换为拼音写法,如“佛山”转换为“foshan”。
2. 将提取到的日期描述转换为实际的具体日期,格式为 YYYY-MM-DD。
3. 根据提取到的交通工具信息,若没有交通信息,则默认选为“飞机”。
4. 若没有固定的出发地,则默认从"北京"出发
5. 若没有固定的出发日期,则默认从“明天”出发

### 技能 3:输出 JSON
1. 按照指定的 JSON 格式输出结果,包括 sourceCity(出发地城市拼音)、sourceCityZh(出发地城市名称)、destinationCity(目的地城市拼音)、destinationCityZh(目的地城市名称)、departureDate(出发日期)、returnDate(返程日期)和 transportation(交通工具)。

## 限制
- 只处理与提取和转换文本信息相关的任务,拒绝回答与该任务无关的问题。
- 输出的 JSON 数据必须严格按照给定的格式,不能有任何偏差。
- 如果输入的文本中缺少关键信息,应尽可能询问用户以获取更多上下文,而不是随意猜测或假设。
给大模型设置输出

大模型从用户输入的信息中匹配到关键信息,并提取保存,以便下游节点获取使用。

比如规划路线的节点就需要使用出发地城市和目的地城市。
在这里插入图片描述

⑥增加必应搜索结点

接下来要根据前面的大模型结点提取到的关键信息搜索小红书,获取优质笔记,并参考笔记生成新的推荐。

所以需要一个搜索结点。

在这里插入图片描述
注意,要连接前面的大模型结点和搜索结点,连线由大模型指向搜索结点。

在这里插入图片描述

搜索节点的关键词就是用户的输入,所以这个节点的输入变量query选择应用开始节点的变量query

⑦在搜索节点后增加大模型节点-输出小红书攻略

必应搜索到结果后,会将交给大模型,以便大模型进行处理 ,输出规划。

分别设置大模型、选择输入、给出提示词,后续不再详述。

在这里插入图片描述
为了后续方便,将这个大模型命名为:攻略大模型
在这里插入图片描述

提示词参考:

你是一名资深的小红书旅游博主,擅长对旅行计划进行管理和输出。

针对查询到的旅游攻略进行整理,并以小红书爆款旅行文案的方式输出。

获取到的旅游攻略参考如下 


{{input}}

⑧增加酒店搜索插件节点

在这里插入图片描述
有两点需要注意:

  • ①这个结点是搜索目的酒店,所以输入是大模型提取出来的目的地城市。
  • ②连线是由开始节点后的大模型指向酒店搜索节点

在这里插入图片描述

⑨增加大模型节点处理酒店搜索结果-输出酒店攻略

加入一个大模型节点,注意以下两点:

  • 由酒店搜索节点指向大模型
  • 做如下配置
    在这里插入图片描述

这个大模型命名为:酒店大模型

在这里插入图片描述

提示词:

## 回答

请回答以下内容:
{{input}}
⑩增加插件-天气查询节点

选择墨迹天气插件作为天气查询节点,做如下配置:

  • start_time: 大模型输出字段 departureDate
  • city: 大模型输出字段 destinationCityZh
  • end_time: 大模型输出字段 returnDate

在这里插入图片描述

⑪增加大模型节点处理天气结果-输出天气结果

在天气查询节点后增加大模型节点处理天气查询结果。

在这里插入图片描述

这个大模型命名为:天气大模型

在这里插入图片描述

提示词:

## 分析
分析以下使用 ```括起来的文本:

{{input}}

⑫增加插件-航班查询节点-出发机票

这个节点是第一个处理用户输入的大模型节点的后续节点。

增加一个查询出发航班的节点。

  • arr_city,目的城市,destinationCityZh
  • dep_city,出发城市,sourceCityZh
  • flight_date,出发日期,departureDate
    在这里插入图片描述
⑬ 增加大模型节点处理出发机票搜索结果-输出去程机票

在这里插入图片描述
这个大模型命名为:去程机票大模型

在这里插入图片描述

提示词:

## 分析
分析以下使用 ```括起来的文本:

{{input}}


## 返回
解析文本内容,将相关的旅游出行的结果以表格方式呈现给用户,并提出相应的体贴建议等
⑭增加插件-航班查询节点-返程机票

处理出发机票后,接着查询返程机票,注意节点依赖关系。

增加一个查询出发航班的节点。

  • arr_city,目的城市,sourceCityZh
  • dep_city,出发城市,destinationCityZh
  • flight_date,出发日期,returnDate
    在这里插入图片描述
⑮ 增加大模型节点处理返程机票搜索结果-输出返程机票

在这里插入图片描述
这个大模型命名为:返程机票大模型

在这里插入图片描述

提示词:

## 分析
分析以下使用 ```括起来的文本:

{{input}}


## 返回
解析文本内容,将相关的旅游出行的结果以表格方式呈现给用户,并提出相应的体贴建议等
⑯ 增加5个消息结点用以输出前面5个大模型的结果

在这里插入图片描述
这五个消息节点分别用来输出5个大模型的结果:

  • 总攻略的结果
  • 天气结果
  • 酒店结果
  • 去程航班结果
  • 返程航班结果

在这里插入图片描述

在这里插入图片描述

3.3 工作流整体概览

在这里插入图片描述

附录:AI Agent 常用的一些共同概念

提示词(人设与回复逻辑功能)

Bot 的提示词是一种自然语言指令,告诉大语言模型(LLM)执行什么任务。

搭建 Bot 的第一步就编写提示词,为Bot设定身份和目标,Bot 会根据大语言模型对人物设定和回复透辑的理解,来响应用户问题。

因此提示编写的越清淅明确,Bot 的回复也会越符合预期。

插件

通过 API 连接集成各种平台和服务,扩展 Bot 能力。

扣子平台内置丰富的插件供你直接调用,你也可以创建自定义插件,将你所需要的 API 集成在扣子内作为插件来使用。

工作流

一种用于规划和实现复杂功能透辑的工具,你可以通过拖捷不同的任务节点来设计复杂的多步骤任务,提升 Bot 处理复杂任务的效率。

记忆库

扣子的记忆库功能可以保留和理解对话细节,并支持添加外部知识库给模型补充知识,使 Bot 与用户的互动更加有针对性和个性化,你可以通过以下方式来存储和管理外部知识。

知识库

支持上传本地或线上内容,然后将这些内容分制成知识分片,通过语义匹配给模型补充知识

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot实现SpringMvc上传下载功能实现

目录 SpringMvc上传下载功能实现 1.创建新的项目 1)项目信息填写 2)选择所用的包 3)创建controller包 4)创建DownLoadController类 5)创建UpLoadController类 6)创建index.html 7)创建upload.h…

dubbo三

dubbo dubbo架构各层说明 URL举例解析 消费者引用服务过程 项目初始化

nginx服务介绍

nginx 安装使用配置静态web服务器 Nginx是一个高性能的Web服务器和反向代理服务器,它最初是为了处理大量并发连接而设计的。Nginx还可以用作负载均衡器、邮件代理服务器和HTTP缓存。它以其轻量级、稳定性和高吞吐量而闻名,广泛用于大型网站和应用中 Ngin…

SpringCloud Feign 以及 一个标准的微服务的制作

一个标准的微服务制作 以一个咖啡小程序项目的订单模块为例,这个模块必将包括: 各种实体类(pojo,dto,vo....) 控制器 controller 服务类service ...... 其中控制器中有的接口需要提供给其他微服务,订单模块也需要…

55.【C语言】字符函数和字符串函数(strstr函数)

11.strstr函数 *简单使用 strstr: string string cplusplus的介绍 点我跳转 翻译: 函数 strstr const char * strstr ( const char * str1, const char * str2 ); 或另一个版本char * strstr ( char * str1, const char * str2 ); 寻找子字符串 返回指向第一次出现在字…

软件测试 | APP测试 —— Appium 的环境搭建及工具安装教程

大家应该都有同一种感觉,学习appium最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于Windows系统下的Android手机端的安装流程。就像我们在用Selenium进行web自动化测试的时候一样,我…

计算机的错误计算(九十六)

摘要 探讨 的计算精度问题。 计算机的错误计算(五十五)与(七十八)分别列出了 IEEE 754-2019 中的一些函数与运算。下面再截图给出其另外3个运算。 例1. 已知 x-0.9999999999966 . 计算 不妨在Python下计算,则有&am…

phpstudy 建站使用 php8版本打开 phpMyAdmin后台出现网页提示致命错误:(phpMyAdmin这是版本问题导致的)

报错提示: 解决方法:官网下载phpmyadmin 5.2.1版本。 下载地址:phpMyAdmin 将网站根目录phpMyAdmin4.8.5里面的文件换成 官网下载的5.2.1版本即可。 重启网站,打开phpMyAdmin后台即可(若打不开更改 mysql密码即可&am…

【有啥问啥】弱监督学习新突破:格灵深瞳多标签聚类辨别(Multi-Label Clustering and Discrimination, MLCD)方法

弱监督学习新突破:格灵深瞳多标签聚类辨别(Multi-Label Clustering and Discrimination, MLCD)方法 引言 在视觉大模型领域,如何有效利用海量无标签图像数据是一个亟待解决的问题。传统的深度学习模型依赖大量人工标注数据&…

rabbitmq容器化部署

需求 容器化部署rabbitmq服务 部署服务 找到如下官网信息版本 官网版本发布信息 这里看到最新版本是3.13版本,这里在3.13中找一个版本下载容器镜像即可。 找到dockrhub.com中 找到3.13.2版本镜像。 容器服务安装此处省略 现在下载容器镜像需要配置容器代理 ~#…

树莓派提示:error: externally-managed-environment 树莓派安装虚拟环境,树莓派flask报错

错误信息 raspberryraspberrypi:~ $ pip install flask error: externally-managed-environment脳 This environment is externally managed 鈺扳攢> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to i…

进程间关系与进程守护

一、进程组 1、理解 每一个进程除了有一个进程 ID(PID)之外 还属于一个进程组, 进程组是一个或者多个进程的集合, 一个进程组可以包含多个进程。 每一个进程组也有一个唯一的进程组 ID(PGID), 并且这个 PGID 类似于进程 ID, 同样…

微信电脑版聊天图片DAT格式文件转为普通JPG图片

1-7 本文章主要教你如何恢复微信聊天中的聊天图片,主要应用场景是,当你的微信被封号了,或者无法登录了,会导致微信聊天中的聊天图片没办法再打开,如果是重要的图片,那就有损失了,所以有了本文的…

android 删除系统原有的debug.keystore,系统运行的时候,重新生成新的debug.keystore,来完成App的运行。

1、先上一个图:这个是keystore无效的原因 之前在安装这个旧版本android studio的时候呢,安装过一版最新的android studio,然后通过模拟器跑过测试的demo。 2、运行旧的项目到模拟器的时候,就报错了: Execution failed…

Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约

Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约 文章目录 Fisco Bcos 2.11.0配置console控制台2.10.0及部署调用智能合约前言版本适配一、启动FIsco Bcos区块链网络二、获取控制台文件三、配置控制台3.1 执行download_console.sh脚本3.2 拷贝控制台配置文件3.3 修…

react crash course 2024 (1)理论概念

state的作用 react hooks 而无需写一个class jsx 样式用 spa

WebGL系列教程六(纹理映射与立方体贴图)

目录 1 前言2 思考题3 纹理映射介绍4 怎么映射?5 开始绘制5.1 声明顶点着色器和片元着色器5.2 修改顶点的颜色为纹理坐标5.3 指定顶点位置和纹理坐标的值5.4 获取图片成功后进行绘制5.5 效果5.6 完整代码 6 总结 1 前言 上一讲我们讲了如何使用索引绘制彩色立方体&a…

TDengine 首席架构师肖波演讲整理:探索新型电力系统的五大关键场景与挑战

在 7 月 26 日的 TDengine 用户大会上,涛思数据(TDengine)首席架构师肖波进行了题为《TDengine 助力新型电力系统高质量发展》的主题演讲。他不仅分享了 TDengine 在新型电力系统中的应用案例,还深入探讨了如何利用 TDengine 的高…

构建响应式API:FastAPI Webhooks如何改变你的应用程序

FastAPI,作为一个现代、快速(高性能)的Web框架,为Python开发者提供了构建API的卓越工具。特别是,它的app.webhooks.post装饰器为处理实时Webhooks提供了一种简洁而强大的方法。在本文中,我们将探讨如何使用…

后端开发刷题 | 打家劫舍

描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家;如果偷了第二家&#xff0…