- 博客(70)
- 收藏
- 关注
原创 使用Cursor快速开发微信小程序
最近很多人都开始使用Cursor辅助开发,我自己也尝试了下,发现确实好用,有了解放生产力的感觉,可以快速验证自己的想法,因此想写文记录一下,等三个月或者半年后再来看看这篇文章,对比下AI领域或者AI编程领域的发展。我这次开发的微信小程序叫“瞅瞅今天吃什么”,大家有兴趣的可以去微信搜搜看看。
2025-01-04 18:59:03
1664
原创 ThreadLocal里的变量一定是线程独享的吗?
印象里,我们一直认为ThreadLocal类由于是线程独享的,那么它存储的变量数据一定是线程安全的。ThreadLocal类本身的数据是线程安全的,那么它的衍生类InheritedThreadLocal和TransmittableThreadLocal还是线程安全的吗?
2024-08-03 16:03:49
813
原创 微软开源GraphRAG的使用教程-使用自定义数据测试GraphRAG
这篇文章主要介绍了微软开源的GraphRAG的安装教程,并以《太白金星有点烦》为例,动手实操测试了下GraphRAG的实际效果。
2024-07-08 09:30:00
25915
58
原创 看互联网大厂如何落地AI-Agent(2)
随着人工智能技术的快速发展,AI Agent正逐步进入企业生产领域,成为推动企业智能化转型的关键力量。华为云aPaaS首席架构师陈星亮深入探讨了AI Agent在企业生产中的技术实践,并展望了其未来的发展方向。
2024-07-05 09:15:00
1016
原创 看互联网大厂如何落地AI-Agent(1)
在金融领域,多智能体系统的应用正逐渐成为创新的热点。蚂蚁集团资深算法专家陈鸿在其报告中深入探讨了从大模型到多智能体的转变,并分析了多智能体在金融场景中的应用潜力。
2024-07-03 23:14:57
805
原创 使用Java也能开发大模型应用?让我们一探究竟
有时候,在开发应用时,需要使用大模型或其他AIGC技术,常常需要调用Python服务提供的接口。但是,有些时候,可能功能比较简单轻量,再新建一个Python服务提供接口调用感觉有些过于复杂。因此,我想尝试在Java中实现一些简单的AIGC技术场景。
2024-06-02 17:47:52
2874
原创 时隔一年,再次讨论下AutoGPT-安装篇
AutoGPT是23年3月份推出的,距今已经1年多的时间了。刚推出时,我们还只能通过命令行使用AutoGPT的能力,但现在,我们不仅可以基于AutoGPT创建自己的Agent,我们还可以通过Web页面与我们创建的Agent进行聊天。这次的AutoGPT讨论可以分为两篇,第一篇,也就是现在这篇,主要是介绍Web版AutoGPT的安装教程(官方教程写的不太详细);第二篇,会介绍一下当前AutoGPT的技术架构,以及部分代码解读。
2024-04-15 21:55:10
2752
2
原创 RAG近期发展综述
本文主要介绍了一些RAG技术,涉及到常见的问题以及解决方案、业界实践以及最新进展等,后续出现新的RAG技术时,也会即时更新此文
2024-02-17 20:55:01
1585
原创 基于llama-index对embedding模型进行微调
本文主要讲述了对RAG领域中常见的embedding模型使用专业数据进行微调的一种简单方法。
2023-12-24 16:47:50
5712
14
原创 Milvus向量数据库常见用法
Milvus是一种用于大规模相似度搜索和分析的开源向量数据库。它旨在提供高效的向量检索和快速的数据查询能力,适用于各种应用领域,包括图像和视频识别、自然语言处理、推荐系统等。
2023-07-02 22:14:34
3592
原创 langchain简版教程附案例
langchain是一个开源的应用开发框架。基于该开源框架,我们可以把大模型与各种工具结合从而实现各种功能,比如基本文档的问答,解析网页内容、查询表格数据等。目前支持Python和TypeScript两种编程语言。当前Python框架支持的模型和功能最全面。
2023-05-28 20:35:11
6551
4
原创 HTTP2.0协议学习
在优化页面加载速度的时候,发现了HTTP1.1并发数的限制,为了解除这个限制,准备把网站协议升级到HTTP2.0.之前在学习《趣谈网络协议》的时候,有学习过HTTP2.0协议,但是没有输出成文档,因此借这个机会,系统梳理一下。
2023-02-28 23:23:52
872
原创 解决实际项目中stalled时间过久的问题
在公司参与了一个做度量统计的项目,该项目的特点是页面上的表格、卡片、图标非常多。项目经常出现一种情况:页面加载速度较慢,开始怀疑是由于计算量较大,后端接口相应速度较慢。优化了一版后端接口后(加缓存、优化SQL),发现有时接口的相应速度还是很慢,有的接口能达到3秒多,严重影响了用户体验。
2023-02-19 00:18:55
12443
2
原创 Spring Boot项目读取不到配置文件中的“url“属性
最近新起了一个spring boot项目,配置了MySQL作为项目的数据库。但是在项目启动时,报错:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could found。
2022-10-09 22:27:26
6236
1
原创 记一次服务部署失败问题排查
上周五的时候某一功能本地开发完成后,需要部署到线下环境进行前后端联调。在部署的时候提示“进程反复重启”从而部署失败,在本地启动时代码可以正常启动。
2022-06-26 12:05:11
824
原创 MySQL中函数的使用
建表语句create table products( prod_id char(10) not null primary key, vend_id int not null, prod_name char(255) not null, prod_price decimal(8, 2) not null, prod_desc text
2022-03-20 15:03:48
1118
原创 利用K-均值聚类算法对未标注数据分组
无监督学习简介无监督学习是一种机器学习的训练方式,它本质上是一个统计方法,在没有标签的数据里可以发现潜在的一些结构的一种训练方式。无监督学习主要具备3个特点:无监督学习没有明确的目的无监督学习不需要给数据打标签无监督学习无法量化效果无监督学习的使用场景:案例1:发现异常有很多违法行为都需要”洗钱”,这些洗钱行为跟普通用户的行为是不一样的,到底哪里不一样?如果通过人为去分析是一件成本很高很复杂的事情,我们可以通过这些行为的特征对用户进行分类,就更容易找到那些行为异常的用户,然后再深入分
2022-03-06 23:59:15
1587
原创 记一次因MySQL编码问题导致的慢查询排查
问题背景在工作时,有一个联表查询的操作,两个表,每个表大概20万条数据,查询语句类似下面的SQL语句。select a.name1, a.name2, b.name1, b.name2from table1 a, table2 b on a.name3 = b.name3 and a.name4 = b.name4;两个表的name3和name4字段都建立了索引,但是查询速度依旧很慢。分析问题使用explain分析该语句,发现表b并没有使用索引,而是采用了全部遍历的方式。表b上的name3,
2021-08-22 23:44:32
406
原创 删除文件夹下的指定格式的文件(Java实现)
删除文件夹下的指定格式的文件之前在本地用cloudreve搭建了私人网盘,然后发现在上传图片或者文档时,总会同时产生后缀为_thumb的文件,这些文件还不小。在这种情况下,如果我存的是一系列小文件,那么_thumb文件会占用大量的磁盘空间,最后决定使用kodbox作为一个私人云盘了。由于需要把所有文件夹内的_thumb文件删除,便写了这个脚本。这个脚本可以删除指定文件夹下任意格式和名称的文件。import java.io.File;public class Deletefile { pub
2021-06-25 17:25:17
828
原创 记一次让自己排查好久的小bug
起因今天在做LRU缓存机制这个题的过程中,出现了一个问题,就是发现自己写的逻辑没啥问题,但是就是出错,最后把代码贴到IDEA中debug一下才发现了问题所在。详情大家有兴趣的话可以看看以下代码有啥区别正确代码class LRUCache { class LRUNode{ int key; int value; LRUNode pre; LRUNode next; public LRUNode(){}
2021-03-23 22:08:03
623
原创 Generic Array Creation,泛型数组创建时提示出错
起因前两天在刷leetcode时,遇到一个设计题,需要设计一个哈希集合,当时的想法就是创建一个链表数组,用链表来解决哈希冲突问题。然而在编写时,编译器报错,如下图所示。分析为什么会出现编译错误呢?这里就是泛型数组的问题了。在Java中,数组是支持协变(Covariant)的,而泛型是不可变(Invariant)的。当两者在一起的时候,就会出现问题。我们先来看看协变和不可变的定义协变:是指子类型关系在类型变换的作用下保持原样。逆变:指的是子类型关系在类型变换的作用下发生逆转。不可变:表示子
2021-03-15 21:18:00
9455
2
原创 2020年度总结(随时有可能更新补充)
这是目录工作学习生活读书情感21年大致规划最近自己喜欢的几个博主都更新了自己的年度总结,我也跟风更新一下。这是自己第二次在博客上写年度总结。2020年因为疫情的原因,过的很快。上半年一直在家,直到7月份才返校。返校后就开始忙活找工作的事情了,然后找工作的事情忙完了,又开始准备第二篇小论文的实验。忙活完了实验,就来北京实习了。本来21年的一月份就该做年度总结的,但是吧,总觉得过了春节才是真正的过完一年,所以拖到了现在。工作想了想,还是决定把工作和学习分开来说了,因为自己在学校做的事情与自己找工作的方
2021-02-19 23:38:34
257
原创 Java中BufferedReader与Scanner的比较(基于源码jdk15)
最近在用Java刷题,看到大佬说用BufferedReader读取输入会比Scanner快一些,自己试了一下,确实快一些。实验题目为Acwing题库中的第568题(看讨论区说使用Scanner会超时,自己尝试后发现并没有超时,但是Scanner的速度确实会慢不少)。为了比较,我都是使用这两个类来把输入读取为字符串,然后再手动解析成整数,并没有使用该类自带的方法来解析//Scanner版本,多次测试平均完成时间为1900ms上下import java.util.*;import java.io.*;
2020-10-11 16:11:39
488
2
原创 将springboot项目升级到HTTP2
背景介绍最近想把一个项目升级到HTTP2,与升级HTTP2相关的各个组件的版本信息如下springboot 2.1tomcat 9.0JDK 1.8Ubuntu 18.04让项目支持HTTP/2.0,需要先支持HTTPS协议,然后再根据tomcat的版本进行系列依赖的安装,如libtcnative依赖
2020-07-01 21:34:36
7045
2
原创 使用TLS加密netty应用
问题描述自己基于Netty做了一个类IM项目,没有使用Spring框架,用到了应用层协议HTTP和websocket,在大致框架完成后,想对传输内容进行加密,便用到了TLS协议,用此博文记录自己的加密过程以及睬的坑。TLS部分KeyTool部分Netty...
2020-06-15 22:45:32
1763
1
转载 NAPI简介
什么是NAPINAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 POLL 的方法来轮询数据。为什么使用NAPI中断缓和 (Interrupt mitigation)。在日常使用中,网卡产生的中断可能达到每秒几千次,而如果每次中断都需要系统来处理,是一个很大的压力,而 NAPI 使用轮询时是禁止了网卡的接收中断的,这样会减小系统处理中断的压力;数据包节流 (Packet throttling),N
2020-06-14 20:38:13
7670
原创 使用git管理自己的项目
这两天在学习netty的时候顺便完成了一个小demo,在实现这个demo的过程中,发现了代码版本管理的重要性,因此今天下午认真学习了Git,并写这个博客来记录一下。首先说,Git是什么?Git是目前世界上最先进的分布式版本控制系统,通过Git,我们可以轻松地回滚到我们需要的任一历史版本;同时在团队协作时,我们能够更容易...
2020-05-20 18:00:18
5105
1
原创 ArrayList使用迭代器遍历删除元素(迭代器的具体实现)
问题简述为什么使用for循环遍历删除ArrayList中的元素会出错,而使用迭代器方法就不会出错(此处不考虑fast-fail机制问题)?查阅各种博客,只知道遍历删除元素时的正确方法,但是不知道为什么该方法正确,因此写这篇博客记录一下。问题描述ArrayList的底层数据结构是数组,在数组中删除元素,我们可以直接用待删除元素的下一位元素覆盖待删除元素,然后将后面的元素依次往前挪动即可。实际...
2020-04-28 23:15:43
5555
3
原创 面试题19:正则表达式匹配(剑指offer-Java版)
今天在刷剑指offer的时候,遇到一个正则表达式匹配的问题,看题解时觉得题解有点问题,所以就自己写个博客记录一下。题目描述请实现一个函数用来匹配包含"*“和”.“的正则表达式。模式中的字符‘.’表示任意一个字符,而”*"表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*...
2020-01-05 16:09:29
360
原创 redis常用命令
开始运行redis默认端口是6379,可以通过–port参数改变开启的端口redis-server --port 6380 登录redisredis-cli -h 127.0.0.1 -p 6380添加键值对set hello world或者setnx hello world批量添加键值对mset a 1 b 2 c 3更新键值对set hello redis x...
2019-12-23 10:13:35
187
原创 JAVA学习笔记--lambda表达式
lambda表达式是一个可传递的代码块,可以在以后执行一次或多次。lambda表达式的形式(参数)->表达式举例如下(String first,String second)->first.length()-second.length()如果代码要完成的计算无法放在一个表达式中,可以用{}把这些计算括起来,如下(String first,String second) -&g...
2019-11-25 20:51:57
238
原创 JAVA学习笔记--接口篇
接口指定了类必须执行的操作,但并不指定具体的方法,可以把接口当作类的大纲或者蓝图(如果一个类实现了一个接口,但并没有为该接口中的所有方法提供方法主体,那么该类必须是抽象类)。类实现接口的步骤将类声明为实现给定的接口对接口中的所有方法进行定义举例如下class Employee implements Comparable //implements关键字表示类实现某个接口{ ......
2019-11-25 16:36:28
213
原创 JAVA学习笔记--继承篇
构建子类子类和超类我们现在先来搞清两概念:子类和超类。先来看以下Java语句。public class Manager extends Employee{}在该语句中,extends起到了继承的作用,它表明正在构造的新类派生于一个已经存在的类,Manager继承了Employee。Manager称为子类(派生类、孩子类),而Employee称为超类(基类、父类)。“超”和“子”这两个...
2019-11-24 14:39:22
270
原创 JAVA学习笔记--基础篇
数据类型JAVA是一种强类型语言(python也是一种强类型语言),每个变量都有一个类型。JAVA一共有8种基本类型,其中有4种整型、2种浮点类型、1种用于表示Unicode编码[1]的字符单元的字符类型char以及一种表示真值的boolean类型。整型JAVA中的整型分为四种,int(4字节)、short(2字节)、long(4字节)以及byte(1字节)。与C/C++不同,JA...
2019-11-21 15:27:05
867
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人