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

教授LLM思考和行动:ReAct提示词工程

ReAct:论文主页

原文链接:Teaching LLMs to Think and Act: ReAct Prompt Engineering

在人类从事一项需要多个步骤的任务时,而步骤和步骤之间,或者说动作和动作之间,往往会有一个推理过程。让LLM把内心独白说出来,然后再根据独白做相应的动作,来提高LLM答案的准确性。---ReAct的核心思想

普林斯顿大学的教授和谷歌的研究人员最近发表了一篇论文,描述了一种新颖的提示工程方法,该方法使大型语言模型(例如 ChatGPT)能够在模拟环境中智能地推理和行动。 这种 ReAct 方法模仿了人类在现实世界中的运作方式,即我们通过口头推理并采取行动来获取信息。 人们发现,与各个领域的其他提示工程(和模仿学习)方法相比,ReAct 表现良好。 这标志着朝着通用人工智能(AGI)和具体语言模型(像人类一样思考的机器人)迈出了重要一步。

1、背景

在本节中,我将讨论大型语言模型、提示工程和思维链推理。

1.1 大型语言模型

大型语言模型 (LLM) 是一种机器学习 Transformer 模型,已在巨大的语料库或文本数据集(例如互联网上的大多数网页)上进行训练。 在训练过程中,需要大量时间(和/或 GPU)、能源和水(用于冷却),采用梯度下降来优化模型参数,使其能够很好地预测训练数据。

本质上,LLM学习在给定一系列先前单词的情况下预测最可能的下一个单词。 这可用于执行推理(查找模型生成某些文本的可能性)或文本生成,ChatGPT 等LLM用它来与人交谈。 一旦 LLM 完成训练,它就会被冻结,这意味着它的参数被保存,并且不会向其训练数据添加输入或重新训练 - 这样做是不可行的,正如我们从 Microsoft 的 Tay 聊天机器人成为纳粹分子中了解到的那样 ,无论如何,最好不要向用户学习。

值得注意的是,LLM仍然从他们的训练数据中学习到偏见,而 ChatGPT 背后的 OpenAI 必须添加保护措施——使用来自人类反馈的强化学习 (RLHF)——试图防止模型生成有问题的内容。 此外,由于LLM默认情况下只是根据他们所看到的内容生成最有可能的下一个单词,而不进行任何类型的事实检查或推理,因此他们很容易产生幻觉,或编造事实和推理错误(例如在做时) 简单的数学)。

自从 ChatGPT 的公开发布风靡全球以来,LLM 就一直风靡一时。 这些模型的新兴智能及其在我们生活的许多方面的应用使它们成为一种非常受欢迎的工具,每个公司都想从中分一杯羹。 除了聊天机器人、编码和写作助手之外,LLM还被用来创建与模拟环境(包括互联网)交互的代理。 ReAct 就是一个如何将LLM转变为此类代理的示例。

1.2 提示工程

如果你尝试过 ChatGPT,就会知道有时它会拒绝回答问题或回答不好,但如果你重新表述问题,可能会得到更好的结果。 这是提示工程的艺术——通过修改你的输入,让提示工程按照你想要的方式做出反应。

我们的想法是,LLM接受了如此多的人类生成数据的训练,以至于他们几乎可以被视为人类——而不是在特定问题领域训练新模型,而是可以尝试从现有的冻结模型中得出正确的响应。 LLM 通过提出一些事实来“唤起它的记忆”或告诉它一个新领域。 这称为上下文学习(in-context learning),主要有两种类型:零样本学习和少样本学习。 零样本学习为LLM提供了一个提示,其中可以在问题/命令之前包含一些背景信息,以帮助LLM找到良好的答案。 少样本学习为LLM提供了一些提示示例和理想的响应,然后提出了一个新的提示,LLM将以示例的形式做出响应。

提示工程是自然语言处理 (NLP) 的未来。 该领域正在从定制模型转向定制提示,因为LLM比任何人无需花费大量时间和精力就可以自己制作的东西要好得多。 当LLM与正确的提示工程技术相结合时,它通常可以做专业模型可以做的任何事情。

