当前位置: 首页 > news >正文

基于扣子(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 与用户的互动更加有针对性和个性化,你可以通过以下方式来存储和管理外部知识。

知识库

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

相关文章:

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

文章目录 一,智能体体验二,动手打造一个自己的智能体1,主页点击创建机器人1.1 创建一个新的机器人1.2 修订Bot基础信息1.3 工具编排信息修订人设和回复逻辑、增补开场白等 2,使用插件优化机器人3,使用工作流优化机器人…...

算法-深度拷贝链表(138)

深度拷贝一个链表可以分以下几个步骤: 步骤 1:插入新节点 目标:在每个节点后面插入一个复制的节点。步骤: 遍历整个链表。对于每个节点 current,创建一个新节点 newNode,其值为 current.val。将 newNode …...

【Kubernetes】常见面试题汇总(十四)

目录 42.简述 Kubernetes 如何保证集群的安全性? 43.简述 Kubernetes 准入机制? 42.简述 Kubernetes 如何保证集群的安全性? Kubernetes 通过一系列机制来实现集群的安全控制,主要有如下不同的维度: (1&…...

灵当CRM系统index.php存在SQL注入漏洞

文章目录 免责申明漏洞描述搜索语法漏洞复现nuclei修复建议 免责申明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 灵当CRM系统是一款功能全面、易于使用的客户关系管理(C…...

详解QT元对象系统用法

文章目录 元枚举 QMetaEnum元方法 QMetaMethod元对象构建 QMetaObjectBuilder元属性 QMetaProperty定义元对象属性获取属性信息与信号和槽结合QML属性访问动态属性元类型 QMetaTypeQt的元对象系统是Qt框架中的一个核心特性,它为Qt应用程序提供了一种动态类型信息机制。这种机制…...

【Python】从基础到进阶(八):文件操作与上下文管理

🔥 个人主页:空白诗 文章目录 一、引言二、Python文件操作基础1. 打开文件2. 读取文件3. 写入文件4. 文件指针定位 三、上下文管理1. 使用with管理文件2. 自定义上下文管理器 四、文件操作的最佳实践五、案例:日志文件管理1. 需求分析2. 实现…...

c#:System.Text.Json 的使用四(如何忽略[JsonPropertyName])

环境: .net 6.0vs2022 系列篇: 《c#:System.Text.Json 的使用一》 《c#:System.Text.Json 的使用二》 《c#:System.Text.Json 的使用三(从Newtonsoft迁移)》 《c#:System.Text.Json…...

【CPU】CPU的物理核、逻辑核、超线程判断及L1、L2、L3缓存、CacheLine和CPU的TBL说明

CPU物理核及L1、L2、L3及缓存 CPU缓存 CPU 缓存是一种用于存储临时数据以提高计算机程序性能的内存层次结构。它通常分为三个层次:L1(一级)、L2(二级)和L3(三级)缓存。缓存大小是CPU的重…...

NET WPF使用组件库HandyControl

一、背景 WPF原生控件提供的API功能不够强大&#xff0c;设置一般的功能都需要进行很复杂的配置和实现。 1.1 原生按钮控件 例如&#xff0c;原生控件<Button/> 默认效果是这样的&#xff1a; MainWindow.xaml代码&#xff1a; <Window x:Class"wpf_demo.Mai…...

计算机毕业设计之:教学平台微信小程序(

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

VMware Fusion虚拟机Mac版 安装Win10系统教程

Mac分享吧 文章目录 Win10安装完成&#xff0c;软件打开效果一、VMware安装Windows10虚拟机1️⃣&#xff1a;准备镜像2️⃣&#xff1a;创建虚拟机3️⃣&#xff1a;虚拟机设置4️⃣&#xff1a;安装虚拟机&#xff08;步骤和Win11安装步骤类似&#xff0c;此处相同步骤处没换…...

头戴式蓝牙耳机性价比高的有哪些?四款高能性价比机型对比推荐

在当今科技日新月异的时代&#xff0c;头戴式蓝牙耳机已经成为了我们日常生活中不可或缺的一部分&#xff0c;无论是通勤路上、健身房内还是家中休闲时&#xff0c;一副优质的头戴式蓝牙耳机都能为我们带来沉浸式的听觉体验&#xff0c;那么头戴式蓝牙耳机性价比高的有哪些&…...

Linux:make,Makefile

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《Linux&#xff1a;make&#xff0c;Makefile》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&…...

基于代理的分布式身份管理方案

目的是使用分布式的联合计算分发去替换掉区块链中原有的类第三方可信中心的证书机制&#xff0c;更加去中心化。 GS-TBK Group Signatures with Time-bound Keys. CS-TBK 算法 Complete subtree With Time-bound Keys&#xff0c;该算法是用来辅助检测用户的签名是否有效&…...

VSCode开发ros程序无法智能提示的解决方法(一)

VSCode开发ros程序无法智能提示的解决方法&#xff08;一&#xff09; 问题解决 问题 在Ubuntu下使用vscode开发ros程序&#xff0c;无法进行智能提示。 解决 将 intelli Sense Engine 设置为 Tag Parser 即可。...

grep命令如何实现正则表达式搜索?

grep 命令支持使用正则表达式&#xff08;Regular Expression&#xff0c;简称 regex&#xff09;进行搜索 以下是一些使用正则表达式的基本示例&#xff1a; 搜索包含 “example” 的行&#xff1a; grep "example" file.txt搜索以 “abc” 开头的行&#xff1a; g…...

Vue报错 ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

报错 vue-project0.0.0 dev vite‘vite’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。解决 第1步. 控制台输入 npm install -g create-vite第2步. 控制台输入 npm install -g vite第3步. 运行就ok啦...

emqx代理订阅主题的方法

需求:需要代理订阅主题 mqtt/MaxVision/# 5.0以上的版本 界面操作添加就可以5.0以下版本 修改emqx.config 文件 首先在EMQX Dashboard(web端)中模块 emqx_mod_subscription 要启用修改配置 #1.切换目录 cd /home/emqx/etc#2.编辑配置文件 emqx.config vim emqx.config#3.修…...

页面关键路径渲染详解

关键路径渲染 浏览器不会等待全部资源都下载完后才进行渲染&#xff0c;而是采用渐进式的渲染方式&#xff0c;本文就介绍一下这种渐进式的渲染方式。 当浏览器获取到用于呈现网页的资源后&#xff0c;通常就会开始渲染网页。那么究竟是在什么时候就会开始渲染&#xff1f; …...

错题集锦之C语言

直接寻址和立即寻址 算法的又穷性是指算法程序的运行时间是有限的 未经赋值的全局变量值不确定 集成测试是为了发现概要设计的错误 自然连接要求两个关系中进行比较的是相同的属性&#xff0c;并且进行等值连接&#xff0c;在结果中还要把重复的属性列去掉 赋值运算符 赋值…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等&#xff0c;设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…...

【QT】qtdesigner中将控件提升为自定义控件后,css设置样式不生效(已解决,图文详情)

目录 0.背景 1.解决思路 2.详细代码 0.背景 实际项目中遇到的问题&#xff0c;描述如下&#xff1a; 我在qtdesigner用界面拖了一个QTableView控件&#xff0c;object name为【tableView_electrode】&#xff0c;然后【提升为】了自定义的类【Steer_Electrode_Table】&…...