自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

背着梦的幸存者

最喜欢解决一个难题时豁然开朗的感觉

  • 博客(182)
  • 资源 (1)
  • 收藏
  • 关注

原创 langgraph简单Demo4(checkpoint检查点)

在 langgraph 里,检查点(checkpoint)是一项重要的功能,它能够记录工作流在执行过程中的中间状态。当工作流因某些原因中断时,可以从检查点恢复继续执行,避免从头开始,提升效率。

2025-04-07 21:45:55 118

原创 AI Agent设计模式六:ReAct

概念 :思考-执行循环系统 react agent- ✅ 优点:提升任务完成度,适合复杂问题拆解- ❌ 缺点:执行延迟较高,资源消耗大

2025-04-05 16:25:16 274

原创 AI Agent设计模式五:Orchestrator

概念 :中央任务调度中枢- ✅ 优点:全局资源协调,确保任务执行顺序- ❌ 缺点:单点故障风险,可能成为性能瓶颈

2025-04-05 14:13:53 267

原创 openai.BadRequestError: Error code: 400 - {‘error‘: {‘code‘: ‘invalid_parameter_error‘, ‘param‘: Non

openai.BadRequestError: Error code: 400 - {'error': {'code': 'invalid_parameter_error', 'param': None, 'message': '<400> InternalError.Algo.InvalidParameter: The tool call is not supported.', 'type': 'invalid_request_error'}, 'id': 'chatcmpl-fd1b6d5d-fff7-

2025-04-05 13:15:17 371

原创 AI Agent设计模式四:Evaluator

概念 :质量验证与反馈机制- ✅ 优点:自动化质量检查,实现持续优化闭环- ❌ 缺点:评估准确性依赖模型能力

2025-04-05 12:49:50 311

原创 AI Agent设计模式三:Routing

概念 :动态路径选择器- ✅ 优点:灵活处理不同类型输入- ❌ 缺点:路由逻辑复杂度高

2025-04-05 00:53:12 490

原创 AI Agent设计模式二:Parallelization

概念 :并行任务执行引擎- ✅ 优点:提升吞吐量,充分利用多核资源- ❌ 缺点:复杂度高,存在竞态条件风险

2025-04-04 23:20:33 293

原创 AI Agent设计模式一:Chain

概念 :线性任务流设计- ✅ 优点:逻辑清晰易调试,适合线性处理流程- ❌ 缺点:缺乏动态分支能力

2025-04-04 21:54:16 304

原创 TypedDict和dataclass的优缺点对比

【代码】TypedDict和dataclass的优缺点对比。

2025-04-04 18:46:57 269

原创 python-dotenv的概念、使用示例、高级功能、最佳实践、常见问题

我将以开发者的视角为您详细介绍。

2025-04-04 16:40:50 260

原创 venv 和 conda 哪个更适合管理python虚拟环境

在 Python 开发中,管理虚拟环境是避免依赖冲突和提高项目可复现性的关键。(第三方工具)各有优劣,选择取决于你的具体需求。若涉及科学计算,直接使用。(Python 内置)和。如果你刚开始学习,建议从。),可自动解决依赖冲突。

2025-03-24 22:06:23 991

原创 langgraph简单Demo3(画一个简单的图)

其中START和 END是系统节点,agent和tool是我们的自定义节点。在原response的基础上又拼接了“执行工具”,所以response最终结果为:执行工具手工输入你是谁啊!还有一个点需要说明一下:最终返回值是 AgentState 类型字典中 所有累积的键值对。代码先走到agent节点,agent节点重新定义了response的值。再看到这个结果图,就知道response为什么是这样了吧。response:手工输入你是谁啊!input:你是谁啊!input:你是谁啊!介绍下结果为什么是这样?

2025-03-24 21:56:57 289

原创 langgraph简单Demo2(使用langserve实现外部调用)

这个示例是研究如何使用langserve实现外部调用。接入阿里云百炼。

2025-03-19 21:47:51 314

原创 langgraph简单Demo1(调用大模型实现简单聊天)

所以在这里分享一下我自己写的langgraph的demo。发现网络上没有什么langgraph的示例供人学习。在实践中学习才能进步更快。

2025-03-19 00:05:03 196

原创 【LangChain接入阿里云百炼deepseek】

大模型爆火,现在很多教程在教怎么使用大模型来训练Agent智能体,但是大部分教程都是使用的OpenAI。最近阿里云推出DeepSeek-R1满血版,新用户可享100万免费Token额度。今天就教大家怎么在测试模型的时候使用阿里云提供的免费模型。

2025-03-12 22:45:55 427

转载 Error: error:0308010C:digital envelope routines::unsupported 解决方案

出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.版权声明:本文为优快云博主「藏蓝色攻城狮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。然后,找到项目的package.json文件,把自己对应的命令,加上&&,写到启动项目的配置里面(构建写不写都可以),即可。唯一不足,是每次启动项目都要运行,所以,我们可以把它配置一下。

2024-01-08 17:06:02 1721

原创 项目切换多租户导致的数据库SQL执行异常

因为多租户是通过mybatis拦截器拦截SQL、解析SQL并且自动拼接租户ID。首先可以确认,这个SQL之前一直是可以正常运行的,只是这次上了多租户才被影响到;解析SQL时发现 # 解析失败;大致可以看出来,问题出现在。

2023-11-02 17:01:18 485

原创 ConcurrentHashMap的扩容机制

因为ConcrrentHashMap在jdk1.7和1.8中的实现机制不一样,所以要分开讲解;JDK1.7中使用segment分段锁实现,1.8中使用CAS+Synchronized实现了更细粒度的锁;

2023-09-21 17:01:34 821

原创 ArrayList和LinkedList的区别

ArrayList底层是一个数组,内容是规整的,可以指定数组容量。如果没有指定数组容量,默认容量是10插入新元素的时候会判断容量,若容量不足以插入新元素。就会进行扩容。扩容是通过新建一个新的更大的数组来完成的,将原数组中的值复制到新数组,再添加新值。扩容后原数组后续就会被垃圾回收掉。要设置一个合理的初始容量;1、如果设置容量太小,频繁扩容对资源消耗是很大的。2、如果设置容量过大,会浪费很多空间。ArrayList查询效率。

2023-09-12 13:56:39 649

原创 ==和equals的区别

如上,我们之所以平时觉得equals是代表值相等,就是String默默重写了equals方法,从而让我们产生了错觉。所以如果我们调用了Object中的equals方法进行比较,又没有进行重写,其实就相当于使用==进行比较。所以,如果我们自定义的对象要做比较,需要重写equals方法来定义比较规则,否则就是按照==进行比较。我们平时用到最多的应该就是String类的equals方法;下面的代码就是Object类的源码;引用类型比较的是堆内存中的对象地址。==其实是比较的栈中的值;基本数据类型比较的是数值。

2023-09-11 20:43:48 273

原创 SpringBoot自动装配原理

为什么要用Springboot?SpringBoot相比Spring有什么优点?说到这个问题,必然会牵扯到自动装配,无需手动添加很多配置,开箱即用。首先我们都知道,在spring中约定大于配置。所以我们首先要有一个约定,启动项目的时候去读取某个目录下的配置。那么所有需要自动装配的工具,都可以在这个约定的目录下设置自己的初始默认配置。项目启动时自动统一加载即可。当前SpringBoot官网最新版本是2.7.5,咱们这次就分析这个版本下的源码。

2022-11-20 22:35:05 2480

原创 MDC、ThreadLocal、InheritableThreadLocal的区别和联系

ThreadLocal使用来存储线程本地变量的。MDC的底层使用的就是ThreadLocal来存储的,只不过是做了一些安全校验,如MDC取值时ThreadLocalMap==null怎么办。InheritableThreadLocal支持子线程继承父线程中的thread-local值。留个问题哈:现在项目中很多使用多线程的地方都是使用的线程池,线程池中的线程并不具备父子关系,这样threadlocal怎么传递?

2022-11-10 18:07:27 1548 1

原创 Apifox能否替代Postman?

apifox初步使用,从postman转移到apifox,apifox优缺点简单总结。对apifox的一些吐槽。

2022-11-05 01:39:42 6021 3

原创 1024程序员节快乐

大家程序员节快乐!!!!!

2022-10-24 17:42:11 177

原创 Java使用Xpath实现爬虫功能

Java使用Xpath实现爬虫功能看到有人通过Xpath实现爬虫功能,就写了一个Java版本的。全网最简单易学的教程。网上的其他教程看着都是用 过时的方法实现的,我这是用的新方法,不会报错。

2022-06-09 20:00:26 1455

原创 Zookeeper简介(数据结构、节点、监听机制、权限控制、应用场景)

Zookeeper简介Zookeeper数据结构Zookeeper节点Zookeeper监听机制Zookeeper ACL权限控制Zookeeper应用场景统一命名服务数据发布、订阅功能统一集群管理负载均衡

2022-05-28 20:58:00 836

原创 Zookeeper集群(leader选举原理、数据同步流程)

Zookeeper集群集群角色集群架构Leader选举原理服务器启动时运行过程中数据同步流程消息广播崩溃恢复

2022-05-28 20:55:15 898

原创 CAP && BASE理论 && 几种一致性简单介绍

CAP && BASE理论CAP理论BASE理论几种一致性简单介绍强一致性弱一致性最终一致性顺序一致性

2022-05-28 04:28:38 154

原创 Java基础-动态代理

1、什么是代理生活中的代理1、房产中介,租户不能直接对接房主,要通过中介。中介就是代理,同时中介提供价格调整、房屋维修等增强功能。2、商家店铺,用户不能直接去厂家买东西,要通过商家。商家就是代理,同时商家提供商品价格调整、举办优惠活动等增强功能。由上面的例子可以看出,代理和目标都实现了同一种功能,只不过代理在原功能的基础上进行了功能增强。(中介和房主都提供房屋出租的功能,中介只不过是在原功能的基础上进行了价格调整、房屋装修等额外功能)2、代理的特点功能增强(在原功能的基础上封装其他功能)

2022-04-29 10:13:26 254

原创 Java基础-反射

反射就是把Java类中的各个成员映射成一个个的Java对象。即在运行状态中1、对于任意一个类,都能知道这个类的所有属性和方法。2、对于任意一个对象,都能调用它的任意一个属性和方法。这种动态获取信息以及动态调用对象方法的功能叫做Java的反射机制。1、对象创建过程为什么在介绍反射的时候需要先介绍对象创建过程?通过对象创建,引出Class对象通过javac命令把Java源代码编译成class文件。类加载器加载class文件到内存类元信息存放在方法区。(类元信息:类、方法等字节码信息)

2022-04-29 10:11:11 232

原创 算法基础入门 - 9、复杂排序算法-堆排序

堆排序什么是堆排序?1、先让整个数组都变成大(小)根堆结构2、把堆的最大值和堆末尾的值交换,减少堆的大小。再去调整堆。3、堆的大小减为0之后,排序完成。时间复杂度O(n*logn)堆排序的练习题:已知一个几乎有序的数组,请选择一个合适的排序算法针对这个数据进行排序。几乎有序:如果吧数组排好顺序的话,每个元素移动的距离可以不超过k,并且k相对于数组来说比较小。首先是Java版本的解法:package com.leftGod;import java.util.Arrays;i

2022-04-04 23:03:52 1001 3

原创 算法基础入门 - 8、复杂排序算法-堆结构介绍+自定义堆+java堆

堆结构堆结构就是用数组实现的特殊的完全二叉树结构:有右子节点时,必有左子节点每个父节点都大于等于子节点(或者每个父节点都小于等于子节点)我们的数据在逻辑上可以根据数组的索引构建出一颗完全二叉树,节点和索引之间的位置关系是:i位置节点的父节点在数组中的位置是**(i-1)/2**i位置节点的左孩子在数组中的位置是**(i*2)+1**i位置节点的右孩子在数组中的位置是**(i*2)+2**堆的类型有两种:大根堆:父节点的值比左右子节点的值都要大小根堆:父节点的值比左右子节点的

2022-04-03 02:07:25 645

原创 算法基础入门 - 6、复杂排序算法-快速排序

快速排序初识快速排序下面我们两道简单算法题引入快速排序的概念1、给定一个数组和一个数num,请把小于等于num的数放在数组的左边,大于num的数放在数组的右边。要求:时间复杂度O(n) 额外空间复杂度O(1)//记录一个分割线的位置,分割线左边都是小于等于的,分割线右边都是大于的public void preQuickSort(int[] arr, int target) { //分割点和数组下标 int splitPoint=0, index=0; while(i

2022-03-30 23:43:17 432

原创 算法基础入门 - 7、复杂排序算法-归并排序

归并排序先使部分有序,最后再合并每个部分,让整体有序。(让其整体有序的过程采用了外排序的方式)时间复杂度:O(n*log(n)) 空间复杂度O(n)下面通过两道归并排序的算法题来深入理解归并排序算法:1、小和问题在一个数组中,每一个数左边比当前数小的数,累加起来,就叫做这个数的小和。如:[1,3,2,4],1左边没有值,所以没有小和3左边,1比3小,所以3的小和是12左边,1比2小,所以2的小和也是14左边,都比4小,所以4的小和为1+3+2=6所以整个数组的小和=1+1+

2022-03-29 20:39:27 498

原创 《计算机网络 自顶向下》第八章==网络安全

文章目录第八章 网络安全8.1 什么是网路安全?8.2 加密原理对称密钥加密学公开密钥加密学RSA8.3 认证Protocol ap1.0Protocol ap2.0Protocol ap3.0Protocol ap3.1Protocol ap4.0Protocol ap5.08.4 报文完整性8.5 密钥分发和证书8.6 访问控制:防火墙8.7 攻击和对策映射分组嗅探IP Spoofing欺骗DOS第八章 网络安全8.1 什么是网路安全?![image.png](https://img-blog.c

2022-03-28 23:48:26 5334 1

原创 《计算机网络 自顶向下》第六章==链路层和局域网

第六章 链路层和局域网网络层解决了一个网络到达另一个网络的路由问题。链路层解决了在一个网络内部如何由一个节点到达另外一个相邻的节点一个子网内的若干节点是怎么连接到一起的?点到点连接:点到点连接的链路层服务实现非常简单,封装和解封装多点连接(共享型介质、网络交换机):连接到共享介质上,就可以连接所有其他节点,需要协调各节点对共享型介质的访问和使用。6.1 引论和服务主机、路由器和交换机是结点:nodes沿着通信路径,连接相邻节点通道信道的是链路:links数据链路层负责从一个节点通过链路将

2022-03-27 15:04:30 3548

原创 算法基础入门 - 5、递归行为和Master公式

5、递归行为和Master公式递归:在运行过程中不断的调用自己凡是标准的递归流程,都可以直接使用Master公式求解时间复杂度。master公式如下:![image.png](https://img-blog.csdnimg.cn/img_convert/497fc5d6b9d2f626b2bf327795d2d0f7.png#clientId=udb460ad5-55c5-4&crop=0&crop=0&crop=1&crop=1&from=paste

2022-03-24 19:53:08 545

原创 算法基础入门 - 4、二分算法

4、二分算法主要思想:每次查询都能缩减一半的范围时间复杂度:O(log n) ; 空间复杂度O(1):首先的一个问题:是不是只有排好序的元素才能使用二分算法?下面的第三道算法题会回答这个问题!1、在一个有序数组中找某个数是否存在经典二分算法,无需查找至最后一个值。遍历过程中如果发现了target,直接返回。解题思路:1、因为是有序数组,直接找中点下标mid2、若arr[mid] 比我们的目标值大,说明我们的目标值在[0, mid-1]区间3、若arr[mid] 比我们的目标值小,

2022-03-24 19:51:24 284

原创 算法基础入门 - 3、简单排序算法(选择、冒泡、插入)

3、简单排序算法选择排序主要思想:将当前值和 之后的每一个值相比较时间复杂度:O(n2) 空间复杂度:O(1)public void selectSort(int[] arr) { int len = arr.length; for(int i = 0; i < len-1; i++) { for(int j = i+1; j < len; j++){ if(arr[i] > arr[j]) {

2022-03-24 00:57:22 667

原创 算法基础入门 - 2、异或运算的性质与扩展

2、异或运算的性质与扩展异或又被叫做:模二运算(相加不进位)异或的特性a ^ a = 0a ^ 0 = aa ^ b = b ^ a(a ^ b) ^ c = a ^ (b ^ c)通过一个demo熟悉上面的特性public void swap(int[] arr, int i, int j) { arr[i] = arr[i] ^ arr[j]; //arr[i] = arr[i] ^ arr[j]; arr[j] = arr[j] arr[j] = arr[i] ^ arr[

2022-03-23 00:35:37 527

SSM+Maven+Oracle+Log4j+Idea

。在这里把自己整理的框架分享一下。SSM+Maven+Oracle+Log4j。只是写了一个简单的登陆界面。数据库是train,表是person。具体的可以下载项目看一下,就一个简单的示例框架。

2019-07-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除