1.3 思维链推理

思想链推理是一种流行的提示工程技术,旨在解决推理错误。 它涉及向LLM提供一个或多个示例(少量学习),说明如何通过口头推理解决问题,然后为其提供一个不同的问题以这种方式解决。 这可以帮助解决推理错误,但它仍然会产生幻觉,而幻觉的“事实”可以通过推理传播,导致模型无论如何都得出错误的结论。

在下面的 ReAct 论文中的图片中,针对需要多个推理步骤才能弄清楚的问题,将标准提示(仅提出问题)与思维链 (CoT) 提示(尽管未显示附加输入)进行了比较 。

标准提示的LLM猜测是 iPod,这是不正确的。 有CoT提示的LLM有更令人信服的回应,但它仍然是错误的。 尽管推理无懈可击,LLM却幻觉 Apple Remote 最初是为与 Apple TV 配合使用而设计的(它实际上是为 Front Row 项目设计的),这导致其得出错误的结论。

Yao et al. (2023)

由于幻觉的问题,CoT 推理是不可靠的。 如果LLM要成为一个有用的工具,他们就不能左右编造事实,因为那样我们就永远不能相信他们,最好自己做研究。 ReAct 旨在通过允许LLM采取搜索维基百科等行动来解决这个问题,以便从中找到事实和理由。

2、方法

与思维链推理一样,ReAct 是一种提示工程方法,它使用小样本学习来教导模型如何解决问题。 CoT 应该模仿人类思考问题的方式,ReAct 也包含这种推理元素,但它更进一步,允许代理文本操作,使其也与其环境进行交互。

人类使用言语推理(说话或思考)来帮助我们制定策略和记住事情,但我们也可以采取行动来获取更多信息并实现我们的目标。 这是ReAct 的基础。 ReAct 提示包括带有操作的示例、通过采取这些操作获得的观察结果以及人类在该过程中各个步骤中转录的想法(推理策略)。

LLM学习模仿这种交叉思考和行动的方法,使其成为其环境中的代理。 下面是 ReAct 代理如何运行的说明,其中有一个以等宽字体显示的悲惨示例(按想法 -> 行动 -> 观察顺序)。

重要的是要记住,观察结果不是由 LLM 生成的,而是由环境生成的,环境是一个单独的模块,LLM 只能通过特定的文本操作与之交互。 因此,为了实现ReAct,你需要:

  • 一个环境,它执行文本操作(从一组可以根据环境的内部状态更改的潜在操作中)并返回文本观察。
  • 一个输出解析器框架,一旦代理编写了有效的操作,它就会停止生成文本,在环境中执行该操作,并返回观察结果(将其附加到迄今为止生成的文本并提示LLM)。
  • 人类生成的环境中混合思想、行动和观察的示例,用于小样本学习。

示例的数量及其细节由你决定。 ReAct 提示中使用的示例的开头如下所示。

Yao et al. (2023)

在这里,你可以看到想法、行动和观察都被清楚地标记为这样,并且这些行动使用特殊的格式 - 查询在括号中 - 这样代理将学习以这种方式编写它们,然后输出解析器可以 轻松提取查询。

3、结果

对于他们冻结的LLM,yao等人 使用PaLM-540B。 他们使用该LLM在两项知识密集型推理任务和两项决策任务上测试了 ReAct 提示。 我将依次讨论每一个。

3.1 知识密集型推理任务

此任务区域中使用的两个域是 HotPotQA(使用维基百科段落进行多跳问答)和 FEVER(事实验证)。 该代理能够使用以下操作与特意简单的维基百科 API 进行交互:

  • 搜索:按名称或最相似结果列表查找页面。
  • 查找:在页面中查找字符串。
  • 完成:以答案结束任务。

