
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
作为一名 Java 开发者,每天最怕的不是写不出 Bug,而是早上满怀信心地打开 IntelliJ IDEA,准备大干一场时,发现——,或者满屏的红色波浪线报错,提示找不到依赖。这时候你可能会纳闷:“明明pom.xml文件就在那儿,图标也是蓝色的 Maven 图标,看起来一切正常啊?别被骗了,这很可能是 IDEA 又“抽风”了。它虽然显示了 Maven 文件,但实际上并没有真正识别并加载你的 Ma

特征维度线程安全❌ (单线程极致性能)✅ (高并发安全)并发护城河无锁CAS + synchronized 锁头节点扩容逻辑高低位平移单线程搬运多线程协同 Help Transfer 搬运Null 支持允许 Key 和 Value 为 Null❌ 严禁出现 Null。

反射:在运行状态中,对于任意一个类都能知道类里面的所有属性和方法,对于任意一个对象都能调用它的方法和属性。让程序在运行时通过“查字典”(读字节码)来动态决定要做什么,从而实现代码逻辑与具体实现(如数据库驱动、插件)的完美解耦。通过改配置文件(yaml)不需要改代码不需要重新编译。JDBC 驱动加载为什么要用反射?如果直接写 new Driver(),你的代码就和 MySQL 这种特定的数据库强绑定

1.Excepti(异常):Exception类及其子类表示程序在运行过程中可能遇到的、可以被捕获和处理的异常情况,通常是由于外部因素(网络中断,文件不存在)或者程序逻辑错误导致的。泛型:参数化类型,是一种可以表示其他数据类型的数据类型,解决数据类型的安全问题,在类声明或实例化时只要指定好具体类型即可。作用:泛型强制在编译时检查类型匹配,自动处理类型转化,,无需手动强转,代码复用,实现通用算法和数

受限于大语言模型(LLM)的上下文窗口限制(Token Limit),以及向量模型在长文本提取核心语义时的局限性,我们需要将长篇大论的长文档“切碎”,变成一段段独立且短小精悍的文本块。这就是文档分块(Chunking)。这就好比在图书馆里找资料,我们找的不是某一本书,而是书中对应具体知识点的那几页。如果说向量检索是“海选”,为了效率通常选出几十个候选者(如 Top 20);那么重排就是“终面”。

简单来说,Embedding 就是把人类的文字(词语、句子、甚至图像),翻译成计算机能懂的一长串数字(数组)。这串数字,在数学上就叫作“向量”。我们可以把向量在这个多维空间里想象成一个具体的“坐标”。语义相近的词(比如“高兴”和“开心”),它们在空间中的坐标离得非常近。语义无关的词(比如“高兴”和“水杯”),它们在空间中的坐标离得很远。我们不再匹配字面,而是匹配“意思”。这就是我们在 RAG 架构

简单来说,Embedding 就是把人类的文字(词语、句子、甚至图像),翻译成计算机能懂的一长串数字(数组)。这串数字,在数学上就叫作“向量”。我们可以把向量在这个多维空间里想象成一个具体的“坐标”。语义相近的词(比如“高兴”和“开心”),它们在空间中的坐标离得非常近。语义无关的词(比如“高兴”和“水杯”),它们在空间中的坐标离得很远。我们不再匹配字面,而是匹配“意思”。这就是我们在 RAG 架构

受限于大语言模型(LLM)的上下文窗口限制(Token Limit),以及向量模型在长文本提取核心语义时的局限性,我们需要将长篇大论的长文档“切碎”,变成一段段独立且短小精悍的文本块。这就是文档分块(Chunking)。这就好比在图书馆里找资料,我们找的不是某一本书,而是书中对应具体知识点的那几页。如果说向量检索是“海选”,为了效率通常选出几十个候选者(如 Top 20);那么重排就是“终面”。

受限于大语言模型(LLM)的上下文窗口限制(Token Limit),以及向量模型在长文本提取核心语义时的局限性,我们需要将长篇大论的长文档“切碎”,变成一段段独立且短小精悍的文本块。这就是文档分块(Chunking)。这就好比在图书馆里找资料,我们找的不是某一本书,而是书中对应具体知识点的那几页。如果说向量检索是“海选”,为了效率通常选出几十个候选者(如 Top 20);那么重排就是“终面”。

RAG 就是给大模型装上了一个随时可以查阅的“外挂大脑”或“参考书”。没有 RAG(闭卷考试):模型只能单纯依靠在预训练阶段死记硬背下来的知识(肚子里的墨水)来硬答。遇到没背过或者忘了的题,就只能瞎蒙。有了 RAG(开卷考试):我们给大模型发了一本“参考书”(你的本地知识库)。当被问到问题时,它不再急着直接作答,而是先去书里查阅相关的资料,然后再结合查到的资料进行作答。这样一来,回答的准确率和时效








