- 博客(175)
- 资源 (5)
- 收藏
- 关注
原创 上手大模型应用LangChain
通过本文,我们详细介绍了 LangChain 各模块的功能,包括新增的 RAG 模块和 Agents 模块,并展示了如何将它们整合到一个多能力聊天机器人中。这样的设计不仅实现了常规对话,还能利用知识库进行外部信息检索,从而为用户提供更准确、更上下文相关的回答。希望本文的示例和讲解能为您在大语言模型应用开发方面提供有价值的参考与启示,助力构建更加智能和灵活的对话系统。注意:后续大家也可以接入其他LLM模型,详细细节可以参考官网:llm模型汇总:https://huggingface.co/models。
2025-03-02 18:31:53
960
原创 DH&ECDH密钥交互算法
Diffie-Hellman 密钥交换协议由 Whitfield Diffie 和 Martin Hellman 在 1976 年提出,是第一种实际可用的公钥协议,用于安全地交换密钥。DH 协议允许两个没有事先共享密钥的通信方通过不安全的通道生成一个共享的加密密钥。椭圆曲线密码学 (ECC) 是一种基于椭圆曲线数学结构的公钥加密技术。与传统的基于整数和模运算的加密算法相比,ECC 在提供相同安全性的情况下,能够使用更短的密钥长度,从而提高效率。DH:安全性高,但计算复杂度较高,密钥长度较大。ECDH。
2024-11-21 11:31:20
1065
原创 深入探讨 Spring 中的自定义注解及其使用场景
随着项目复杂度的增加,开发者可能会发现需要定义一些自定义注解,以满足更灵活的业务需求。在实际开发中,应当根据具体的业务需求和项目特点,合理地设计和使用自定义注解,避免滥用。本文将深入探讨在 Spring 框架中如何创建和使用自定义注解,并结合具体的应用场景给出实际的示例,帮助开发者理解自定义注解的价值和最佳实践。自定义注解在 AOP 中非常常用,用于标记需要特殊处理的方法或类,然后通过切面对其进行拦截,执行额外的逻辑。通过自定义注解,可以将多个常用注解组合在一起,减少重复代码,提高代码的可读性。
2024-10-24 22:03:23
772
原创 ObjectMapper[jackson]常用配置及异常处理
Jackson 的 `ObjectMapper` 是一个功能强大且灵活的工具,通过正确配置特性,你可以精确控制 JSON 序列化和反序列化的行为。然而,在实际使用过程中,难免会遇到各种异常。了解并掌握这些异常的排查方法,可以帮助你更快地定位问题,并提高开发效率。
2024-09-03 18:41:52
2486
1
原创 深入解读 SpringMVC 请求处理流程:从源码到视图渲染
用户通过浏览器或其他客户端发送 HTTP 请求,DispatcherServlet 作为前端控制器,捕获所有请求,HandlerMapping 根据请求信息,找到对应的处理器(Controller)。HandlerAdapter 调用处理器方法:通过适配器模式,执行处理器的方法。处理器执行逻辑并返回结果:处理器(Controller)处理业务逻辑,返回或其他结果。进行数据序列化:将数据对象转换为 JSON 格式。(注:非前后端分离框架(单体构架)会包含视图解析与渲染。
2024-08-26 16:39:00
1296
1
原创 你的程序真的被中断了吗?
如果中断标志位没有被清除,阻塞操作会不断抛出异常,可能导致线程陷入异常循环中。清除中断标志可以避免这种情况,让程序在捕获异常后重新决定是否继续处理中断。当这个异常被抛出时,Java 会自动清除线程的中断标志。在 Java 中,清除中断标志位是为了防止异常无限抛出,使得中断处理变得更为明确和可控。开发者可以在异常处理代码中明确如何处理中断:是忽略中断、恢复中断标志,还是进行其他操作。误以为中断标志一直存在:有些开发者误以为中断标志会一直存在,导致在代码逻辑中没有适当地重新检查和设置中断标志。
2024-06-30 13:49:52
435
原创 自定义Future+AQS实现异步转同步
AbstractQueuedSynchronizer,作为 Java 并发包中的一个核心类,是构建锁和其他同步组件的基础。它使用一个 int 成员变量来表示同步状态,并通过内置的 FIFO 队列来管理线程的阻塞和唤醒。AQS 的主要作用是作为构建锁和其他同步器的基础。例如,ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 实现的。决定同步器是在独占模式还是共享模式下工作。根据需要覆写tryAcquiretryRelease和方法。根据需要覆写。
2024-01-28 17:04:28
912
原创 web开发常见安全漏洞
本文深入探讨了Web安全的当前状态,重点关注了几种最常见的Web安全漏洞,包括跨站脚本攻击(XSS)、SQL注入、跨站请求伪造(CSRF)、服务器端请求伪造(SSRF)和分布式拒绝服务(DDoS)攻击。
2023-12-09 14:24:33
1276
原创 本地idea远程调试服务器程序
本文主要介绍idea本地调试远程服务器程序的方式。相信很多同行跟我一样,在最初接触公司项目的时候,遇到测试提出的缺陷,往往会在本地进行调试、替换jar包远程调试等方式,本地调试往往会导致数据和环境不一致的问题使得问题无法复现,替换jar包也回因为需要替换的模块可能涉及其它功能,产生冲突。接下来先简单说下本地远程调试服务器程序的应用场景及优势。
2023-11-05 15:27:43
1838
1
原创 Spring源码编译过程
Spring Framework是一个非常受欢迎的Java开发框架,提供了丰富的功能和组件,用于构建企业级应用程序。通过深入学习和理解Spring的源代码,您可以更好地理解框架的内部工作原理,并在需要时进行自定义和扩展。idea的kotlin插件版本要与源码中build.gradle的kotlin版本统一,否则会出现很多莫名的报错。1.在编译Spring源码之前,您需要配置适当的开发环境。将gradle路径修改为本地下载路径,可以在编译时直接加载,避免再从网络上进行下载。在build.gradle中搜索。
2023-09-25 19:11:43
271
原创 大数据学习技术栈及书籍推荐
这种分布式存储和计算的方式使得Hadoop能够处理大规模数据集,并提供高可靠性和容错性,即使某个节点发生故障,数据仍然可以被恢复和处理。同时,Flink也支持批处理作业,可以处理有界的数据集。hadoop集群配套相关组件有很多,常用的组件有 Hive , Spark , Kafka ,Flink,ES, Storm等,下面不针对每一个组件进行展开介绍,仅推荐相关学习书籍,可针对自己的需求进行学习。它提供了一系列的工具和组件,帮助用户管理数据、执行复杂的数据处理任务,并从数据中提取有价值的信息和洞察。
2023-09-23 13:48:14
955
原创 websocket服务端实现
创建了一个名为 WebSocketServer 的类,并使用了 @Component 注解将其声明为一个 Spring 组件。在类中,使用了四个注解来处理 WebSocket 的生命周期事件:@OnOpen、@OnMessage、@OnClose 和 @OnError。其中,@OnOpen 表示 WebSocket 连接建立时触发的事件,@OnMessage 表示收到消息时触发的事件,@OnClose 表示连接关闭时触发的事件,@OnError 表示出错时触发的事件。
2023-04-12 23:14:09
590
原创 websocket客户端实现(java)
在构造函数中,我们首先创建了一个 ClientEndpointConfig.Configurator 对象,重写了其中的 beforeRequest() 方法,用于在请求之前设置请求头。最后,我们调用 container.connectToServer() 方法时,将 ClientEndpointConfig 对象作为参数传入,用于配置 WebSocket 客户端连接时的请求头。需要注意的是,不同的 WebSocket 客户端实现可能需要使用不同的 API 来设置请求头,具体请根据实际情况进行修改。
2023-04-12 22:46:55
3620
原创 大语言模型汇总(ChatGPT、盘古、通义、文心一言、混元)
大语言模型,包括 NLP 大模型、CV 大模型、多模态大模型、科学计算大模型等。其可以支持多种自然语言理解和生成任务,如文本生成、文本分类、问答系统等,也可以应用于多个领域,如医疗、工业、交通、气象等。
2023-04-09 23:01:16
16458
原创 Linux环境下执行脚本时报错:/bin/bash^M: 坏的解释器: 没有那个文件或目录
错误主要原因是Windows和Linux下的换行符号不同,如果在Windows上编写的shell脚本,其换行符号是\n\r,而Linux下是\n,因此需要去掉\r.执行如下指令即可sed -i 's/\r$//' 你的脚本名称.sh
2021-11-09 09:57:50
1181
原创 java的int[] array、List<Integer>、Set<Integer>互转
public void test(){ int[] array = {1, 2, 3, 4, 5, 6, 7}; /*int[]转list*/ //方法一:需要导入apache commons-lang3 jar List<Integer> list = Arrays.asList(ArrayUtils.toObject(array)); //方法二:java8及以上版本 List&l...
2021-11-01 09:40:57
924
转载 java的List集合去重总结
法一:使用List的contains方法/**使用List集合contains方法循环遍历(有序) * * @param list * */public static List removeDuplicationByContains(List<Integer> list) { List<Integer> newList =new ArrayList<>(); for (int i=0;i<list.size();i++) {
2021-10-22 16:17:14
228
原创 Matplotlib画图中文显示乱码的解决方法
1.首先在C:\Windows\Fonts下查找是否有所要字体,这里使用的是常规楷体右键属性获取其名称 这里是simkai.ttf2.在程序中定义Matplotlib的字体管理,这里将其命名为zhfont1,代码如下:hfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simkai.ttf')在绘图中出现中文的地方加上字体设置,如下代码:plt.legend(prop=zhfont1)...
2021-10-17 15:03:10
307
原创 java将int数组转化为Integer数组
这里使用java8的stream来进行转化,详细步骤如下所示://初始化int数组int[] nums = {1,2,3,4,5,6};//将int数组转换为数值流IntStream stream = Arrays.stream(nums);//流中的元素全部装箱,转换为Integer流 Stream<Integer> integerStream = stream.boxed();//将流转换为数组Integer[] integers = integerStream.toArra
2021-10-09 10:57:58
7487
原创 科研文章检索平台推荐
AMiner是清华大学2006年创立的平台,可以提供国内科研人员对于各个期刊、会议论文的检索,方便查找想要了解的会议相关论文。https://www.aminer.cn/
2021-09-17 11:12:13
311
原创 解决IDEA代码编辑页面中文乱码或不规范得问题
这里主要是写出自己感觉比较好得一个设置方法,基于UTF-8来进行设置,当然肯定也有更好得设置,仅供参考。第一步:在File Encodings里面将其对应位置修改如下第二步:在Font中修改为如下编码格式最终修改完后得效果如下所示:当然以上位置还有很多字体库可以设置,大家可以自行探索,找到适合自己的。...
2021-08-19 16:46:52
509
原创 Idea 行注释设置,不从行首开始,在代码之前
在idea的初始化设置中,使用注释快捷键,会出现如下的情况,//注释符出现在行首,显得整体页面很乱后面我想将其调整为如下(不加space)所示:加入space个人建议第二种,更为清晰美观。具体设置步骤如下:进入 Settings -> Code Style -> Java ,找到 “Code Generation” Tab,然后找到 Comment Code ,将(如图中红色箭头所指向得两个复选框去掉)Line comment at first columnBlock com
2021-08-19 16:32:43
3291
7
原创 No qualifying bean of type ‘com.suming.crowd.service.api.AdminService‘ available: expected at least
问题描述:出现以上问题的主要原因还是AdminService没有加载到容器中,我遇到这个问题无非就是以下几种情况,来进行逐一排查:1.可能存在相同的bean2.是否开启扫描,3.是否加载当前bean4.是否加载xml配置5.是否扫描出问题,或者没有扫描到当前类我遇到的问题如下所示:很明显是service没有加载成功,按照上述步骤进行排查,我的问题就是web.xml的配置导致没有成功加载spring-persist-mybatis和spring-persist-tx配置文件,由于servi
2021-07-22 13:41:29
762
原创 tomcat启动错误排查方法
tomcat启动失败,没有有效提示信息,不能解决问题,这时候需要获取更加详细的项目信息。在不能成成功部署的项目目录下WEB-INF/classes创建logging.properties文件,内容为:org.apache.catalina.core.ContainerBase.[Catalina].level=INFOorg.apache.catalina.core.ContainerBase.[Catalina].handlers=java.util.logging.ConsoleHandler
2021-07-21 21:12:16
543
原创 mybatis连接mysql8.0版本报错:Could not create connection to database server.
1.更新mysql-connector-java版本:<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</versi
2021-07-21 10:16:37
562
原创 idea配置SSM出现Caused by: java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession
主要解决方式有以下几种一、缺少jar包解决方法:在pom.xml文件导入jar包<!-- MyBatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version></dependency><!-- MyBat
2021-07-21 10:06:50
1540
原创 java遍历map、map键排序、值排序
一、遍历mappublic static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("通
2021-07-04 13:34:33
593
原创 螺旋矩阵求解
描述给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。示例1输入:[[1,2,3],[4,5,6],[7,8,9]]返回值:[1,2,3,6,9,8,7,4,5]import java.util.*;public class Solution { ArrayList<Integer> list = new ArrayList<Integer>(); public ArrayList<Integer> s
2021-07-02 18:08:00
177
原创 买卖股票的最好时机题解
描述假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。示例1输入:[1,4,2]返回值:3解法一:动态规划import java.util.*;public class Solution { /** * * @param prices int整型一维数组 * @return int整型 */ public int
2021-07-02 14:39:21
392
原创 LCP 07. 传递信息
小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。每轮信息必须需要传递给另一个人,且信息可重复经过同一个人给定总玩家数 n,以及按 [玩家编号,对应可传递玩家编号] 关系组成的二维数组 relation。返回信息从小 A (编号 0 ) 经过 k 轮传递到编号为 n-1
2021-07-01 21:48:48
154
原创 windows通过Sakura Frp内网穿透实现远程控制
之前一直使用向日葵和TeamViewer作为我校内和寝室电脑的通讯工具,最近校园网将这些工具都给禁掉了,无法使用校园网进行远程控制,因此就考虑使用内网穿透来进行桌面远程控制,下面是具体的步骤:一、首先确保是两台windows电脑之间的通信,其它系统我还没有试过,应该也是可以的,需要的可以自行去官网研究。二、首先是需要对要控制的电脑进行一些设置:(1)右键我的电脑->属性,下面这两处需要勾选,确保外部电脑可以访问这台电脑。(2)选择用户里面可以看到当前被访问的用户名称(你被控制电脑的用户名)
2021-06-30 20:56:33
4501
原创 解决ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)问题
首先出现这个问题的原因可能是你的电脑的/temp临时文件夹被清空了,因此可以通过以下方法来解决:首先说下紧急情况下可以先通过TCP来进行访问:# mysql -uroot -h 127.0.0.1 -p 方法: 使用find / -name mysql.sock命令查找是否有mysql.sock文件,如果找到的话,可以建立一个软链接到/temp文件夹中,使用如下命令: ln -s /run/mysql/mysql.sock /tmp/mysql.sock(因为我这里是在/run/mysql/
2021-06-28 21:29:54
726
原创 leetcode字符串的全排列题解
class Solution { public String[] permutation(String s) { List<String> list = new ArrayList<String>(); char[] array = s.toCharArray(); // 第一个字符与后面非重复出现的交换 int n = array.length; permutate(list, array,
2021-06-22 14:36:48
488
原创 解决..\OBJ\IIC.axf: Error: L6218E: Undefined symbol ADC_Cmd (referred from adc.o).问题
出现此问题的原因是没有导入stm32f10x_adc.c文件(此文件路径无法找到)将其导入后,重新rebuild成功出了ADC其它相关错误也是如此。
2021-06-08 11:00:34
15132
4
原创 Java使用lambda自定义Arrays.sort排序规则
首先注意默认排规则,当使用sort(Objetc[] a)来进行对象的自然排序,该对象必需实现Compareable接口,重写compareableTo方法,并一般在此方法中定义这3种返回值(1,0,-1)来进行排序标准的确认。return 1 时,按照从小到大排序 (也可以是2,3.....正数) return 0 时,原位置不动 return-1 时,按照从在到小排序Integer[] numsArr = new Integer[10];Arrays.sort(numsArr,...
2021-04-12 20:11:14
6851
大文件查看工具.zip
2020-11-21
虚拟串口工具.7z
2019-06-05
plsqldeveloper.7z
2019-05-24
VSPD串口模拟驱动与O-ComTool V2.1.0下载
2019-05-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人