在这些领域中,ReAct 与以下技术进行了比较:

  • Standard:提示中不包含思考、行动或观察。
  • CoT:提示中不包含行动或观察。
  • CoT-SC(自洽):CoT 提示。 对LLM的一定数量的回复进行抽样,并选择大多数作为答案。
  • Act:提示中不包含思考。
  • ReAct -> CoT-SC:以 ReAct 方式启动,但如果开始不稳定,则切换到 CoT-SC。
  • CoT-SC -> ReAct:以 CoT-SC 启动,但如果开始不稳定,则切换到 ReAct。

成功是通过 HotPotQA 中 FEVER 和 EM 的准确性来衡量的。 下图显示了每个域中的结果作为 CoT-SC 采样响应数量的函数。

Yao et al. (2023)

ReAct 在 HotPotQA 中表现不佳,但在 FEVER 中表现优于 CoT。 ReAct 比 CoT 更不容易产生幻觉,但推理错误率更高。 尽管 ReAct 确实有这个缺点,但 ReAct -> CoT-SC 和 CoT-SC -> ReAct 方法是这组方法中最成功的。 下面是本文开头的同一个问题以及 ReAct 的回答,这是正确的。

Yao et al. (2023)

3.2 决策任务

此任务区域中使用的两个域是 ALFWorld 和 WebShop。 我将分别解释每个域。

ALFWorld 是一款具有现实环境的基于文本的游戏。 它具有用于在模拟世界中移动并与之交互的文本操作,例如“打开抽屉 1”。 智能体的目标可能是在房子里找到特定的物体,因此常识推理有助于了解通常会在哪里找到这样的物体。 ReAct 在此领域中比较的基线是:

  • Act:提示中不包含思考。
  • BUTLER:一种模仿学习方法。
  • ReAct-IM(内心独白):只能思考环境以及距离目标有多近。

成功的衡量标准是达到目标的试验的百分比。 ReAct 的表现优于基线。

WebShop 是一个模拟在线购物网站,其数据是从亚马逊爬取的。 这是一个具有挑战性的领域,因为它有大量用于浏览网站和搜索产品的操作。 目标是找到符合用户规格的商品。 ReAct 在此领域中比较的基线是:

  • Act:提示中不包含思考。
  • IL:一种模仿学习方法。
  • IL + RL:一种模仿和强化学习方法。

衡量成功的标准是所选项目与用户想要的隐藏项目的接近程度。 ReAct 的表现优于基线。

4、结束语

ReAct虽然由于其推理错误而本身并不完美,但它仍然是一种强大的提示工程方法,它克服了思想链推理的事实幻觉问题,并且还允许LLM成为可以与其环境交互的代理。 此外,它是一种非常可解释的方法,因为代理在其行动时输出其思维过程。

我相信 ReAct 是迈向通用人工智能 (AGI) 和具体语言模型(像人类一样思考的机器人)的一步。 如果机器人有一种方法可以根据熟悉的特征对外部环境进行建模并使用该模型创建提示,那么它就可以(至少尝试)在多种领域中自行行动,而无需人工制作的示例。 它还需要某种记忆,或者从经验中学习的能力,以使其变得更像人类。 目前尚不清楚 AGI 的创建是否会帮助或伤害人类,但具有常识知识的机器人,只要解决了推理错误和幻觉等错误,可能会对我们有很大帮助(作为消防员, 实例)。

LLM 代理已经商业化,并被用于各种任务,从创建网站到订购披萨。 还有非商业应用,比如毁灭人类。 我只希望这些工具也能发挥作用。 一个以找出如何解决世界问题为目标的智能体可能会很好。

相关文章:

教授LLM思考和行动:ReAct提示词工程

ReAct:论文主页 原文链接:Teaching LLMs to Think and Act: ReAct Prompt Engineering 在人类从事一项需要多个步骤的任务时,而步骤和步骤之间,或者说动作和动作之间,往往会有一个推理过程。让LLM把内心独白说出来&am…...

FPGA_工程_按键控制的基于Rom数码管显示

