- 博客(51)
- 资源 (1)
- 收藏
- 关注

原创 spring源码(1)、idea编译spring源码详细教程
以下源码编译过程是本人按照官方文档实操,并结合国情对一些下载源修改为国内源,如果你是新手建议每一步都安装本教程操作,确保不会出现一些奇葩问题 下载spring源码 建议去码云下载,github下载会比较慢,地址:https://gitee.com/mirrors/Spring-Framework,建议下载标签中的正式版本,我这里下载的是v5.2.0.RELEASE 仓库修改为阿里云 下载源码并解压后,进入Spring-Framework目录修改build.gradle,需要修改两处:
2020-09-06 09:45:37
2780
2
原创 LangChain-6-消息持久化
是一个抽象基类,定义了一系列用于管理聊天消息历史记录的接口和方法。它允许你添加用户和 AI 的消息到历史记录中,检索历史消息,以及清理历史记录。不同的子类实现了不同的持久化策略,例如内存存储、文件存储、数据库存储等。#向聊天历史记录中添加用户发送的消息history.add_user_message("你好今天过得怎么样")#向聊天历史记录中添加 AI 生成的回复消息history.add_ai_message("我没有真实的生活体验,但随时为你服务!")
2025-07-16 17:06:02
242
原创 LangGraph-2-interrupt 流程中断
是 LangGraph 中一个强大的流程控制机制,允许在状态机执行过程中根据特定条件中断当前流程并跳转到其他节点。这一机制可以让开发者在关键操作执行前对条件进行检查,若不满足条件,就提前终止流程,避免不必要的计算或者操作。这一机制可以让开发者在关键操作执行前对条件进行检查,若不满足条件,就提前终止流程,避免不必要的计算或者操作。是两个强大的流程控制机制,允许在节点执行前或执行后插入中断检查。这些机制提供了更精细的流程控制能力,特别适合需要精确管理执行顺序和条件的复杂工作流。在 LangGraph 中,
2025-07-10 18:03:19
144
原创 LangGraph-1-快速入门
LangGraph 是 LangChain 生态系统中的关键组件,专门用于构建的应用程序。它基于图论概念,允许开发者创建复杂的代理工作流,特别适合构建需要循环、分支和协作的智能系统。
2025-07-08 17:48:31
646
原创 Agent调用MCP Server(python,java)案例
使用智谱的网路搜索工具,实现网络搜索mcp_server = FastMCP("我的mcp服务", port="8080")client = ZhipuAI(api_key="") # 填写您自己的APIKey@mcp_server.tool("my_search_tool", description="搜索互联网上的内容,无法联网的情况下使用")"""搜索互联网上的内容"""count=5, # 返回结果的条数,范围1-50,默认10。
2025-07-03 17:48:50
210
原创 向量数据库-Milvus快速入门
混合检索(Hybrid Search)是一种结合全文检索(如 BM25)和向量相似度检索(如 ANN,近似最近邻搜索)的技术,通过融合两者的结果提升检索的准确性和覆盖率。BM25(全文匹配):适用于关键词匹配,捕捉显式语义。ANN(向量匹配):适用于语义理解,捕捉隐式相关性。混合检索在实际应用中可以显著提高召回率和排序质量,尤其适合处理复杂查询或模糊语义场景。混合检索的核心流程数据建模:存储原始文本字段(用于 BM25)存储该文本的 embedding 向量(用于 ANN)
2025-07-03 11:20:16
1057
原创 Embeddings模型
所有的数据都变成向量,这些向量组成⼀个庞⼤的矩阵。Embeddings 模型的核心功能是将离散的符号(如文本中的单词、图像中的像素块等)转化为连续的向量表示,这些向量通常位于低维的实数空间中。:在 Word2Vec 的基础上进行了扩展,考虑了单词的子词信息,对于未登录词(在训练集中未出现的单词)也能生成合理的向量表示。:是一种基于 LSTM 网络的句嵌入模型,通过在有监督的任务上进行训练,学习句子的语义表示。:也是经典的卷积神经网络,具有简单的网络结构,其输出的特征向量可以用于图像的语义表示。
2025-07-01 23:08:55
920
原创 vllm部署私有大模型
Graphical Processing Units (GPUs) 图形处理单元(GPU)是一种功能强大的电子芯片,用于在沉浸式视频游戏、电影和其他视觉媒体中呈现丰富的 2D/3D 图形和动画 因其超越 CPU 的并行矩阵运算性能,所以也被广泛应用于人工智能相关的各种系统,包括机器视觉、NLP、语音识别、自动驾驶等 GPU通过大量简单的处理单元(CUDA核心、Tensor核心等)并行工作,能够在短时间内完成复杂的矩阵运算和数据处理任务。
2025-06-29 22:21:31
713
原创 一、Claude大模型
Claude是由美国人工智能公司Anthropic开发的大型语言模型家族,具备多模态理解、代码生成和复杂推理能力,当前最新版本为Claude 3.7 Sonnet(2025年2月发布)。该系列模型在推理能力、任务处理广度和性能优化方面均处于行业领先地位。。
2025-06-25 17:08:42
462
原创 LangChain-5-agent
Agent 是一种能够基于接收到的输入,利用自身的决策逻辑和可用的工具,动态地规划并执行一系列操作,以达成特定任务的程序或系统。它在与外界交互过程中,会根据实时情况灵活调整策略,而不是按照固定的预设流程执行任务。
2025-06-21 22:27:38
686
1
原创 LangChain-4-工具调用
Agent是LangChain中一种更高级的机制,它可以根据输入动态地决定是否调用工具、调用哪个工具以及如何使用工具的输出。Agent通常包含一个决策逻辑,能够根据模型的输出和任务的需求进行智能决策。
2025-06-20 15:40:31
292
原创 LangChain-3-输出解析器
负责获取模型的输出并将其转换为更适合下游任务的格式。在使⽤⼤型语⾔模型⽣成结构化数据或规范化聊天模型和⼤型语⾔模型的输出时⾮常有⽤。
2025-06-16 19:41:04
771
原创 LangChain-2-提⽰词模板
ICL提⽰词模板有助于将⽤⼾输⼊和参数转换为语⾔模型的指令。这可以⽤于指导模型的响应,帮助其理解上下⽂并⽣成相关且连贯的基于语⾔的输出。提⽰词模板的输⼊是⼀个字典,其中每个键表⽰要填充的提⽰词模板中的变量。
2025-06-16 15:02:33
405
原创 LangChain-1-快速入门
想象一下,如果你能让聊天机器人不仅仅回答通用问题,还能从你自己的数据库或文件中提取信息,并根据这些信息执行具体操作,比如发邮件,那会是什么情况?Langchain 正是为了实现这一目标而诞生的。Langchain 是一个开源框架,它允许开发人员将像 GPT-4 这样的大型语言模型与外部的计算和数据源结合起来。LangChain 是一个用于开发由语言模型驱动的应用程序的框架。Langchain,这是一个用于提升大型语言模型(LLMs)功能的框架。
2025-06-16 07:56:41
958
原创 基于 Spring AI 的 MCP 客户端/服务端实现
模型上下文协议(MCP)由Anthropic开源的开放协议,为AI模型与外部数据/工具提供了“标准化桥梁”,通过统一的接口规范,使模型能够动态调用本地文件、数据库、API等资源,实现“上下文感知”的智能交互。MCP的核心价值在于:标准化集成:告别“一对一”定制开发,通过协议对接即可连接任意兼容MCP的数据源或工具,大幅降低生态构建成本。安全与灵活性:支持本地部署,数据无需离境,兼顾隐私合规与实时访问需求。智能体赋能:为AI Agent提供“手脚”,使其能自主执行查询、分析、操作等复杂任务流。在。
2025-06-11 17:48:45
846
原创 使用spring-ai-alibaba接入大模型
是Spring AI生态里与阿里巴巴相关的组件,借助它能够实现接入各类大模型。以下为你详细介绍如何使用。
2025-06-11 16:45:47
607
原创 spring源码(2)、资源&资源加载器
对于每一个底层资源,比如文件系统中的一个文件,classpath上的一个文件,或者一个以URL形式表示的网络资源,Spring 统一使用 Resource 接口进行了建模抽象,相应地,对于这些资源的加载,Spring使用了 ResourceLoader 进行了统一建模抽象。Spring对各种底层资源,比如文件系统中的一个文件,classpath上的一个文件,或者一个网络URL,统一抽象为接口Resource来表示。6 否则将其封装成一个UrlResource句柄返回;4 如果路径是URL格式。
2023-01-03 13:59:48
431
原创 javassist学习
Java 字节码以二进制的形式存储在 .class 文件中,每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法,或者是修改已有的方法,并且不需要对字节码方面有深入的了解。同时也可以去生成一个新的类对象,通过完全手动的方式。在 Javassist 中,类表示 class 文件。
2023-01-03 13:00:43
486
原创 设计模式—行为型—备忘录模式
备忘录模式备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式优缺点:备忘录模式是一种对象行为型模式,其主要优点如下。提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。 实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。 简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在
2021-02-08 11:10:34
159
原创 设计模式—行为型—状态模式
状态模式对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。角色环境类(Context)角色:也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换。 抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为。 具体状态(Concrete State)角色:实现抽象状态所对应的行为,并且在需要的情况下进行状态切换。类图状态模式一般用来实现状态机,而状态机常用
2021-02-07 17:29:17
212
原创 配置阿里yum源
1、备份mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/CentOS 5wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a
2021-02-07 16:22:32
528
原创 设计模式—结构型
结构型模式主要、关注如何将现有类或对象组织在一起形成更加强大的结构,总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构型模式包括:代理模式 桥接模式 装饰器模式 适配器模式 门面模式 组合模式 享元模式1. 代理模式 代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。一般情况下,我们让代理类和原始类实现同样的接口。但是,如果原始类并没有定义接口,并且原始类代码并...
2021-02-07 15:42:12
217
原创 设计模式—行为型—访问者模式
表示一个作用于某对象结构中的各元素的操作,它使你可以不改变个元素的类的前提下定义作用于这些元素的操作。访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接收这个操作的数据结构则可以保持不变访问者模式适用于数据结构未定的系统,它把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操作集合可以相对的演化角色抽
2021-02-05 17:17:38
390
原创 设计模式—行为型—备忘录模式
在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。角色:1.Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定Memento存储自己的哪些内部状态。2.Memento(备忘录):负责存储Orig
2021-02-05 16:38:29
465
原创 设计模式—行为型—中介者模式
用一个中介对象来封装一系列的对象交互。中介是各个对象不需要现实的相互引用。从而使其耦合松散。而且可以独立的改变他们之间的交互角色:Mediator:中介者接口。在里面定义了各个同事之间相互交互所需要的方法,可以是公共的方法,如Change方法,也可以是小范围的交互方法。ConcreteMediator:具体的中介者实现对象。它需要了解并为维护每个同事对象,并负责具体的协调各
2021-02-05 16:18:11
388
原创 设计模式—行为型—命令模式
命令模式将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作将一组行为抽象为对象,实现“行为请求者”与“行为实现者”的松耦合。这就是命令模式模式结构 Command:定义命令的接口,声明执行的方法。ConcreteCommand:命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接
2021-02-05 15:20:51
308
原创 设计模式—行为型—迭代模式
迭代模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。它可以使得对于聚合对象的遍历行为和聚合对象分离,即我们不关心聚合对象的底层结构是什么样子迭代模式中的角色迭代器角色(Iterator): 负责定义访问和遍历元素的接口。具体迭代器角色(Concrete Iterator):实现迭代器接口,并要记录遍历中的当前位置。容器角色(Container
2021-02-05 14:43:22
599
原创 设计模式—行为型—责任链模式
使多个对象都有机会处理请求,从而避免请求的发送者和接受者间的耦合,将这些对象连成一条链,并向这条链传递请求,直到有个对象处理它为止。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。责任链模
2021-02-05 13:18:07
320
原创 设计模式—行为型—模板方法
使用模板方法的意图是:定义一个操作算法中的骨架,将一些步骤延迟到子类当中。使得子类不改变算法结构,可重新定义该算法的一些步骤。简单说来就是:父类实现算法不变的部分以避免代码重复,将特定的可变的行为留给子类实现,也就是所谓的“重分解以一般化”原则。类图模板方法是常用的一种代码复用的基本技巧。代码:public interface ITemplate
2021-02-05 10:15:36
580
原创 设计模式—行为型—策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。它定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户角色:抽象策略角色Strategy: 策略类,通常由一个接口或者抽象类实现。具体策略角色ConcreteStrategy:包装了相关的算法和行为。环境角色Co
2021-02-04 17:26:09
405
原创 设计模式—结构型— 解释器模式
解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,实际很少有用到。角色(1)抽象表达式(Expression)角色:声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要是一个interp
2021-02-04 16:24:03
346
原创 设计模式—结构型—观察者模式
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。这个主体对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。角色抽象主体角色:主题角色把所有对观察者对象引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象被观察者角色,一般用一个抽象类或者一个接口实现抽象观察者角色:把所有的具体观察者定义一个接口,在得到主题的通知时更新自己,这个接口叫做更新接
2021-02-04 15:22:24
688
原创 设计模式—设计原则
1.单一原则 一个类或者模块只负责完成一个职责(或者功能),也就是说,不要设计大而全的类,要设计粒度小、功能单一的类。换个角度来讲就是,一个类包含了两个或者两个以上业务不相干的功能,那我们就说它职责不够单一,应该将它拆分成多个功能更加单一、粒度更细的类。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。public class UserInfo { private long userId; private String username;...
2020-10-14 15:13:06
259
原创 设计模式—结构型—享元模式
享元模式:运用共享技术有效的支持大量细粒度对象,也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。如果一个应用使用了大量的对象,这些对象造成了很大的系统开销就应该考虑使用享元模式角色:抽象享元角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口或抽象类。具体享元(ConcreteFlyweight)角色:实现抽象享元角色
2020-10-12 16:12:20
300
原创 设计模式—结构型—组合模式
将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素
2020-10-12 15:42:51
483
原创 设计模式—结构型—门面模式
为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。角色门面(facade):客户端可以调用这个角色的方法,此角色知道相关子系统的功能和责任。在正常情况下,本角色会将所有客户端发来的请求委派到响应的子系统去。子系统(subSystem):可以同时有一个或多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,每一个子系统都可以被单独调用,
2020-10-12 15:29:57
418
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人