- 博客(84)
- 资源 (1)
- 收藏
- 关注
原创 Lombok 包底层浅析
Lombok 是 Java 最常用的代码简化工具包,它能通过注解自动生成 getter、setter、构造方法、toString 等代码,不用手写重复代码!
2026-04-11 22:51:35
201
原创 Nacos配置MySQL报错:Failed to configure a DataSource: ‘url‘ attribute is not specified...
Nacos配置MySQL报错:Failed to configure a DataSource: 'url' attribute is not specified...
2026-04-04 14:57:59
331
原创 SpringDoc OpenAPI 泛型返回值完美解决方案
SpringDoc OpenAPI 在处理泛型返回类型时,@Schema 注解标注在泛型类 R<T> 上,但没有使用 implementation 属性指定泛型的具体类型。SpringDoc 无法在运行时自动推断泛型参数 T 的实际类型,因此所有接口都显示相同的 data 结构(通常是 Object 或第一次解析到的类型)。
2026-03-30 16:50:18
339
原创 CRAG、Self-RAG、Adaptive RAG 经典论文总结概要
这三篇论文是 RAG 从 1.0(简单检索)迈向 2.0(智能反思与自适应)的奠基之作。作为 Java 开发者,可以将它们理解为在检索流程中加入了 “校验拦截器” 、 “逻辑判断分支” 和 “递归补偿机制”。
2026-03-29 22:25:34
368
原创 从聊天机器人到业务执行者:Agentic Orchestration 如何重构 Java 后端体系
Agentic Orchestration 是以大模型为决策大脑,通过编排能力赋予 AI 任务拆解、工具选择、执行规划与异常自愈的能力。
2026-03-29 22:19:06
430
原创 从“搜了就答”到“智能决策”:拥抱 RAG 2.0 时代的架构演进 ——Java 后端工程师视角下的 AI 应用工程化落地
2026 年,RAG 已经进化到了 2.0 阶段。它不再是简单的线性流程,而是一个具备反思(Reflection)、多步推理(Reasoning) 和 自我迭代 的智能代理架构。
2026-03-29 20:46:19
423
原创 后过滤召回塌陷:Redis 先召回 → ES 再过滤,如果全部被过滤掉怎么办?
后过滤召回塌陷:Redis 先召回 → ES 再过滤,如果全部被过滤掉怎么办?
2026-03-24 21:07:55
434
原创 CompletableFuture 与 Future 对比与实战示例
在 Java 异步编程中,`Future` 是早期用于获取异步任务执行结果的接口,但在实际复杂业务场景下存在明显缺陷。Java 8 推出的 `CompletableFuture` 实现了 `Future` 与 `CompletionStage` 接口,彻底解决了传统 `Future` 的痛点,支持流式调用、任务编排、异常处理、回调通知等强大能力,成为后端异步开发、高并发接口优化的核心工具。
2026-03-19 21:57:46
350
原创 AI 流式聊天接口实现(WebFlux+SSE)
在基于RAG的问答Agent系统中,流式返回是提升用户体验的关键——用户无需等待完整回答生成,就能实时看到内容滚动展示。以下是Spring Boot环境下,基于WebFlux+SSE(Server-Sent Events)实现的AI流式聊天接口完整实现、代码解析及落地注意事项,适配RedisSearch+ES检索上下文、大模型异步流式调用的核心场景。
2026-03-19 21:45:46
381
原创 Agent 与 RAG 效果评估::全自动化评估体系落地实践
在企业级大模型落地中,基于RAG的问答Agent已经成为标配,但长期以来有两个痛点一直困扰着工程与算法团队:一是问答效果怎么科学评估,二是RAG本身检索质量怎么量化,三是人工抽检成本太高无法规模化。很多人容易把“问答Agent评估”和“RAG效果评估”混为一谈,实际上两者职责不同、指标不同、评估逻辑完全不一样。本文就把两套评估体系讲清楚,并给出一套可直接落地的LLM-as-Judge自动化验证流程,告别人工逐条判题。
2026-03-19 20:58:40
476
原创 从对话到执行:OpenClaw 与 MCP 协议深度解析
在 AI Agent 的发展历程中,早期的架构(LLM + Memory + Planning + Tool + Action)解决了“如何思考”的问题。然而,如何让 Agent 在复杂的本地环境安全、标准、自主地“干活”,则是 OpenClaw框架与 MCP 协议共同解决的核心命题。
2026-03-19 16:26:18
477
原创 面试官必问:令牌桶(Token Bucket)原理与Java实战详解
在高并发系统设计中,限流是保护系统稳定性的“第一道闸门”。我们之前聊过缓存三剑客,其中**限流**是核心手段之一。在众多限流算法中,令牌桶算法因其支持突发流量和流量平滑*的特性,成为了企业生产环境(如网关层、API接口)的首选方案。本文将从底层原理、代码实现、企业级落地方案三个维度,彻底搞懂令牌桶。
2026-03-19 11:53:50
426
原创 FST = DFA + 输出映射 + 压缩能力
理解“FST = DFA + 输出映射 + 压缩能力”这个核心公式,本质是要拆解 FST(有限状态转换器)在 DFA(确定有限自动机)基础上的两大核心扩展——输出映射和压缩能力。
2026-03-16 17:40:34
301
原创 深度解析HNSW:向量检索的“性能王者”(附Java实战代码)
在向量检索成为RAG、推荐系统、图像检索核心能力的今天,HNSW(Hierarchical Navigable Small Worlds,分层可导航小世界)凭借“高召回+低延迟”的特性,成为工业界最主流的近似最近邻(ANN)算法。本文将从原理、核心参数、Java实战(原生+RedisSearch集成)三个维度,彻底讲透HNSW的落地逻辑。
2026-03-16 16:51:11
503
1
原创 深入理解 float32(单精度浮点数)转 float16(半精度浮点数)的底层原理
深入理解 float32(单精度浮点数)转 float16(半精度浮点数)的底层原理。
2026-03-16 16:05:57
461
原创 RedisSearch 和 Elasticsearch 的 HNSW向量索引对比
RedisSearch 和 Elasticsearch 的 HNSW向量索引对比。
2026-03-15 21:47:17
385
原创 数据库索引为什么不选择跳表(Skip List)作为核心索引结构
数据库索引通常不选择跳表(Skip List)作为核心索引结构,主要是因为在磁盘存储、范围查询、空间利用率、稳定性等方面,跳表不如 B+Tree。这也是为什么绝大多数数据库(如 MySQL、PostgreSQL、Oracle Database)的主索引结构都是 B+Tree。
2026-03-15 21:31:44
204
原创 新手入门 Elasticsearch:从文档操作到底层数据结构,一文吃透核心逻辑
在学习 Elasticsearch时,很多新手都会经历一个过程:能写 API,但不知道 ES 为什么这么设计。比如:文档到底怎么写进去?为什么更新不是直接修改?Refresh / Flush 到底区别是什么?跳表、FST、倒排索引各干什么?ES 和数据库本质差异在哪?本文从文档操作 → 分布式机制 → Lucene底层结构一步步拆解,用通俗语言 + 真实实现逻辑,帮你建立 正确的 ES 概念。
2026-03-15 21:29:48
329
原创 美团Leaf发号器
美团Leaf是美团开源的分布式ID生成服务,核心提供号段模式(Leaf-segment)与雪花算法模式(Leaf-snowflake)两种方案,兼顾全局唯一、高可用、高性能。
2026-03-15 09:25:29
323
原创 RPC超时原因
RPC 超时,就 2 个方向:上游问题 + 下游问题+中间链路问题。业务本身要 500ms,你超时只设 200ms,必超时。FullGC 一卡 1~2 秒,RPC 还没发就超时了。上游线程不够用,请求发不出去,直接超时。下游忙不过来,请求排队,排到超时。下游 FullGC,整个服务卡住。二、下游(服务提供方)原因。网络抖动、防火墙、网关限流。注册中心问题(Nacos)一、上游(调用方)原因。直接连不上 = 超时。◦ 调用第三方接口慢。◦ Redis 阻塞。→ 接口一直不返回。
2026-03-13 17:36:03
119
原创 MySQL进阶实战:精油功效筛选场景下的窗口函数与多条件过滤优化
在业务开发中,我们经常遇到“多条件筛选+统计排序”的场景,比如根据多个功效名称筛选精油、按精油关联的功效总数(入度)排序。本文结合“精油-功效关联查询”的真实业务场景,拆解MySQL中**窗口函数、条件统计、GROUP BY/HAVING、JOIN关联**等核心知识点,同时分享性能优化和鲁棒性设计的实战技巧。
2026-03-12 22:11:06
219
原创 解决Spring Boot集成MySQL报错:Unsupported character encoding ‘utf8mb4‘ 及JDBC URL参数全解析
在基于Spring Boot开发传统业务服务(如数据导入、CURD操作)时,MySQL数据源配置是基础且关键的环节。近期遇到了「Unsupported character encoding 'utf8mb4'」的经典报错,本文将从问题定位、解决方案、JDBC URL参数解析三个维度,完整梳理MySQL数据源配置的最佳实践。
2026-03-12 16:15:24
347
原创 SpringBoot3 + MyBatis-Plus + MySQL + Swagger最基本配置文件
SpringBoot3 + MyBatis-Plus + MySQL + Swagger 的yml最基本配置写法
2026-03-12 14:27:18
237
原创 基于DFA的敏感词检测
DFA(Deterministic Finite Automaton),中文叫确定有限自动机,是一种高效的字符串匹配算法。
2026-03-02 15:57:41
657
原创 Java单例模式:饿汉、懒汉、DCL三种实现及最佳实践
单例模式是Java设计模式中最基础也最常用的创建型模式,核心目标是**保证一个类在程序运行期间只有一个实例**,并提供全局访问点。本文将详细拆解三种经典单例实现方式(饿汉式、懒汉式、双重校验锁),结合代码示例分析各自的优缺点与适用场景。
2026-03-02 00:45:03
865
原创 向量检索全链路:距离度量、搜索算法与结果重排
本文面向后端、AI 及 RAG 开发者,拆解向量检索全链路的三大核心模块:距离度量(怎么判断“相似”)、ANN 搜索算法(怎么快速找相似)、结果重排(怎么让结果更有用),兼顾理论严谨性与工业界实用性,可直接用于技术分享或开发参考。
2026-02-27 20:13:29
835
原创 RAG分块主流+前沿方法全解析
在构建RAG应用程序的整个流程中,拆分/分块是最具挑战性的环节之一,它显著影响检索效果。目前还没有通用的方法可以明确指出哪一种分块策略最为有效。不同的使用场景和数据类型都会影响分块策略的选择。因此对主流和前沿分块方法进行了整理,希望为开发者落地提供清晰、可直接复用的选型与实现参考。
2026-02-25 18:01:11
687
原创 LangChain4j对接通义千问404问题,原生API与兼容接口不可混用
LangChain4j对接通义千问404问题,原生API与兼容接口不可混用
2026-02-06 16:27:55
928
原创 PostgreSQL 16 中文分词插件 zhparser 在 Windows 11 上的编译与安装
PostgreSQL 16 中文分词插件 zhparser(Windows 11 环境)完整编译安装。
2026-02-05 23:58:34
956
原创 避坑指南:LangChain4j 集成 pgvector 时的字段名陷阱
LangChain4j 的 PgVectorEmbeddingStore 驱动采用了“约定优于配置”的设计,其内部 SQL 语句硬编码了字段名。
2026-01-26 14:03:09
624
原创 pgvector 源码手动编译,并解决向量引擎的兼容性问题
pgvector 源码手动编译,并解决向量引擎的兼容性问题(PostgreSQL 16)
2026-01-22 12:27:12
395
PostgreSQL 16 pgvector编译后文件(可直接copy使用)
2026-01-22
包含haarcascade_frontalface_default.xml等所有xml文件
2020-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