一 信号 框图: 其中 key_filter seg_595_dynamic均为已有模块,直接例化即可使用,rom_8*256模块,调用rom ip实现。Rom_ctrl模块需要重新编写。 波形图: 二 代码 module key_fliter #(parameter CNT_MAX 24d9_999_99…...

WordPress Plugin HTML5 Video Player SQL注入漏洞复现(CVE-2024-1061)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress Plugin HTML5 Video Player 插件 get_v…...

【Kotlin】Kotlin基本数据类型

1 变量声明 var a : Int // 声明整数类型变量 var b : Int 1 // 声明整数类型变量, 同时赋初值为1 var c 1 // 声明整数类型变量, 同时赋初值为1 val d 1 // 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名规范如下。 变量名可以由字母、数字、下划线(_…...

UDP端口探活的那些细节

一 背景 商业客户反馈用categraf的net_response插件配置了udp探测, 遇到报错了,如图 udp是无连接的,无法用建立连接的形式判断端口。 插件最初的设计是需要配置udp的发送字符,并且配置期望返回的字符串, [[instances]] targets…...

拦截器配置,FeignClient根据业务规则实现微服务动态路由

文章目录 业务场景拦截器用法Open Feign介绍 业务场景 我们服务使用Spring Cloud微服务架构,使用Spring Cloud Gateway 作为网关,使用 Spring Cloud OpenFeign 作为服务间通信方式我们现在做的信控平台,主要功能之一就是对路口信号机进行管控…...

预测模型:MATLAB线性回归

1. 线性回归模型的基本原理 线性回归是统计学中用来预测连续变量之间关系的一种方法。它假设变量之间存在线性关系,可以通过一个或多个自变量(预测变量)来预测因变量(响应变量)的值。基本的线性回归模型可以表示为&…...

【人工智能】神奇的Embedding:文本变向量,大语言模型智慧密码解析(10)

