- 博客(59)
- 收藏
- 关注
原创 【Spring AI】一句话让AI自己在电脑上操作文件
我们经常使用AI解决日常生活中的问题,但是AI智能给出一些它自己的见解,并不能够实际的去进行操作。也就是你无法让大模型代替你去执行具体的去执行某个操作。本篇文章我将以MCP的方式结合Spring AI演示如何让大模型能够听从你的指令并执行前面的文章我已经讲解过如何搭建Spring AI工程和MCP Server。我这里就举一个简单的例子来演示其集体的过程,也就是 让大模型创建文件并写入内容
2025-06-07 14:26:34
386
原创 【JVM】三色标记法原理
在JVM中,三色标记法是GC过程中对象状态的判断依据,回收前给对象设置上不同的三种颜色,三色分为白色、灰色、黑色。根据颜色的不同,决定对象是否要被回收。
2025-06-05 14:44:46
548
原创 应用智能化转型—MCP原理分析
当下AI风头正盛,许多行业都已经进入AI赋能的道路,无论是服务业、工业、还是软件行业。本篇文章我将以软件的智能化转型之MCP原理分析为主题讲解其具体实现方案 在当下许多企业内部系统,或者是各种在线服务平台,他们拥有着庞大的用户量和复杂的业务,光是一些操作和业务都已经够头疼的了,而如果让其进行智能化转型,通过引入大模型帮助用户完成任务,那么会大大提高效率。
2025-06-03 11:31:20
701
原创 Java中的引用类型以及区别的特点
在java红有四种引用类型,分别是强引用、软引用、弱引用、虚引用。他们的主要区别是控制对象生命周期和垃圾回收的行为
2025-05-31 20:05:26
287
原创 【Spring AI】Spring AI 1.0.0-M7、M8更新至1.0.0版本兼容的所需修改要点
Spring AI更新的速度非常快,在一个月之前我还在用着最新的M7版本,中间经过M8、1.0.0RC1,现在马上就到了1.0.0正式版。正式版当然也新增了许多东西。 因为大多数人都在用M7和M8版本的Spring AI,本篇文章我就介绍一下M7、M8版本向1.0.0版本做兼容时主要需要修改的点
2025-05-27 17:43:34
1013
原创 通过上传使大模型读取并分析文件实战
我们日常在使用AI的时候一定都上传过文件,AI会根据用户上传的文件内容结合用户的请求进行分析,给出用户解答。但是这是怎么实现的呢?在我们开发自己的大模型应用时肯定是不可避免的要思考这个问题,今天我会将从文件上传开始到大模型给出分析的整个流程进行讲解
2025-05-23 16:56:31
1244
原创 【Spring AI】本地大模型接入MCP实现联网搜索
本地大模型的知识库都是在训练时获取的信息,所以实时性较差,又因为大模型本身并不具备联网查询的功能,所以在使用时无法获得实时性较强的内容,导致功能局限性较强。本篇我将介绍如何让本地部署的大模型能够借助互联网来获取实时性的信息。
2025-05-16 15:26:39
1666
原创 【Spring AI】模型记忆持久化 + 自动加载记忆上下文
当我们利用大模型进行开发时,有时会因为项目重启而丢失模型的记忆,会给开发的过程带来不方便我们在配置ChatClient时,由于想要实现模型的记忆,便需要管理会话信息,而Spring AI给我们提供了Advisors的自动管理机制,其有两种实现方式,即内存记忆和缓存记忆,但是其根源都是建立在缓存中,主机重启都会数据丢失。
2025-05-12 08:00:00
720
原创 Java零组件实现配置热更新
在实现配置热更新和软件即插即用的需求时,避免引入复杂插件是关键。本文提出了一种替代Nacos等配置中心的方法,通过创建本地配置文件实现配置刷新。Springboot默认的配置文件加载优先级为外部启动命令>配置文件>本地配置文件,而Nacos通过bootstrap实现外部配置文件预加载。本文方法通过创建外部配置文件实现类似效果。具体实现中,当用户选择不同服务时,系统读取并修改外部配置文件,然后执行刷新操作,系统将优先读取外部配置文件信息。代码示例展示了如何通过独立线程池执行配置刷新
2025-05-10 21:31:19
598
原创 【Spring AI】带你从零搭建一个本地大模型可视化对话应用,告别联网!(已开源)
我们在将大模型部署到本地后,是否会因为命令行界面而感到不方便呢?我今天将带领大家使用Spring AI搭建一个轻量级的可视化对话应用,我将在文章中展示大部分核心代码。从此大家只需要拉取模型,或者将训练后的模型导入到ollama,直接使用该应用即可实现本地模型的调用,从此告别排队! 项目名称Local_Helper,目前初测已经通过,并开源到了gitee,大家可以直接进行拉取;项目仍会继续维护,部分功能还在开发中,欢迎大家给出改进建议!
2025-05-04 18:13:43
1085
1
原创 Elastic Search 的安装、使用方式
elasticsearch是一款非常强大的开源搜索引擎,支持的功能非常多。数据库模糊查询随着表数据量的增多,查询性能的下降会非常明显,而搜索引擎的性能则不会随着数据增多而下降太多。目前仅10万不到的数据量差距就如此明显,如果数据量达到百万、千万、甚至上亿级别,这个性能差距会非常夸张。数据库的模糊搜索功能单一,匹配条件非常苛刻,必须恰好包含用户搜索的关键字。而在搜索引擎中,用户输入出现个别错字,或者用拼音搜索、同义词搜索都能正确匹配到数据。
2025-05-01 16:16:20
946
原创 【Spring AI】Java结合ollama实现大模型调用
在较新的Java版本中,编译器已经支持了接入各种AI模型工具进行开发,这篇文章我会介绍如何利用Spring AI进行大模型的调用的基础方法
2025-04-30 11:56:46
1647
原创 LLaMA-Factory微调后模型导入ollama
在上一篇文章我讲了如何利用LLaMA-Factory微调大模型,这一篇我会简单的讲一下如何将训练完成后的模型导出并加载到ollama供自己调用
2025-04-30 11:10:04
401
原创 LLaMA-Factory部署以及大模型的训练(细节+新手向)
LLaMa-Factory支持市面上各种各样的开源大模型,并且内置多种微调方式,比如lora、full、freeze,丰富的微调参数可供调整。提供了简洁的UI界面,并且支持验证、简单对话等功能
2025-04-28 14:35:15
1501
原创 Java结合Rabbit MQ实现消息异步处理
在业务的执行链中通常会有一些业务与当前业务链的执行不是强绑定关系,比如,用户购买一个商品,大致包含创建订单->库存预扣减->进行支付->修改订单状态->清空购物车->发送下单成功的短信这一系列流程。其中前面的各个操作都是需要同步执行的,而发送短信并不需要强一致性,允许出现时间误差,并且发不发送短信都不影响结果。所以为了加快程序的执行效率,可以将短信的执行采用消息队列进行异步处理。
2025-04-27 15:37:49
1082
原创 Long类型封装Json传输时精度丢失问题
在信息做传输时,经常会使用到类型转换,这个时候因为一些问题会导致精度的丢失。在支付业务中这种问题更为致命。
2025-04-24 10:32:34
642
原创 实现支付宝沙箱环境搭建
在业务开发的过程中,有时会涉及到一些支付相关的功能,这个时候就需要接入第三方支付接口,而由于开发中需要不断进行测试,使用真实的账号进行支付就有些不值得,所以支付宝为我们提供了第三方SDK,供我们在虚拟的环境中实现支付功能测试。 第三方支付接口流程大同小异,与真实支付的流程完全一致。沙箱环境是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。并且其具有天然的方便性,沙箱环境与正式环境的域名仅仅相差一个dev,
2025-04-23 17:02:17
1520
原创 ollama部署大模型以及连续分片调用的实现
经过近百次的尝试,我发现通过代码直接部署大模型的不稳定性以及操作、技术上的难度远远超过了其本身的价值,尤其是对于初学者以及硬件能力较弱的机器。而采用ollama直接一键部署大模型则显得更加有优势,其在模型的控制上更稳定,模型库包含了大量不同大小的模型的不同量化版本,一键部署更加方便。 上一篇文章我介绍了通过Python环境直接使用代码部署大模型的示例,本篇我将借助ollama完成同样的功能演示。
2025-04-22 15:56:14
936
原创 基于RBAC结合Spring Security 实现用户授权
在业务场景中,我们不希望所有的功能可以随意地被使用,所以通常会将不同的功能让不同的用户由权限去使用,称为权限控制,我将介绍一种强大、易控制、耦合性低的方法去实现这个需求,即结合Spring Security的RBAC权限控制。
2025-04-17 10:58:49
795
原创 Python部署大模型以及连续调用功能实现(性能优化+输出控制)
当我们想要部署一个自己的本地ai助手时,如果不想通过一些工具。比如ollama进行协助,而是想要实现更灵活、对性能更可控的方式时,你可以采取直接使用python环境通过代码运行模型文件,以下我将演示如何实现这一功能
2025-04-16 08:00:00
1204
原创 Method has too many Body parameters:错误解决方法
FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Method has too many body parameters
2025-04-15 11:08:39
727
原创 【数据结构】红黑树超详解 ---一篇通关红黑树原理(含源码解析+动态构建红黑树)
【数据结构】红黑树超详解 ---一篇通关红黑树底层原理(含源码解析+动态构建红黑树)
2025-04-11 12:39:48
2644
1
原创 模板引擎Freemarker使用教程
FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
2025-04-08 17:55:44
1978
原创 使用OpenFeign实现服务远程调用
在微服务架构中,由于业务功能的分工不同,我们把项目拆分为多个独立的服务,并常常将其部署在不同的服务器上,这个时候如果服务A的某个功能需要借助服务B来实现,那么这个时候如何去调用就成了问题,目前有一种常用的服务调用方OpenFeign,用其可以实现服务之间的调用。
2025-04-05 17:18:55
775
原创 分布式事务的原理及解决方案
是指在一系列数据库操作当中,存在需要通过网络对远程的数据库进行数据操作的行为。在多个业务场景下都可能呢会出现分布式事务问题,比如“微服务架构”、“多服务单数据库”、“单服务多数据库”,只要是存在远程调用都存在分布式事务问题。
2025-04-03 11:15:00
1057
2
原创 使用分布式文件系统minio实现文件上传
MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用,它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。我将在本篇展示如何进行文件的上传
2025-03-31 18:02:55
1517
2
原创 JVM中的垃圾回收算法
在Java虚拟机(JVM)中,垃圾回收(Garbage Collection, GC)是自动内存管理的核心机制,负责回收不再使用的对象以释放内存。以下是几种垃圾回收器的原理及优缺点:
2025-03-27 10:57:47
870
原创 使用xxl-job实现分布式任务调度
在一些任务量比较繁重的模块中,我们为了提高执行效率,通常会使用多线程加快执行速度。但是其缺点就是不够灵活,而xxl-job就解决了这一问题,其基于分布式的思想配合多线程统一对任务进行调度,并提供了多种调度方案,我将从安装xxl-job开始介绍这一组件的使用。
2025-03-23 17:11:39
1361
原创 Mysql深分页的解决方案
在数据量非常大的情况下,深分页查询则变得很常见,深分页会导致MySQL需要扫描大量前面的数据,从而效率低下。例如,使用LIMIT 100000, 10时,MySQL需要扫描前100000条数据才能找到第10000页的数据。在MySQL中解决深分页问题,可通过以下5种优化方案实现
2025-03-21 08:00:00
591
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人