- 博客(130)
- 资源 (6)
- 收藏
- 关注
原创 Spring5 学习笔记: IOC容器原理与bean管理方式详解
1, IOC概念和原理1)什么是IOC?控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。使用IOC目的,为了耦合度降低。做入门案例就是IOC实现。2)IOC底层原理xml解析,工厂模式,反射3)IOC(接口)IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。Spring提供IOC容器实现两种方式:(两个接口)BeanFactory: IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用。注:加载配置文件的时候不会创建对象,而
2021-09-19 21:25:39
515
原创 C语言---简单五子棋小游戏
#include<stdio.h>#include<stdlib.h>#include<windows.h>#pragma comment(lib, "WINMM.LIB")#include <mmsystem.h>#include<conio.h>#include<time.h>#define width 32 //棋盘总宽度 #define high 31 //棋盘总高度 #define MAX_X 15 //
2021-05-25 16:35:37
9154
12
原创 Java学习笔记:数组
数组:1,Java语言中的数组是一种引用类型,不属于基本数据类型,数组的父类是Object。2,数组实际上是一个容器,可以同时容纳多个元素。(数组是一个数据的集合。)数组:字面意思是“一组数据”;3,数组当中可以存储基本数据类型的数据,也可以存储引用数据类型的数据。4,数组因为是引用类型,所以数组对象是堆内存当中。5,数组当中如果存储的是“java对象”的话,实际上存储的是对象的“引用(内存地址)”6,数组一旦创建,在Java中规定,长度不可变。7,数组分类:一维数组,二维数组。。。8,
2021-05-15 22:07:16
884
8
原创 (详细版)并查集---图论
并查集的概念:并查集是一种可以用来判断同属一个集合中相互关联的元素属于几个集合,也可以用来判断图结构中的两点是否是连通。并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。并查集的应用1,一般来说,可以用来合并集合元素,确定结合数量,查找元素处于哪个集合的位置。2. 在图结构里,确定两个结点是否处于连通状态,尤其在图的应用中广泛涉及。并查集的常见结构基本函数:用于初始化-----Init(n) ;用于查..
2021-03-26 20:32:04
1923
原创 c语言 最简版 贪吃蛇 小游戏
#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<conio.h>#include<time.h>#define width 60#define hight 25#define SNAKESIZE 200//蛇身的最长长度char key='w';//初始化蛇的运动方向,向上//'w'为上 //'s'为下//'a'为左//'d'为右struc
2021-02-09 15:02:25
1476
2
原创 使用 LangGraph 构建多智能体工作流:流式输出、持久化、人工干预与时间回溯
本文介绍了如何使用LangGraph框架构建多智能体工作流,并实现流式输出、消息持久化等高级功能。LangGraph作为LangChain生态的一部分,采用图结构控制多智能体协作,通过定义状态、节点和边来构建工作流。文章提供了从环境配置到完整实现的代码示例,包括双智能体协作(研究+写作)、流式输出(逐token和按节点两种模式)、内存/数据库持久化检查点等核心功能。这些技术能显著提升AI应用的用户体验和实用性,适用于复杂任务的自动化处理场景。
2026-08-10 13:24:45
366
原创 LangGraph 核心概念:Node 与 Edge 的编排艺术
本文深入解析了LangGraph框架中的核心概念:Node(节点)和Edge(边)。Node是执行单元,通过函数处理状态并返回更新;Edge定义节点间的流转关系,支持普通边和条件边两种类型。文章还介绍了Command机制,允许节点内部同时返回状态更新和下一步指令,以及子图(Subgraph)的构建方法,用于模块化复杂逻辑。这些组件协同工作,使得LangGraph能够灵活编排AI应用的执行流程,支持条件分支、循环和并行等复杂控制逻辑,为构建高级Agent系统提供了强大工具。
2026-08-10 12:30:39
359
原创 LangGraph 中的短期记忆与长期记忆:从 Checkpoint 到 Store
短期记忆是 Agent 在当前对话中的历史记忆信息。LangGraph 将其封装为Checkpoint——即图(Graph)在每一步执行后的状态快照。对话消息历史图的内部状态当前执行到哪个节点总结的核心思路是:当对话历史过长时,将早期的消息压缩成一段摘要,用摘要替换掉原始消息,从而在保留关键信息的同时控制上下文长度。# 定义状态:额外维护一个 summary 字段if len(messages) > 6: # 超过阈值触发总结# 调用大模型生成摘要(此处以伪代码示意)
2026-08-01 18:00:47
232
原创 使用LangGraph构建智能体:从基础到高级实战
LangGraph 是 LangChain 生态中专门用于构建有状态、多步骤智能体(Agent)的框架。与传统“一次调用大模型就了事”不同,LangGraph 将智能体的决策流程建模为图(Graph),允许你定义节点、分支、循环,实现复杂的思考与工具调用逻辑。把智能体的决策过程看作有向图——每一个节点代表一次状态更新(例如调用工具、思考、输出最终答案),边代表状态转移条件。这让你既能利用 LLM 的推理能力,又能精确控制流程,非常适合需要多次工具调用、多轮推理、甚至人工中断的场景。
2026-08-01 15:37:12
371
原创 快速了解LangGraph:构建智能Agent工作流的核心框架
如果你是研究者或正在快速原型验证:直接从开始,它在Jupyter Notebook中就能提供强大的表达能力。如果你希望快速得到一个能用的智能体,不想从头造轮子:使用,几分钟内就能集成一个功能完整的智能体到你的应用中。如果你需要将智能体工作流部署到生产环境,要求高可用、可观测和持久化:那么是你的不二之选。它让复杂的AI应用像部署Web服务一样简单。LangGraph通过这三个紧密集成的部分,为开发者提供了一条从构思、开发到部署智能体工作流的完整路径。
2026-08-01 15:17:23
367
原创 用LangChain快速实现天气查询智能体
本文介绍了如何用LangChain快速构建一个对话式天气查询助手。通过不到50行Python代码,实现自然语言查询天气功能,无需前端开发。文章详细演示了关键步骤:封装天气API为Tool工具、建立城市代码映射、使用create_agent组合模型和工具,并通过system_prompt控制助手行为。该方案不仅适用于天气查询,还可扩展至其他API接入场景,展示了LangChain简化AI应用开发的强大能力。最终实现的助手能理解"北京热不热"等自然语言问题,自动查询并返回结构化天气信息。
2026-07-31 21:45:58
245
原创 LangChain 两大基础提示词模板:PromptTemplate 与 ChatPromptTemplate 详解
是 LangChain 中最基础的提示词模板,用于将用户输入的变量动态填充到一段固定的文本模板中,最终生成一个完整的字符串提示词。是面向 Chat 对话模型的提示词模板。它不再是一段孤立的文本,而是由多条「消息」(Message)组成的对话结构,每条消息都带有角色标识(如系统、人类、AI)。对比维度输出形式单一字符串消息列表(含角色)角色概念无有(system / human / ai)适用模型普通 LLM(文本补全)Chat 对话模型多轮对话需手动拼接原生支持调用接口典型场景。
2026-07-31 17:48:07
225
原创 基于 LangChain 框架构建本地化 RAG 系统:无需调用云端 API 的完整实践
本文基于 LangChain 框架,完整实现了一个本地化的 RAG 系统。从文档加载、文本切分、向量化存储,到检索与生成,每一步都给出了可运行的代码示例。该方案完全离线运行,兼顾了数据隐私与部署成本,适合作为企业知识库问答、私有文档检索等场景的基础框架。后续可以在此基础上扩展多轮对话、文档增量更新、混合检索(关键词 + 向量)等能力,进一步提升系统的实用性与鲁棒性。
2026-07-31 16:05:40
271
原创 如何通过训练数据多样性提升 Agent 泛化能力
在分别储备了丰富的 Query 语料、Tools 定义和 Prompt 模板之后,对这三个变量分别构造各种类型的数据,然后进行交叉组合构成多样性的 Input(Prompt)数据,再调用 GPT-4 生成对应的 Output(Response)。例如从 1000 个 Query、200 套 Tools 和 100 个 Prompt 模板中,理论上可以合成 1000×200×100 = 2 千万条训练样本。
2026-07-29 18:38:44
317
原创 大模型 Fine-tuning 通俗指南:从原理到实践
用一句话概括:Fine-tuning 是在已有的预训练大模型基础上,用特定领域的数据继续训练,让模型适配下游任务的过程。预训练:在海量通用数据(网页、书籍、代码)上训练,学到语言的通用规律。微调:在相对少量高质量的任务数据上训练,调整模型参数,使其对特定输入给出预期输出。Fine-tuning 本质是预训练 + 领域数据继续训练。方法从重到轻:全量微调 > LoRA > Adapter > Prefix-tuning。初学者首选 QLoRA,省钱、省时、效果好。数据保质,参数收敛。
2026-07-29 16:47:41
253
原创 认识大模型 Agent:从“会说话”到“会办事”的智能体
传统大模型(LLM):会告诉你“露营需要带帐篷、食物、水,最好查一下天气”,然后就没下文了。大模型 Agent:会先查天气(调用天气 API),再在地图上搜营地(调用地图 API),接着列出购物清单(调用备忘录工具),最后给你一个完整方案。Agent(智能体)的本质 = 大模型 + 工具 + 自主决策能力。它像一个项目主管:接到任务后,拆解成步骤,调动资源,完成目标。Agent 的本质,是让 AI 从信息的提供者,变成任务的执行者。它不仅仅回答“怎么做”,而是直接动手去做。
2026-07-29 15:51:13
168
原创 RAG(检索增强生成)原理详解:从基础到进阶
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与文本生成相结合的人工智能技术框架。它通过从外部知识库中检索相关信息,然后将这些信息作为上下文提供给大语言模型(LLM),从而生成更准确、更可靠、更具事实依据的回答。RAG技术通过结合检索系统的精确性和生成模型的创造性,有效解决了传统大语言模型的知识固化、幻觉等问题。随着技术的不断发展,RAG正在从简单的"检索-生成"框架演变为更加智能、自适应的系统。核心要点回顾RAG通过外部知识检索增强LLM的事实准确性。
2026-07-29 15:12:34
313
原创 JVM学习:双亲委派机制
双亲委派机制1.1、如果创建一个String类public class String { static { System.out.println("我是自定义的hello, java!!!"); }}然后Test一下public class Stringtest{ public static void main(String[] args){ java.lang.String str = new java.lang.String();
2022-03-24 17:52:17
826
原创 JVM学习: 类加载
1、类加载子系统1.1、类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。1.2、类加载器只负责class文件的加载,无论是否可以运行。1.3、加载的类信息存放于一块称为方法区的内存空间。除了类信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分的内存映射)1.4、class file 存在于本地硬盘上,可以理解为设计师画在纸上的模板,而最终这个模板在执行的时候是要加载到JVM当中来根.
2022-03-22 18:27:58
197
原创 第五章:序列类动态规划
文章目录前言一、LeetCode 第 300 号问题:最长上升子序列二、LeetCode 第 256 号问题:粉刷房子总结前言序列类动态规划问题,这类动态规划问题较为普遍,分析难度相比之前也略有提升,通常问题的输入参数会涉及数组或是字符串。相比矩阵类动态规划,序列类动态规划最大的不同在于,对于第 i 个位置的状态分析,它不仅仅需要考虑当前位置的状态,还需要考虑前面 i – 1 个位置的状态一、LeetCode 第 300 号问题:最长上升子序列题目: 给定一个无序的整数数组,找到其中最.
2021-11-03 20:27:58
351
原创 第五章:矩阵类动态规划
矩阵类动态规划,也可以叫做坐标类动态规划,一般这类问题都会给你一个矩阵,矩阵里面有着一些信息,然后你需要根据这些信息求解问题.文章目录矩阵类动态规划,也可以叫做坐标类动态规划,一般这类问题都会给你一个矩阵,矩阵里面有着一些信息,然后你需要根据这些信息求解问题.前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言其实 矩阵可以看作是图的一种,怎么说?你可以把整个矩阵当成一个图,矩阵里面的每个位置上的元素当成是图上的节点,然后每个节点的邻居就是其相邻的上下左右的位置,我们遍历
2021-10-31 21:09:13
730
原创 Spring MVC学习:配置异常处理器
基于XML文件方式配置在springmvc.xml文件中配置<!-- 配置异常处理器--> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop ke
2021-10-08 20:55:11
328
原创 Spring5学习笔记:AOP
1,AOP(概念)面向切面的编程,可以通过预编译方式和运行其动态代理实现在不修改源代码的情况下给程序动态统一添加某种特定功能的一种技术。降低耦合度,提高代码的灵活性和可扩展性。2,AOP(底层原理)AOP底层使用动态代理,有以下两种情况有接口情况,使用JDK动态代理没有接口情况,使用CGLIB动态代理(1)有接口的情况,创建接口实现类的JDK代理对象,间接增加功能。(2)没有接口的情况,创建子类对象的CGLIB代理对象,间接增加功能。...
2021-09-26 20:56:58
177
原创 java-Spring5学习笔记 :Spring框架的简单了解与使用
1, Spring概述Spring是轻量级的开源的JavaEE框架Spring可以解决企业应用开发的复杂性Spring有两个核心部分:IOC和AopIOC:控制反转,把创建对象过程交给Spring进行管理Aop:面向切面,不修改源代码进行功能增强Spring特点方便解耦,简化开发Aop编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低API开发难度2, 下载Spring5下载版本:5.2.6.RELEASE下载地址:Spring官网下载3, 创建工
2021-09-14 17:57:46
163
原创 javaweb学习笔记:拦截器,监听器
1. Filter(拦截器, 也叫过滤器)作用:对客户端发出的请求进行拦截,处理后继续交给其他拦截器或服务器处理, 之后的服务端响应也同样。相关接口:Filter相关机制:创建拦截器:先建一个实现Filter接口的类,再配置web.xml文件即可(在eclipse环境下)package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterCh
2021-08-10 16:47:39
443
原创 JavaWeb学习笔记:JSP九大内置对象
JSP九大内置对象1, out :输出对象,向客户端输出内容2, request: 请求对象;存储“客户端向服务端发送的请求信息”request对象的常见方法:String getParameter(String name): 根据请求的字段名key, 返回字段值value。String[ ] getParameterValues(String name): 根据请求的字段名key, 返回多个字段值value(checkbox)。setCharacterEncoding(“编码格式utf-
2021-07-20 11:13:16
352
原创 Java学习笔记:集合(上)
1, 集合概述1.1,数组其实就是一个集合。集合实际上就是一个容器。可以容纳其他类型的数据。假设连接数据库,数据库当中有10条数据,假设将这数据封装成10个java对象,然后将10个java对象放在某一个集合当中,将集合传到前端,然后遍历集合,将一个一个的数据展现出来。注: 集合不能直接存储基本数据类型,另外集合也不能直接存储Java对象,集合当中存储的都是java对象的内存地址。1.2,在java中每一个不同的集合,底层对应了不同的数据结构。例如:数组,二叉树,链表,哈希表…(将数据存储在集
2021-07-17 15:56:26
259
1
植物大战僵尸无敌版 植物大战僵尸原版 植物大战僵尸时空旅行 植物大战僵尸随机礼盒版 植物大战僵尸随机模仿者
2024-04-26
免费超强一键处理的系统修复工具
2022-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