自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 LangGraph

加入记忆很简单,就是在正常的流程里面首先设置一个 checkpointer,然后编译的时候指定即可,然后调用的时候,config: RunnableConfig = {"configurable": {"thread_id": "1"}} 这种是固定的形式。

2026-05-10 22:16:20 51

原创 微服务02

但如果尚未读取application.yml,是不知道nacos的地址的,因此无法读取nacos中的配置, 因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程是这样的。总结:使用Feign的话就是先引入依赖,然后在启动类上面加上@EnableFeignClients注解,接着编写一个Fegin客户端,这个客户端就是声明要调用的服务,参数,返回值,等等,最后就可以注入这个,然后在用到的地方直接注入使用即可。

2026-03-08 23:26:31 435

原创 微服务01

(提供接口给其它微服务);然后就是服务发现:也是三部分然后再加一个发请求罢了,两部分和服务注册是一样的,发请求的话就是先配置RestTemplate,上面加上@LoadBalanced注解,然后就可以在需要用到的地方注入,然后使用就行了,使用服务名直接访问(但是需要注意的是,然后就是服务发现:也是两部分然后再加一个发请求罢了,两部分和服务注册是一样的,发请求的话就是先配置RestTemplate,上面加上@LoadBalanced注解,然后就可以在需要用到的地方注入,然后使用就行了,使用服务名直接访问。

2026-03-08 16:44:28 435

原创 LangChain4j

通常情况下LangChain4j是允许我们指定文本片段的字符容量的,假设我指定单个文本片段的字符容量为300,那么在组合文本片段的时候,第一部分的自然段和第二部分的自然段的字符总和不到300,可以放到同一个文本片段中,但是加上第三部分的自然段,字符总和超过了300,那么第三部分的自然段就不能再放到这个文本片段中了,而是放到下一个新的文本片段中。注意这里的配置和之前配置的redis不相干,这里配置的是langchain4j.community下的,而之前配置的是spring.data下的。

2026-03-07 12:39:46 512

原创 Esday02

里面的组装的时候因为商圈(business)可能有多个值是按照/分割的,所以就去做了一个判断,如果是单一的商圈,那么就直接调用Array.asList方法直接把两个字符串转化为列表,如果有多个值就先分割呗,然后把这个分割的列表和brand加进去即可。所以实现流程应该是:为es和实体类添加一个布尔类型的值(当然也可以用0,1区分),然后查询的是一个算分函数,里面的查询就是以前的查询,过滤条件就是一个精确查询(查询布尔为true的),然后算分即可,这样就可以完成置顶。这个我就不写了,懒得写了放上代码得了。

2026-02-27 20:01:14 687

原创 分布式搜索引擎-Es01

这完全是我自己想出来的,我太开心啦,哈哈哈:1.概述:elasticsearch是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能比如:elastic stack(ELK)是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch,这是这个技术栈的基本架构,数据可视化,数据抓取的技术栈不一定要依靠这三个,但数据检索es是必不可少的。

2026-02-26 18:30:55 620

原创 MQ消息队列

1.同步与异步:微服务间通讯有同步和异步两种方式:同步和异步,同步一般时效性比较强的业务需要用到同步,一个逻辑的执行需要另一个逻辑的结果,这种耦合度很高的必须同步,但是如果时效性不是很强的业务,应该使用异步方式,比如下面这个例子:如果同步会有很多弊端:耦合度高,性能下降(吞吐量低)因为各个模块之间需要等待,是一个串行,每个服务运行是需要占用cpu资源的,串行会导致占着茅坑不拉屎造成cpu资源浪费,一个模块出现问题会导致多米诺效应。

2026-02-23 19:55:08 699

原创 Docker

数据卷是什么:就是一个虚拟目录,什么意思,你看,我们安装docker后会产生下面那个宿主机文件系统直到volumes哪里,然后我们每次新建一个数据卷就会在这个目录下生成一个一模一样的文件,然后我们在运行一个容器的时候使用-v参数就可以把数据卷和容器内的目录建立一对一映射(如果数据卷不存在会自动创建),叫做挂载,这样的话宿主机上的这个文件和容器内的对应文件就一一对应了,哪一方更改另一方就会产生对应的变化,这就就可以更改容器的东西。然后你可以启动多次,双开、甚至三开QQ,跟多个妹子聊天这就是不同的容器。

2026-02-22 18:24:55 857

原创 点评Day06 剩下的卡拉米,我不都写,只写一些新奇的

总结一下:实现滚动分页需要四个参数,首先最大值,最小值,偏移量,查多少,当然在这个业务里查多少是固定的,写死就行了,那个最小值因为存的是时间错我们写死是0即可,最大值需要给,要的是上一次的最小分数(除了第一次,第一次可以令最大值是当前时间戳),然后偏移量第一次是0,其他是1,但是这里还有一种特殊情况:某一页最后分数有一样的,推拉模式是一个折中的方案,站在发件人这一段,如果是个普通的人,那么我们采用写扩散的方式,直接把数据写入到他的粉丝中去,因为普通的人他的粉丝关注量比较小,所以这样做没有压力。

2026-02-21 19:45:10 659

原创 点评day05 秒杀优化-利用消息队列实现异步写入数据库

在秒杀操作中,有很多操作是要去操作数据库的,而且还是一个线程串行执行, 这样就会导致我们的程序执行的很慢,所以我们需要异步程序执行。有一个方案:使用异步编排来做,或者说开启N多线程,N多个线程,一个线程执行查询优惠卷,一个执行判断扣减库存,一个去创建订单等等,然后再统一做返回,但是如果访问的人很多,那么线程池中的线程可能一下子就被消耗完了,而且使用上述方案,最大的特点在于时效性,查询优惠卷和之后的操作时一个时效性很高的步骤,我们如果有N多个线程很难控制它们之间的时效性。(当然也可以给它传入阻塞队列。

2026-02-20 18:44:50 742

原创 点评day04 Redisson

包括主从一致性:就是读写分离,主机写,从机读,我们加锁是写,会写在主机上,主机和从机要同步数据,存在延迟,如果写锁,主机突然岱机,就会出现锁冲突。为了解决这个问题,redission提出来了MutiLock锁,使用这把锁就不使用主从了,每个节点的地位都是一样的, 这把锁加锁的逻辑需要写入到每一个节点上,只有所有的服务器都写入成功,此时才是加锁成功,假设现在某个节点挂了,那么他去获得锁的时候,只要有一个节点拿不到,都不能算是加锁成功,就保证了加锁的可靠性。//获取锁(可重入),指定锁的名称。

2026-02-20 12:26:24 793

原创 点评day04 一人一单集群

首先一人一单已经在单机模式下实现,原理就是利用悲观锁(syn锁)将对象锁起来,但这种方法在集群模式下是有严重问题的,因为不同的服务器内部的jvm是不同的,你同一台机器子所以能够达到这种效果完全是因为一个jvm内部使用一个锁监视器,不同线程去运行监视同一个锁监视器,但在集群模式下,不共用一个锁监视器,这样我们做了nginx负载均衡后就会出问题,继续使用syn锁是达不到这种效果的,这时就需要使用分布式锁,分布式锁:满足分布式系统或集群模式下多进程可见并且互斥的锁。

2026-02-19 17:56:14 702

原创 点评day03优惠卷秒杀-库存超卖,一人一单(单机模式)

1.全局唯一ID每个店铺都可以发布优惠券,当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题:* id的规律性太明显* 受单表数据量的限制场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。

2026-02-18 23:04:45 729

原创 点评day02 商户缓存

1.概览实际开发中,会构筑多级缓存来使系统运行速度进一步提升,例如:本地缓存与redis中的缓存并发使用浏览器缓存:主要是存在于浏览器端的缓存应用层缓存:可以分为tomcat本地缓存,比如之前提到的map,或者是使用redis作为缓存数据库缓存:在数据库中有一片空间是 buffer pool,增改查数据都会先加载到mysql的缓存中CPU缓存:当代计算机最大的问题是 cpu性能提升了,但内存读写速度没有跟上,所以为了适应当下的情况,增加了cpu的L1,L2,L3级的缓存。

2026-02-17 20:45:38 772

原创 点评day01,Session实现登录

改进短信登录,实现多端登录登出

2026-02-14 17:17:47 651

原创 外卖心得day04(这是我感觉目前最有意义的一件事情)

接下来我想了解一下如何避免此类问题发生,说不定算项目的一个亮点。首先就是合适我的这个项目的就是首先可以判断这个线程里边的值是不是空,就是我的每一个项目都最好是把数据库非空约束校验一下。:加在 public 的 Service 方法上、被外部类调用、Bean 被 Spring 管理。然后就是配置yam文件,尽量让全局异常处理器去捕获覆盖面广的异常。2.那我的问题就来了,加上事务注解可不可以呢?小tips:补充事务失效的原因。

2026-02-05 10:37:56 81

原创 外卖心得day03

细节就是前端给过来code,我用一个dto接收,返回的data是vo,然后我就去调用service的接口给他传进去,让service返回user对象,我要用这个对象去构造jwt令牌(这个和用户端一样),然后就返回一个vo,我这里用的是构造器创建(保证这个类上面有@Builer注解),返回就行。首先我们以及封装了调用其他路径的方法,这里自需要传入wx那个固定路径和code参数就行,所以我们先封装成一个方法。mapper就不看了。还有一个就是拦截器里的方法几乎一样,主要就是那个判断是不是拦截到了动态方法。

2026-01-30 18:39:33 49

原创 外卖心得day02

首先joinPoint表示的就是拿到了这个连接点,调用.getS...方法就是拿到了这个函数的元数据(全部的信息)。(有点类似与拿到了这个类的字节码文件),那我拿到了全部信息,我就要得到这个方法才能得到更加细致的细节,所以signature.getMethod就相当于得到了这个方法(就是类似与调用类的字节码文件.getmenthod等方法得到一个方法),然后你要看注解里边的值是什么,首先就是拿到注解,这就和反射里的规律一样了,但是注意因为一个方法上注解很多,所以要指定对应注解的字节码文件。

2026-01-29 17:17:26 262

原创 外卖心得day01

4.要统筹全局,比如说要修改用户的状态,就是修改一个字段这种接口,因为一会我们还要写修改用户的几口=接口,所以我们就完全可以,直接给mapper传入一个对象,而不是仅仅开发这一个方法,比如就修改状态码给的是id和status,我们不能按照注释的写,应该传入一个完整的对象,在后面修改员工的时候就可以直接调用这个接口。1.首先导入项目一开始就要养成编译的习惯,编译报错的原因可能在于依赖的版本和你用的jdk不匹配,我就改了好久才发现,原来我用的是jdk21,@Api这个放在类上,你要说明的时候要加一个参数才行。

2026-01-28 18:37:25 183

原创 机器学习 Day18 Support Vector Machine ——最优美的机器学习算法

我们只说SVM用于分类的推导,并且只说用于二分类的推导,多分类会由二分类得到数据在空间中常常被分为3类:线性可分,近似线性可分,线性不可分,在SVM中分别对应的就是硬间隔,软间隔,核技巧,文章会一一解释:最直观的想法就是我们可以直接通过一条线对这个线性可分的模型进行处理,比如说就是这条直线(二维是直线,高维就是超平面了),直线方程可以是图中方程,然后我们给一个预测样本,我们就去带入这个超平面,如果这个在上方就是正类,下方就是负类,所以模型就是这样:我们承认的是一般情况下如果存在一条直线可以把 两个类分开,那

2025-05-18 17:46:31 1527

原创 机器学习 Day17 朴素贝叶斯算法-----概率论知识

优缺点优点理论基础与效率:源于古典数学理论,分类效率稳定。像在文本分类场景中,能快速处理大量文本并分类。数据适应性:对缺失数据敏感度低,算法简单。实际应用中,即使数据存在部分缺失,也不影响整体分类效果(因为我们计算的是属于某一类的概率,概率比较大小即可,缺失数据不影响)。分类性能:分类准确度较高且速度快,在文本处理等领域广泛应用。缺点特征关联问题:基于样本属性独立性假设,当特征属性存在关联时,分类效果不佳。例如在分析金融数据时,一些经济指标间存在内在联系,朴素贝叶斯假设会导致偏差。先验概率依赖。

2025-05-14 18:28:00 1592

原创 机器学习 Day16 聚类算法 ,数据降维

主要参数KMeans(n_clusters=8) # n_clusters指定聚类中心数量# 常用方法estimator.fit(x) # 训练模型estimator.predict(x) # 预测类别estimator.fit_predict(x) # 训练+预测旨在从数据中包含的众多特征(属性、指标等)里,找出主要特征,剔除冗余或无关变量。例如分析鸟类相关数据时,羽毛颜色、眼睛宽度等都是可能的特征,需筛选出对研究目的(如区分鸟类种类等)有重要作用的特征。

2025-05-14 17:28:20 1172

原创 机器学习Day15 LightGBM算法

我们可以把特征做一个分割后去分配给每个机器,比如说我把100个特征按10个10个分组打包给10个机器,由每个机器对于每个特征去进行直方图统计,每个特征会产生一个最优的增益分割点,这样的话每个机器会产生一个最优增益特征分割点,然后把每个机器的进行比较,得到最优的特征的直方图分割点,然后按照这个进行划分即可。8.算法总体看法:lightgmb算法并不是一个固定的算法,更像是一个框架,因为我们可以使用不同的增益去构造树,对应的损失也不同,你比如说是使用xgboost的一个增益的话,损失就是带有正则化的一般损失;

2025-05-01 23:15:52 862

原创 机器学习 Day14 XGboost(极端梯度提升树)算法

1.算法的原理(预测函数,损失函数,优化方法)预测函数和优化方法:从极端梯度提升树我们就会知道,XGboost也是一类提升树,所以预测函数 一般是权重为1的回归决策树(因为涉及到求梯度,要求回归)的求和,优化算法是向前分步算法,即每一步求一个最优决策树损失函数:就是在原本的损失函数上增加一个正则化项(GBDT算法加上正则化项),以此来减小过拟合的分险,具体在XGboost算法里是加上每棵树的惩罚:所以现在我们去优化带正则项的损失函数就行,我们接下来对它 进行化简:2.原理推导,手写推导说明OBJ只与当前构造

2025-04-24 18:11:40 1742

原创 机器学习 Day13 Boosting集成学习方法: Adaboosting和GBDT

(b)步骤就是我们以前讲过的回归决策树的构造,(c)步骤的意思就是在求解第m个决策树第j个节点上的回归值,是通过最小化损失函数计算得到的,观察那个式子,就是我们把在这个节点上的样本回归值都用c表示,c可以是得在这个节点上的总损失最小,那个fm-1(x)+c,就是表示我上一轮的值加上这个c与真实值的损失最小。他的损失函数是一般的损失函数,我们用L(y,f(x))表示 ,GBDT的核心目标是:确保每增加一个学习器,总损失不会增加,即第m步比第m-1步的总损失不大。如何计算每个学习器的占比权重。

2025-04-21 20:03:57 896

原创 机器学习 Day12 集成学习简单介绍

集成学习是一种通过组合多个模型来提高预测性能的机器学习方法。超级个体vs弱者联盟单个复杂模型(如9次多项式函数)可能能力过强但容易过拟合组合多个简单模型(如一堆1次函数)可以增强能力而不易过拟合集成学习通过生成多个分类器/模型,将它们的预测结果组合起来,通常能获得优于任何单一分类器的预测性能。

2025-04-20 22:33:58 911

原创 机器学习 Day11 决策树

特征提取是将原始数据(如文本、图像、字典等)转换为机器学习算法可以理解的数值特征的过程。这是机器学习预处理的关键步骤。主要分类字典特征提取(特征离散化)文本特征提取图像特征提取(之后讲)One-Hot编码是将分类变量转换为机器学习算法更易理解的形式的过程。它为每个类别创建一个新的二进制特征(0或1)。

2025-04-17 11:34:54 1311

原创 机器学习 Day10 逻辑回归

类别不平衡是指数据集中不同类别的样本数量差异很大的情况。一个三分类问题,其中:类别0: 64个样本(1.28%)类别1: 262个样本(5.24%)类别2: 4674个样本(93.48%)这种极端不平衡会导致模型偏向多数类,忽视少数类。

2025-04-09 22:44:35 1197

原创 机器学习 Day09 线性回归

全梯度下降算法(FG)原理:计算训练集所有样本误差并求平均作为目标函数,利用所有样本计算损失函数关于参数theta的梯度,权重向量沿梯度反方向移动。公式为:优缺点:优点是能准确朝着最优解方向更新;缺点是计算所有样本梯度,速度慢,无法处理超内存数据集,不能在线更新模型。随机梯度下降算法(SG)原理:每次只代入计算一个样本目标函数的梯度来更新权重,不断重复,直至损失函数值满足停止条件。迭代公式为(无求和了):优缺点:优点是简单高效,可避免收敛到局部最优解;缺点是仅用单个样本迭代,

2025-04-08 23:47:58 1386 1

原创 机器学习 Day09 KNN算法

背景与目的:在 KNN 算法中,当数据集很大时,线性扫描(穷举搜索)计算输入实例与每个训练实例的距离非常耗时。kd 树是为解决 KNN 快速 k 近邻搜索问题而引入的特殊数据结构,通过保存距离信息,减少距离计算次数,提升搜索效率,优化后算法复杂度可降低到O(DNlog (N))。原理:kd 树是一种平衡二叉树 (子树深度差不超过1),对 k 维空间中的实例点进行存储以便快速检索。

2025-04-06 16:51:10 941

原创 机器学习 Day08,案例实现,代码学习,数据分析基本完成

1.另一种形式的绘制多个图(之前是用坐标系来控制每个图的样式)学习第一点:plt可以和sns结合使用,plt可以设置sns图的一些格式很全面。设置seaborn的绘图风格为darkgrid,即深色网格背景,让图形更美观学习第三点:plt.subplot(a,b,c)是。

2025-03-19 13:59:33 1391

原创 机器学习 Day07seaborn库绘图学习

1.单变量绘制(直方图,核密度曲线图)

2025-03-18 20:57:23 1153

原创 人工智能 Day06 pandas库进阶

统一缺失值形式:若存在缺失值但不是np.nan的形式,使用将其替换为np.nan。判断是否存在缺失值:使用,若结果为True,表示不存在缺失值,不做处理;若为False,表示存在缺失值,继续下一步。填充缺失值:使用统计学指标值(如均值mean、中位数median等 )对缺失值进行填充,如。2.数据的离散化连续属性离散化是在连续属性值域上划分若干离散区间,用不同符号或整数值代表落在各子区间的属性值。

2025-03-16 21:48:08 862

原创 机器学习 Day05 pandas库

Series 是 Pandas 中类似于一维数组的数据结构,能保存整数、字符串、浮点数等任何类型数据,由数据和相关索引两部分构成。就像一个有序的键值对集合,索引相当于键,数据相当于值。DataFrame 是 Pandas 中类似二维数组或表格(如 Excel)的对象,兼具行索引(横向,axis=0 )和列索引(纵向,axis=1 ) ,方便对二维数据进行操作和管理。apply。

2025-03-15 22:13:10 1270

原创 机器学习 Day03 Numpy基本使用

用于创建一个指定形状(shape)和数据类型(dtype)的数组,数组元素全部初始化为 1。shape是一个整数或整数元组,表示数组的维度大小;dtype可选,指定数组元素的数据类型,默认是float64。:以给定数组a为模板,创建一个形状和a相同的数组,元素全部初始化为 1。同样,dtype可选,用于指定新数组的元素类型,若不指定,则沿用a的元素类型。:创建一个指定形状(shape)和数据类型(dtype)的数组,元素全部初始化为 0。参数含义与np.ones类似。:根据给定数组a。

2025-03-10 13:15:49 1305

原创 机器学习 Day02,matplotlib库绘图

1.matplotlib图像结构2.基本画图框架模块。这是 Python 中一个用于数据可视化的强大模块,其中的函数与 Matlab 的绘图函数类似,方便易用,一般通过导入。以下是使用:使用:以折线图为例,假设我们有一组数据,使用plt.plot():使用plt.show()函数展示绘制好的图像3.基本修饰3.1图的刻度:如第二张图代码所示,先导入和random模块。通过range(60)生成表示 60 分钟的横坐标数据x,使用生成 15 到 18 度之间的随机温度数据y_shanghai作为纵坐标。

2025-03-08 16:41:54 1158

原创 机器学习 Day01人工智能概述

监督学习:输入数据由特征值和目标值组成,输出可以是连续值(回归问题,如根据房屋平米数预测房价),也可以是有限个离散值(分类问题,如根据肿瘤特征判断其良性或恶性)。无监督学习:输入数据只有特征值,无目标值,数据未被标记。通过样本间的相似性对样本集进行类别划分,比如对不同人物按特征分类。半监督学习:训练集包含有标记和未标记的样本数据。一种训练方式是先对大量未标记数据由专家打标签,生成大量标记数据用于监督学习训练模型;另一种是专家只对少量未标记数据打标签,结合标记和未标记数据进行半监督学习。

2025-03-08 15:36:25 1155

原创 数据库完结 Day04

1.数据库设计三范式范式是在设计关系数据库时遵循的不同规范要求,这些不同的规范要求就是范式,目的是设计出合理的关系型数据库。不可再分在满足第一范式的基础上,表必须有一个主键,要求表中的所有非主属性完全依赖于主键在满足第二范式的前提下,消除非主属性对主键的传递依赖通过外键关联,以符合第三范式范式等级越高,数据库冗余越小。但也并非范式越高越好,过高的范式可能会导致表数量增多,增加连接查询的复杂度和性能开销。在实际设计中,需根据业务需求和性能要求,在数据冗余和查询效率间权衡选择合适的范式。contact。

2025-03-05 17:08:45 1155

原创 数据库 Day03

1.Mysql实战1.1我们先创建一个数据库看一个难的:我们无法直接得到每种类型中最贵的,这个例子告诉我们使用内连接可以起到数据筛选的作用。good表:1.2由删除引发的异常而且如果apple变成了华为,我们直接在品牌表里进行更改就可以了,避免对原表进行大量修改。第一行if not exists 表示如果没有才会创建。第三行 我们的种类表id是自己增长的,只需要插入name即可,当我们一次性加入时不需要加values了。2.外键。

2025-03-04 21:17:25 675

原创 数据库 Day02

1.where语句1.1作用:在 SQL(Structured Query Language,结构化查询语言)中,WHERE子句主要用于在SELECTUPDATEDELETE等语句中对数据进行筛选,它可以根据指定的条件从表中选取满足条件的行,从而缩小查询或操作的范围,提高数据处理的准确性和效率,下面介绍在查询语句中的用法,其他类比.1.2比较运算1.3逻辑运算1.4模糊查询1.5范围查询1.6 空值判断1.7结合order排序1.8聚合函数2.1group分组group bycount。

2025-03-03 20:16:19 700

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除