什么是嵌入? OpenAI 的文本嵌入衡量文本字符串的相关性。嵌入通常用于: Search 搜索(结果按与查询字符串的相关性排序)Clustering 聚类(文本字符串按相似性分组)Recommendations 推荐(推荐具有…...

Redis + Lua 实现分布式限流器

文章目录 Redis Lua 限流实现1. 导入依赖2. 配置application.properties3. 配置RedisTemplate实例4. 定义限流类型枚举类5. 自定义注解6. 切面代码实现7. 控制层实现8. 测试 相比 Redis事务, Lua脚本的优点: 减少网络开销:使用Lua脚本&…...

ruoyi若依框架SpringSecurity实现分析

系列文章 ruoyi若依框架学习笔记-01 ruoyi若依框架分页实现分析 ruoyi若依框架SpringSecurity实现分析 文章目录 系列文章前言具体分析一、项目中的SpringSecurity版本二、登录认证流程分析三、权限鉴定四、退出登录五、SpringSecurity配置类 总结 前言 在ruoyi-vue若依框…...

Habitat环境学习四:Habitat-sim基础用于导航——使用导航网格NavMesh

如何使用导航网格NavMesh 官方教程1、NavMesh基础定义1.1 使用NavMesh的原因1.2 什么是NavMesh 2、NavMesh的使用方法2.1 获取自上而下Top down view视角地图2.2 在NavMesh中进行查询以及随机产生可导航点2.3 查找最短路径2.4 场景加载NavMesh2.5 重新计算并生成NavMesh2.6 什么…...

python学习笔记 -- 字符串

目录 一、输出字符串的格式 二、字符串的一些函数 1、len函数:字符串长度 2、查找字符所在位置index 3、某字符在字符串中的个数count 4、字符切片 对字符串进行翻转 -- 利用步长 5、修改大小写字母: 6、判断开头和结尾 7、拆分字符串 一、输出…...

2024年GPT如何发展?

2023 年,人工智能领域最具影响的莫过于 GPT-4、ChatGPT 了。 ChatGPT 凭一己之力掀起了 AI 领域的热潮,火爆全球,似乎开启了第四次工业革命。 ChatGPT 入选《Nature》2023 年度十大人物(Nature’s 10),这…...

从REPR设计模式看 .NET的新生代类库FastEndpoints的威力

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 又到了一年年末,春节将至…...

前端入门:(五)JavaScript 续

10. 浏览器存储 10.1 Cookie的概念和使用 Cookie是一种存储在用户计算机上的小型文本文件,用于跟踪和识别用户。Cookie通常用于存储用户的偏好设置、会话信息等,可以通过JavaScript进行读取和设置。 // 示例:设置和读取Cookie document.co…...

研究多态恶意软件,探讨网络安全与AI

前言 近期ChatGPT火遍全球,AI技术被应用到了全球各行各业当中,国内外各大厂商也开始推出自己的ChatGPT,笔者所在公司在前段时间也推出了自研的安全GPT,AI技术在网络安全行业得到了很多的应用,不管是网络安全研究人员、…...

linux驱动工作原理

linux或者windows驱动是如何对上和对下工作的,请用中文回答 在Linux系统中,设备驱动程序通过在/dev目录下创建文件系统条目与硬件通信。应用程序通过打开这些文件来获取描述符,以此来与设备交互。驱动程序内部使用主次设备号来标识设备。而在…...

Rust语言入门(第3篇)

引用与借用 上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。 fn main(){let b 3;makes_copy(b);println!("after using a variab…...

电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)

问题环境: 日常服务的搭建或多或少都会有需要到NET Framework 3.5的微软程序运行框架,本次介绍几种不同的安装方式主要解决运行在Windows 2012 以上的操作系统的服务。 NET Framework 3.5 是什么? .NET Framework是微软公司推出的程序运行框架…...

Three.js学习8:基础贴图

一、贴图 贴图(Texture Mapping),也翻译为纹理映射,“贴图”这个翻译更直观。 贴图,就是把图片贴在 3D 物体材质的表面,让它具有一定的纹理,来为 3D 物体添加细节的一种方法。这使我们能够添加…...

【Linux】进程学习(二):进程状态

目录 1.进程状态1.1 阻塞1.2 挂起 2. 进程状态2.1 运行状态-R进一步理解运行状态 2.2 睡眠状态-S2.3 休眠状态-D2.4 暂停状态-T2.5 僵尸状态-Z僵尸进程的危害 2.6 死亡状态-X2.7 孤儿进程 1.进程状态 1.1 阻塞 阻塞:进程因为等待某种条件就绪,而导致的…...

Spring Boot 笔记 003 Bean注册

使用Idea导入第三方jar包 在porn.xml种添加的第三方jar包依赖,并刷新 可以在启动类中尝试调用 以上放到启动类中,不推荐,建议创建一个专门定义的类 package com.geji.config;import cn.itcast.pojo.Country; import cn.itcast.pojo.Province;…...

PCIE 参考时钟架构

一、PCIe架构组件 首先先看下PCIE架构组件,下图中主要包括: ROOT COMPLEX (RC) (CPU); PCIE PCI/PCI-X Bridge; PCIE SWITCH; PCIE ENDPOINT (EP) (pcie设备); BUFFER; 各个器件的时钟来源都是由100MHz经过Buffer后提供。一个PCIE树上最多可以有256…...

【开源】JAVA+Vue.js实现在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…...

计算机网络(第六版)复习提纲29

第六章:应用层 SS6.1 域名系统DNS 1 DNS被设计为一个联机分布式数据库系统,并采用客户服务器方式(C/S) 2 域名的体系结构 3 域名服务器及其体系结构 A 域名服务器的分类 1 根域名服务器 2 顶级域名服务器(TLD服务器&a…...

有道ai写作,突破免费限制,无限制使用

预览效果 文末提供源码包及apk下载地址 有道ai写作python版 import hashlib import time import json import ssl import base64 import uuidfrom urllib.parse import quote import requests from requests_toolbelt.multipart.encoder import MultipartEncoder from Crypto…...

node.js 使用 elementtree 生成思维导图 Freemind 文件

请参阅: java : pdfbox 读取 PDF文件内书签 请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad 转换编码。 npm install elementtree --save 编写 txt_etree_mm.js 如下 // 读目录.txt文件,使用 elementtree 生成思维导图 Free…...

Vue中路由守卫的详细应用

作为一名web前端开发者,我们肯定经常使用Vue框架来构建我们的项目。而在Vue中,路由是非常重要的一部分,它能够实现页面的跳转和导航,提供更好的用户体验。然而,有时我们需要在路由跳转前或跳转后执行一些特定的逻辑&am…...

Flink Checkpoint过程

Checkpoint 使用了 Chandy-Lamport 算法 流程 1. 正常流式处理(尚未Checkpoint) 如下图,Topic 有两个分区,并行度也为 2,根据奇偶数 我们假设任务从 Kafka 的某个 Topic 中读取数据,该Topic 有 2 个 Pa…...

【Java程序代理与系统代理关系】Java程序代理与系统代理关系优先级及覆盖关系

前言 使用Apache HttpClient工具包中的HttpClients.createDefault()方法创建的默认HTTP客户端会根据操作系统当前的设置来决定是否使用代理。 具体来说,当创建默认HTTP客户端时,它会检查系统的代理设置。如果操作系统当前设置了系统级代理,…...

MQ,RabbitMQ,SpringAMQP的原理与实操

MQ 同步通信 异步通信 事件驱动优势: 服务解耦 性能提升,吞吐量提高 服务没有强依赖,不担心级联失败问题 流量消峰 ​ 小结: 大多情况对时效性要求较高,所有大多数时间用同步。而如果不需要对方的结果,且吞吐…...

Vue 3 + Koa2 + MySQL 开发和上线部署个人网站

Vue 3 Koa2 MySQL 开发和上线部署个人网站 记录个人的一个操作步骤, 顺序不分先后, 嫌啰嗦请出门右转! 环境说明: 服务器: 阿里云轻量应用服务器 服务器系统: CentOS8.2 本地环境: macOS 12.7.2 Node: 20.10.0 MySQL: 8.0.26 Vue: 3.3.11 Koa: 2.7.0 pm2: 5.3.1 Nginx: 1.1…...

uniapp踩坑之项目:简易版不同角色显示不一样的tabbar和页面

1. pages下创建三个不同用户身份的“我的”页面。 显示第几个tabbar,0是管理员 1是财务 2是司机 2. 在uni_modules文件夹创建底部导航cc-myTabbar文件夹,在cc-myTabbar文件夹创建components文件夹,在components文件夹创建cc-myTabbar.vue组件…...

源支付V7开心1.9修复版,非网络上泛滥不能那种

源支付V7开心1.9修复版,非网络上泛滥不能那种 修复版源码,非网络泛滥版,防止源码泛滥,会员专属源码, 本站会员免费下载所有资源 注:开发不易,仅限交流学习使用,如商业使用,请支持正…...

Gitlab和Jenkins集成 实现CI (二)

Gitlab和Jenkins集成 实现CI (一) Gitlab和Jenkins集成 实现CI (二) Gitlab和Jenkins集成 实现CI (三) 配置Gitlab api token 配置 Gitlab 进入gitlab #mermaid-svg-t84fR8wrT4sB4raQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:…...

Java:内部类、枚举、泛型以及常用API --黑马笔记

内部类 内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。 当一个类的内部,包含一个完整的事物,且这个事物没有必要单独设计时&a…...

【持续更新】2024牛客寒假算法基础集训营3 题解 | JorbanS

A - 智乃与瞩目狸猫、幸运水母、月宫龙虾 string solve() {string a, b; cin >> a >> b;if (isupper(a[0])) a[0] a - A;if (isupper(b[0])) b[0] a - A;return a[0] b[0] ? yes : no; }B - 智乃的数字手串 string solve() {cin >> n;int cnt 0;for (…...

Java基于微信小程序的驾校报名小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

Android中AGP与Gradle、AS、JDK的版本关系

文章目录 AGP版本所要求的Gradle、JDK、SDK Build Tools最小版本Android Studio所要求的AGP最小版本 本文介绍了 在Android开发中由于AGP与gradle、JDK、AS等版本不匹配导致的编译失败问题屡见不鲜,尤其是对于新手而言更是叫苦不迭。新手经常遇到拿到别人的工程代码…...

web 前端实现一个根据域名的判断 来显示不同的logo 和不同的标题

1.需求 有可能我做一个后台 web端 我想实现一套代码的逻辑 显示不同的公司主题logo以及内容,但是实际上 业务逻辑一样 2.实现 建一个store oem.ts 这个名为是 oem系统 oem.ts import { defineStore } from pinia;import { store } from /store;const oemDataLis…...

复制和粘贴文本时剥离格式的5种方法(MacWindows)

您可能每天复制和粘贴多次。虽然它是一个非常方便的功能,但最大的烦恼之一就是带来了特殊的格式。从网络上获取一些文本,您经常会发现粘贴到文档中时,它保持原始样式。 我们将展示如何使用一些简单的技巧在不格式化的情况下复制和粘贴。 1.…...

SpringBoot实现即时通讯

SpringBoot实现即时通讯 功能简述 好友管理群组管理聊天模式:私聊、群聊消息类型:系统消息、文本、语音、图片、视频会话列表、发送消息、接收消息 核心代码 package com.qiangesoft.im.core;import com.alibaba.fastjson2.JSONObject; import com.q…...

【每日一题】LeetCode——反转链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…...

精通Python爬虫:掌握日志配置

源码分享 https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tabBB08J2 在开发Python爬虫时,日志记录是一个不可或缺的特性,它帮助我们捕捉运行时信息、调试代码和监控爬虫的健康状况。合理地配置日志系统是提高爬虫可维护性的关键。本篇技术博客将详细介绍…...

Python_百度贴吧评论情感分析

一、评论爬取 以百度贴吧中“美团骑手吧”为例,对页面中的帖子评论进行爬取,并将结果以json的格式保存到本地中。 from lxml import etree import requests import json# 根据网页url获取评论 def GetComments(url):# 使用requests库发送GET请求&#…...

如何运行心理学知识(心流)来指导工作和生活

如何运用心流来指导工作和生活 如何联系我 作者:鲁伟林 邮箱:thinking_fioa163.com或vlinyes163.com GitHub:https://github.com/thinkingfioa/ReadingSummary 版权声明:文章和记录为个人所有,如果转载或个人学习…...

精简还是全能?如何在 Full 和 Lite 之间做出最佳选择!关于Configuration注解的Full模式与Lite模式(SpringBoot2)

🏃‍♂️ 微信公众号: 朕在debugger© 版权: 本文由【朕在debugger】原创、需要转载请联系博主📕 如果文章对您有所帮助,欢迎关注、点赞、转发和订阅专栏! 前言 关于 Configuration 注解,相信在座的各位 Javaer 都…...

springboot微信小程序uniapp学习计划与日程管理系统

基于springboot学习计划与日程管理系统,确定学习计划小程序的目标,明确用户需求,学习计划小程序的主要功能是帮助用户制定学习计划,并跟踪学习进度。页面设计主要包括主页、计划学习页、个人中心页等,然后用户可以利用…...

236.二叉树的最近公共祖先

​​题目来源: leetcode题目,网址:236. 二叉树的最近公共祖先 - 力扣(LeetCode) 解题思路: 分别获得从根节点到两个目标节点的链路,寻找到最后一个相同节点即可。 解题代码: /***…...

ETL是什么,有哪些ETL工具?就业前景如何?

ETL是什么 ETL(Extract-Transform-Load),用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目标端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。它可以自动化数据处理过程,减少…...