- 博客(34)
- 收藏
- 关注
原创 HelloAgents学习:PartⅠChapterⅠ初识智能体
人工智能领域,智能体被定义为任何能够通过传感器感知其所处环境,并自主通过执行器采取行动达成指定目标的实体。智能智能体的智能在于“自主性其并非被动响应外部刺激/严格执行预设指令的程序,而能够基于其感知和内部状态进行独立决策。形成从感知到行动的闭环。想要了解智能体运作,我们必须知道其所处的任务环境。人工智能领域,通常使用PEAS模型来精确描述一个任务环境,分析其性能度量Performance、环境Environment、执行器Actuators、传感器Sensors。
2026-04-27 20:28:17
393
原创 LLM到Agent&RAG——AI知识点概述 第六章:Function Call函数调用
以我们的RAG系统为例,整个RAG流程大概是这样的:用户提出问题→(问题拆分)→检索分块→生成答案→(比标注来源)在基础场景中已经很完善了,能够给出符盖对应知识点的回答,但是用户的问题有时候并不只是查询文档并生成回答这么简单。EX:用户“帮我查询12345中订单”,“帮我点杯奶茶”(千问点单、小美等)。RAG或许能够通过预训练知识/知识库文档查询到对应的知识/相关指南,但是无法真正查询到用户相关的真实订单信息、无法真实执行下单操作。——需要查询/点单相关API。
2026-04-24 20:04:03
374
原创 LLM到Agent&RAG——AI概念概述 第五章:Skill
Skill封装了特定任务的Prompt模板、工具组合、执行完整流程Skill也能够让Agent更加专业精准。
2026-04-22 19:21:05
184
原创 LLM到Agent&RAG——AI概念概述 第四章:Agent概述
Agent=LLM+规划能力+记忆+工具调用。它不再只是回答问题,而是能够理解用户问题,拆解任务→调用工具→根据反馈调整行动→测试功能(部分agetn带有)通过一轮/多轮上述流程执行,直至实现任务目标。
2026-04-22 09:12:49
328
原创 LLM到Agent&RAG——AI概念概述 第三章:RAG
大模型可能生成一个看起来很合理但实际上完全错误的内容。使用编纂的人名去问,回答的也是一个公司中不存在的人。当前,较高版本ai结合联网搜索功能降低了幻觉问题原因:LLM本身预测概率最高的词,并不理解真正的事实。当其对问题不确定时,它不懂得说不知道,而是生成一个符合问题的编纂内容。
2026-04-20 10:07:10
493
原创 LLM到Agent&RAG——AI概念概述 第二章:提示词
太宽:你是一个助手——边界不清晰,模型容易跑偏太窄:你是一个只回答 iPhone 14 Pro 退货问题的助手——过于限制,灵活性差,换个产品就不适合了合适:你是一个电商客服助手,负责回答退货、换货、物流相关问题——边界清晰,又有一定灵活性你是一个专业的知识库问答助手。你只能根据提供的参考资料回答问题,不能使用你的预训练知识。如果参考资料中没有相关信息,请如实告知,不要编造。我们需要把“只能用参考资料”、“不能编造”这些行为边界写进角色定义,这样ai的api回答才能符合我们的要求。
2026-04-18 21:21:07
379
原创 LLM到Agent&RAG——AI概念概述 第一章:大模型
传统业务当中,我们通过if-else将所有规则硬性写好,所有情况、出发的回答都是固定的。缺陷显而易见:用户的表达千变万化。——实际上这些都是同样一件事情,但是我们的if-else只能匹配包含一定关键字的那些,想要包含所有的情况,规则会很长,这是很不实际的。应对这种情况出现的NLP(自然语言处理)计数,例如关键字匹配等。这些方法比if-else聪明些,能够执行一定层面的文本分析,但是还是不能真正理解语句的含义。
2026-04-18 21:09:45
395
原创 JVM学习笔记:第九章——StringTable字符串常量池
String——字符串,使用""进行基本表示。注意:字面量方式会检查字符串常量池,若存在则直接返回引用;new方式则是强制在堆内存当中开辟新空间(JDK7之后常量池在堆当中),即使内容相同也会生成新对象(除非调用String.intern)String被声明为final类,不可被继承:意味着String不能有子类设计目的:保障不可变性:防止子类修改字符串内部状态,确保字符串内容一旦创建就不可修改安全性:String广泛用于网络参数、数据库连接、类加载器等关键场景,不可继承防止恶意篡改。
2026-03-10 19:00:12
507
原创 JVM学习笔记:第八章——执行引擎
CPU可以直接执行的二进制指令序列CPU根据指令集架构解析这些二进制位并执行响应操作机器语言的符号化表达形式使用助记符(Mnemonic)标识机器指令一种介于高级语言和机器码的中间表示形式字节码通常是面向虚拟机设计的字节码指令集那些在运行时被频繁执行的字节码片段称为热点代码。JIT编译器会识别这些代码,对其进行深度优化(内联、逃逸分析、锁消除等)并将其编译为特定平台的本地机器指令,从而显著提升执行性能热点代码主要分为两类:高频调用的方法:整个方法被频繁执行。
2026-03-07 22:28:54
478
原创 JVM学习笔记:第七章——对象实例化、内存布局&访问定位
我们先通过Constructor拿到对应的构造器,之后通过setAccessble设置允许使用,之后通过private构造器创建对象。最大优点:引用(reference)地址稳定,当GC移动对象(例如压缩整理)时,只需要修改句柄当中的实例指针。在一些设计模式当中,例如通过单例模式或者工厂模式,对象创建依然会在内部使用。没有句柄访问当中的类型指针,只能通过对象的对象头当中的类型指针指向类元数据。,随着对象在JVM运行过程中运行时状态改变,存储不同的数据信息。
2026-03-06 22:10:42
463
原创 JVM学习笔记:第六章——方法区
对象已经不再被业务逻辑使用,但是由于仍然被某些“根对象(GC Roots)”引用,导致垃圾收集器无法回收他们,从而长期占用堆内存/方法区的现象。JVM尝试为新对象分配内存的时候,发现堆/方法区/栈等剩余空间不足,且无法通过GC扩展出足够内存空间,抛出错误。直接内存(Direct Memory)是位于Java堆之外的本地内存。不属于JVM运行时数据区,也不是JVM规范定义的内存区域。但是JVM可以通过本地方法(JNI)或者NIOAPI使用这部分内存。
2026-03-05 21:29:00
459
原创 JVM学习笔记:第五章——堆内存
堆对一个JVM进程而言是唯一的——一个进程只有一个JVM实例。一个JVM实例当中对应一个运行时数据区,一个运行时数据区当中只有一个堆和一个方法区。但是一个进程包含多个线程,他们共享同一个堆空间。堆是Java内存管理的核心区域。JVM启动时其初始大小和最大上限就被确定了,运行时JVM可以根据GC压力动提交(commit)、释放(uncommit)物理内存,使已经提交的内存在初始大小和最大上限之间浮动。JVM规范规定,堆可以处于物理上不连续的内存空间当中,但是在逻辑上被视为连续的。
2026-02-24 20:59:15
795
原创 JVM学习笔记:第四章——虚拟机栈
栈:运行时单位,解决程序如何执行/如何处理数据的问题堆:存储单位,数据存储问题在内存空间当中:0x0000000000000000 → 低地址...0x7FFFFFFFFFFFFFFF → 高地址低地址代码段数据段Heap ↑ 向上增长Stack ↓ 向下增长高地址避免冲突栈从高地址向下堆从低地址向上两者“相向而行”便于检测溢出栈溢出会撞到保护页一块连续内存空间,CPU自动管理,用于存储(Java变量类型角度):局部变量(包含基本类型)方法参数对象引用变量u在栈。
2026-02-21 22:24:50
739
原创 JVM学习笔记:第三章——运行时数据区(部分)
本章节主要讲述运行时数据区,是类加载之后的阶段当我们通过前面的:类的加载→链接(验证→准备→解析)→初始化,这几个阶段完成之后,就会用到执行引擎对我们的类进行使用,同时执行引擎将会使用我们的运行时数据区类比一下大厨做饭,我们把运行时数据区比作大厨后面的东西(切好的菜品、厨具、调料等),而执行引擎就是烹饪的厨师。JVM语境下,安全点指的是:JVM可以安全的暂停所有Java线程,执行全局性操作(例如GC)的特定程序位置它是HotSpot等主流虚拟机实现中的一种运行时协作机制。
2026-02-16 16:02:16
719
原创 JVM学习笔记:第二章——类加载子系统
简图:Class files:字节码文件详细图:注意: 方法区是JVM规范,而永久代和元空间是实现。hotspot在JDK8之前用的是永久代实现,JDK8及之后移除了永久代,用元空间实现方法区。(尚硅谷课程当中说只有hotspot有是错误的)Quest:如果自己想手写一个Java虚拟机的话,主要考虑哪些结构呢?类加载器执行引擎System.out.println("你的大恩大德,我下辈子再报!");
2026-02-12 22:08:24
654
原创 JVM学习笔记:第一章——JVM&Java体系结构
由于跨平台设计,java的指令都是根据栈进行设计的。普通平台的CPU架构不同,不能设计为基于寄存器的。栈的优点:跨平台指令集小编译器容易实现缺点:性能比寄存器实现差一些。
2026-02-03 21:17:45
785
原创 CompletableFuture原理与实践(美团技术团队文章转载&部分个人理解与思考)
文章总体上是对美团技术团队的文章《CompletableFuture原理与实践-外卖商家端API的异步化》进行阅读之后的总结,以及文章中所说的知识星球项目代码的二次创作,存在大段的摘抄,个人进行了部分增删、添加个人思路与理解以及代码注释的编写(项目代码),如有侵权请联系删除
2026-01-30 23:18:17
767
原创 回调模型简述
核心思想(比喻版本):“不要打电话给我,好了之后我打给你” ——传统的回步调用当中,调用者A调用被调用者B的方法,A必须等待B执行完成拿回结果。而在回调模型当中,A调用B时,不仅传递参数,还传递一个“函数指针”/“逻辑对象”(回调函数)。B收到请求之后立即返回,A执行其他任务。等B执行完毕之后反过来执行A传入的函数(系统触发执行)你去柜台点奶茶,站在柜台前死等,直到奶茶做好递给你。你点完奶茶,留下你的电话号码(回调函数),然后去逛街。奶茶做好后,店员打你电话(触发回调),你再回来取。
2026-01-29 14:20:04
835
原创 Java:基于注解实现去重表消息防止重复消费
*** 幂等注解:防止雄安锡独立额消费者重复消费消息*//*** 设置防重令牌Key前缀*//*** 通过SpEL表岛是生成的唯一key*//***设置防重令牌Key过期时间,单位为秒,默认1小时*//*** 防止消息队列消费者重复消费消息切面控制器*/@Slf4j@Aspect//java文本块,使用""""定义多行字符串而不需要手动\n,手动转义引号,手动拼接字符串,增强文本可读性。
2025-12-11 22:32:06
653
原创 LeeCode Hot100随机链表的复制 java易懂题解
这道题并不难,容易想到使用哈希表(毕竟每一个节点都是独一无二的)但是,怎么使用是一个问题这里,我使用哈希表存储结点,key是它对应的原来的连表当中的结点,value就是它本身。
2025-12-08 20:00:33
383
原创 通过RocketMQ延时消息实现优惠券等业务MySQL当中定时自动过期
向我们常使用的优惠券都有使用时限,有的是几个小时有的是几天在缓存当中我们可以设定TTL让redis自动销毁,但是数据库不行,需要我们自己执行数据库字段修改对应属性或者进行逻辑删除。但是,这不应该是管理人员应该做的事情,这种事情很明显应该是程序自动实现而不是每次都去麻烦管理人员。这里我们利用RocketMQ消息队列的特性:延时消息进行实现。(这也是我在自己的项目当中最常使用的一点)这里我们在优惠券的模板当中设置了一个字段:过期状态。
2025-12-01 19:10:03
651
原创 注解+aop实现防幂等
(Idempotent)意味着:同一个请求,无论发送1次还是10次,最终结果不能变化高并发业务当中十分关键:优惠券领取(不能重复领)下单接口(不能短时间重复创建订单)支付回调(不能多次修改订单)秒杀扣库存(不能短时间重复扣减)发消息(不能重复发送)等等。
2025-11-25 19:20:59
332
原创 洛谷1194C语言
由于上面我们把每件礼物都看成是结点,又被告知了礼物的优惠是如何的,我们可以将优惠看成边(单向),构建边表,之后是由kruskal进行。我们可以选择直接激活结点/将结点连接起来。也就是说每个点我们都要到达。最小生成树类型的的题目。
2025-04-27 20:23:46
472
原创 洛谷P3196C语言题解
根据题目最容易想到的肯定就是使用dfs进行解决虽然知道可能会被时间复杂度卡,但是好像也没有其他方法了最初的代码如何解决:如果我们每一次都是从要查的点出发,如果他和另外一个点最大能到达的点是一个,那么时间不是多花了一次嘛如果我们知道这个点能被其余的点达到而且他还是最大的那一个点,势必会比赏面的dfs快。
2025-04-23 19:59:50
294
原创 洛谷5318C语言题解
当然book函数进行记录也是必不可少的(毕竟是图而不是树)构建时需要注意: 这里相当于是一个有向图而不是无向图。进行dfs,如果你是按照无向图进行构建的话。如果你要建立一个二维数组,内存就爆了。这道题一开始想直接使用邻接矩阵解决。输出的结果回事12563748。而题目中要的是12563784。就拿题目中的样例来说。
2025-04-23 19:33:34
274
原创 洛谷1449c语言
原本我想一次性将所有(不管是运算符号还是数字字符)以字符串的形式先进行读取,读取完毕之后将数字字符串转换为整型数字但是由于.还有运算符之间并没有进行分隔开来,注定我们只能使用getchar“逐字逐句”地进行读取。进行读取之后我们先要进行判断——是数字还是运算符,数字的话就将他加投入到数字之中直至遇到.为止——说明当前数字读取完毕——>放入数字的栈之中进行暂时的存储。因为使用的是getchar进行单个字符的读取,所以我们在读取的同时可以将栈中数据拿出进行计算,不需要再编写函数。
2025-03-27 18:34:34
243
原创 洛谷1044栈C语言
这是一道利用了https://i-blog.csdnimg.cn/direct/b30ac637a3e041afb82ae968c6669de0.jpeg栈进行种类的求解的题目,一开始想使用深搜进行解决但是这样不仅时间复杂度会很高而且很难实现没辙了,看题解——卡特兰数?什么鬼后面我才意识到这道题和栈的所谓联系就是这个卡特兰数,事实上是一道考验知识点的动态规划题目。
2025-03-27 18:32:20
533
原创 valiant‘s new map C语言代码题解
一开始看到各种大佬的动态规划啊就把小白我吓得不轻,后来总算找到了一种思路深得我心还是不行,因为数据太多到这个四重循环TLE:如何摆脱四重循环上面我们是传统思路:先找到总和符合条件的,再去把最小值挑出来判断我们能够在一个二重循环里面同时知道整体和个体是否符合条件就好了把这个看作一块模型我们给他喷上醒目的漆——代表符合要求,然后又是正方形的话就说明可行整体——前缀和个体怎么办?我们就让所有>=标准值的元素变为0前缀和为0既表示他是整体符合标准也代表所有的个体符合标准——一石二鸟。
2025-02-07 16:56:30
1443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