- 博客(138)
- 资源 (11)
- 收藏
- 关注
原创 程序员玩转AI大模3-扩展机器人的能力边界
本文介绍了如何通过Tools工具机制扩展AI大模型的能力边界。重点讲解了四种核心方法:1)理解工具机制的基本原理,让大模型调用外部API获取实时数据;2)定制本地Tool工具,如获取当前日期的实例演示;3)深入解析@tool注解的使用技巧,包括自定义工具名称、描述和参数说明;4)结合大模型构建更复杂的工具,如将LCEL链转换为翻译工具。这些方法使大模型能突破固有知识限制,通过与本地应用的交互实现更强大的功能扩展。
2025-06-30 13:51:56
853
原创 程序员玩转AI大模型2-构建专属聊天机器人
本文介绍了使用LangChain构建专属聊天机器人的方法,重点讲解了LangChain表达式语言(LCEL)的应用和聊天记录保存技术。通过LCEL可以实现多步骤的复杂聊天互动,包括串行处理链、并行处理链以及动态链构建。文章还演示了如何保存聊天记录,从内存存储扩展到Redis持久化存储,并展示了如何将聊天记录功能整合到LCEL处理流程中。这些技术可以帮助开发者快速构建功能丰富、支持多轮对话的智能聊天机器人。
2025-06-29 13:42:26
878
原创 程序员玩转AI大模型0-搭建开发环境
本文介绍了使用Anaconda快速搭建Python开发环境的方法。Anaconda集成了conda、Python及常用科学计算包,简化了环境管理。文章详细讲解了Anaconda的安装步骤、创建Python环境(conda create)、激活环境(conda activate)等核心命令,并对比了conda与pip的差异。同时推荐了PyCharm和Jupyter Notebook等开发工具,指导如何在IDE中配置conda环境,特别说明Jupyter需要安装ipykernel来注册内核。最后指出这是进入AI
2025-06-26 15:25:15
544
原创 java程序员,够都不--干!干的就是java程序员
面试题就是一没有体系化的基础知识作为支撑,二没有明确的项目环境作为背景,零零散散的到处聊聊天而已,却偏偏要为了一点流量装个逼。一整个机构的人,天天专业的忙乎着这点事情,赚点生活费,到头来还不如你这时不时的出来蹦跶两下?一帮帮人,从小白学java,最少也要学个年把,好不容易到了要出山的时候了,你们一个劲的鼓吹他们白学了,趁早转行。在这个连公务员,老师的饭碗都端不稳的时代,各行各业都应该要抱团取暖的时候,你们一个个来拆柱子,属实可恶。最后,java的行情确实不好,但是,这是个大环境,不是java的祸。
2025-06-20 13:24:50
261
原创 十分钟聊明白DDD领域驱动设计
关于DDD,大部分朋友应该都听说过。 全称是Dmoain Driven Design,翻译过来就是领域驱动设计。这个神秘的架构思想,虽然远没有SpringBoot这类框架这么名声在外,但是却经常时不时冒出来,牵动一下大家的神经。美团、阿里每年的技术年会都会有关于DDD的经验分享,而另一方面,又有移动、电信等公司爆出DDD从入门到放弃的失败案例。 那么到底什么是领域驱动设计呢?是不是用上了DDD的所谓四层架构,就是在用DDD了?其实DDD这东西看起来挺抽象,但是核心就是需要搞明白三个问题。
2025-05-20 13:54:42
579
原创 程序员就不要把MCP当神话了!MCP协议深度剖析
之前给大家分享过,现在AI大模型的发展方向是希望更好的将AI大模型与传统的软件能力相结合。现在,这个方向有了更实际的突破。在2024年底,claude大模型的开发公司Anthropic提出了一个MCP(Model Context Protocol)协议。通过MCP协议,可以让应用程序以一种统一的方式向LLM大语言模型提供工具调用。
2025-04-27 17:11:28
961
原创 大模型到底是减少了焦虑还是放大了焦虑?
必不可少的谈到了焦虑。虽然生活在不断前进,也有大模型这样的技术带我们不断开启新的方向。但是,焦虑却突然的成为了时代的主题。大模型给很多小白们带来了前所未有的便利,但是同时也给另外一部分技术人带来了前所未有的焦虑。就好像我也在坚守Java,但是不得不承认,未来最主流的技术,只有一个,那就是AI。Java、Python、C#什么编程语言,对大模型来说,都是一句提示词。 如何调整焦虑?最近看到一篇分享如何读书的文章,里面提到了一个好玩的读书九字。我觉得很好玩,记录下来,安慰安慰未来的我把。
2025-04-17 17:12:24
637
原创 使用Redis构架你自己的私有大模型
Redis你通常用来做什么?缓存?分布式锁?数据过滤器?不够不够,这远远不够。之前给大家分享过基于Redis Stack提供的一系列插件,完全可以把Redis作为一个类似于Elastic Search的JSON数据库使用。不光可以存储并操作JSON格式的数据,而且可以实现各种复杂的检索。 而现在到了大模型时代,Redis又有了一个更加重要的用途:。基于向量数据库,可以实现一系列更贴近自然语言的检索功能。这也成了AI大模型应用落地的基石。
2025-03-31 09:28:33
710
原创 小白闯AI:Llama模型Lora中文微调实战
小白闯AI,Llama模型Lora中文微调实战。AI大模型应该是一个工具,让你能够更放心去闯的工具,而不应该成为偷懒的工具。而最终会抢掉人类饭碗的,永远是那些跑在你前面的人,而不是一个工具。
2025-03-21 14:53:40
1498
原创 【面试集锦】如何设计SSO方案?和OAuth有什么区别?
如果面试问你,你会做一个权限系统吗?那你肯定会说做过。不就是各种登录、验证吗。我做的第一个CRUD应用就是注册、登录。简单!但是,如果问你在工作中真的做过权限系统吗?其实很多人都只能默默摇摇头。因为在很多真实项目中,权限系统可能不是最复杂的,但一定是牵连最广的。因此往往大型项目中真正去做权限系统的,都只是非常核心的一小部分人。而如果你的应用越来越复杂,作为安全门户的权限系统也会随着变得更加复杂。各种方案层出不穷。
2025-02-12 22:43:34
1039
原创 【AI】用AI大模型来介绍什么是AI大模型,是一种什么样的感觉?
说明:这是一篇完全用阿里的Qwen2.5-max模型生成的文章,图片也是用的阿里Flux-Merged模型生成的。甚至连生成图片的提示词都是用大模型生成的。只是想要体验一下用AI写完整的技术文章是什么感觉。不过最终感觉还是不错的,尤其最后的总结。虽然这些技术听起来很酷炫,但我们仍然处于探索阶段,前方还有无数未知等着我们去发现呢。
2025-02-12 15:23:05
417
原创 实战演练JDK的模块化机制
我们写的Java应用,都是以Jar包的形式发布的,所以对于Jar包,你一定习以为常。但是,如果你有一天打开一下JDK9以后的版本在你本地的安装目录,你会发现,JDK中那些熟悉的jar包,完全不见了。取而代之的是一些jmod文件。 甚至在熟悉的IDEA里,JDK的包下也不再是一个个Jar包,而变成了一个个与这些jmod文件对应的模块。 这些jmod文件是什么呢? 其实这些jmod文件可以认为是一种特殊的jar包。JMOD设计为在编译时间和链接时间使用,但不在运行时使用。
2024-12-26 22:39:47
1182
原创 2024年总结:原来你们喜欢这样的java
最后,怎么又莫名其妙的提到了培训?现在互联网上一提培训,一提卖课,似乎就成了人人喊打的老鼠。外面什么技术不能白嫖,你还收钱?还是之前k=k++的分析视频,明明就只是一个跟风的面试视频,只不过比一般的面试八股可能更深了一点。不知道怎么被网友们给扯到卖课上面去了。中间截取了一段扯蛋,聊做回应吧。也算是给我自己这一年的交代。
2024-12-25 22:26:14
922
原创 【面试集锦】k=k++到底有没有执行自增操作
人生三大境界,见山是山,见山不是山,见山还是山! 学了好多年Java,你知道你写的java代码到底是什么样子的吗?k=k++,这样一个简单的代码,就足够考验考验Java程序员的斤两。 类似这样的非人类代码的面试题,其实不在少数。这一类面试题,想要考验的,从来不仅仅是程序员的代码理解能力,而是对语言底层逻辑的熟悉程度。 如果你是一个刚入门的Java新手,那么,对于这一类问题,只要能够推断出执行的结果就行了。
2024-12-19 20:53:32
1176
原创 【面试集锦】十分钟彻底搞懂MySQL的redolog,undolog和binlog
MySQL,是现在业界最受欢迎的关系型数据库之一,他的好处毋庸置疑。但是这也让MySQL成了面试中的重灾区。到底要怎么理解MySQL那些复杂又神秘的底层架构呢?这次楼兰就带你从日志系统出发,快速解析MySQL的整体架构设计。 MySQL的日志文件分为redolog,undolog和binlog三种。这些复杂的日志文件分别是干什么的?有什么关系?接下来我们就一层层的来拆解MySQL。
2024-12-16 10:56:27
928
原创 如何防止Class文件被反编译?
各位伟大的Java程序员,现在有一条财富自由的路摆在你的面前,你有没有信心为此去挑战一下自己? 这次我们来聊一个比较有意思的话题,如何防止Class文件被反编译。
2024-12-13 15:04:17
1174
原创 [面试集锦]海量用户信息下如何进行分库分表?
现在面试动不动就是问三高架构。应用大了,数据量多了,查询性能自然就下降了。怎么办呢?很多人自然就想到分库分表。但是一旦把底层数据库给拆分开了,在业务层面就会暴露出很多问题。那么在一个具体的业务场景下,要如何设计分库分表方案,并对方案进行优化呢?这次就以用户信息这个具体的场景来分享下如何设计分库分表方案。
2024-12-06 17:30:54
1101
原创 【面试集锦】@Autowired和@Resource有什么区别
@Autowired和@Resource这两个注解的功能都差不多,都是在Spring框架中做自动注入的。但是他们有什么区别呢?楼兰带你来分析分析
2024-12-02 16:19:09
1188
原创 程序员的AI五步提示词大法
AI大模型如火如荼,你有没有陷入过AI终将代替人类的终极焦虑? 使用AI大模型,提示词的重要性毋庸置疑。不管是向AI大模型问问题,还是围绕AI大模型构建应用,设计高效的提示词都是其中最重要的一个环节。尤其当你想要在一些具体的业务场景下使用AI大模型时,你不可能真的像聊天一样,慢慢跟大模型软磨硬泡,这时一个高效的提示词就显得尤为重要了。即便像LangChain4j,SpringAI这些纯面向程序员的AI大模型框架,其各种工具的背后,也是通过定制各种各样的提示词,从而让AI大模型帮助实现某种功能。
2024-11-26 10:22:55
2078
原创 轻松解读RocketMQ5.3.0核心源码
同步刷盘,异步刷盘?同步同步,异步同步?零拷贝,顺序写?你是不是曾经在各种各样的流量短视频和博客中听说过跟RocketMQ相关的这些亮瞎眼的高大上的技术名词?你有没有想过自己去RocketMQ中看看这些概念背后的Java代码是什么样的?如果你有过这样的想法,那么,楼兰到你到RocketMQ的源码当中逛逛,看看RocketMQ的大神们,是如何用简单常见的MVC思想开发出RocketMQ这样的神作的。
2024-10-24 19:27:52
1285
原创 Redis只用来做缓存吗?
比如在分布式场景下做用户登录功能,我们就可以将用户信息以JSON字符串的形式保存到Redis中,来代替单体应用中的Session,从而实现统一的登录状态管理。哈希函数的选择对过滤器的性能有很大影响,理想的哈希函数应该具有良好的散列性,使得不同的输入尽可能均匀地映射到位数组的不同位置。通常使用的 keys * 这样的指令,在生产环境一般都是直接禁用的,因为这样会产生严重的线程阻塞,影响其他的读写操作。所以,在布隆过滤器的初始化过程中,通常只需要指定过滤器的容量和误判率,就足够了。相对的,算法实现也就更复杂。
2024-10-17 20:02:36
998
原创 性能爆炸的多线程编排神器CompletableFuture
使用CompletableFuture,程序员可以很方便的控制线程的执行顺序。包括串行、并行或者多个线程的组合与转化功能。 CompletableFuture主要实现了两个关键接口:Future:Future是一个代表异步计算结果的对象。它允许你从一个异步操作中获取结果(一旦结果可用),取消正在执行的计算,或者检查计算是否已经完成。Future 通常与 ExecutorService 结合使用来提交任务,并且是 java.util.concurrent 包的一部分.
2024-10-17 12:59:00
1613
原创 详解ShardingSphere新增的COSID分布式主键生成框架
雪花算法对于分布式主键不冲突的作用是无可挑剔的,但是在分库分表的场景下,雪花算法却埋着一个很多人踩过却一直被人忽视的神坑。另外,ShardingSphere5.x版本集成了一个新的主键生成框架CosId。这么个小问题为什么要搞个框架?分布式主键生成问题到底要怎么玩?花点时间,我来带你一一梳理。
2023-04-21 16:00:17
2438
原创 关于程序员中年危机的一个真实案例
关于中年危机,网上已经有了各种各样的解读。但是,这两天一个学员跟我简单几句聊天,却触发了对于中年危机的另一种思考。如果你曾经也有点迷茫,或许你可以稍微花几分钟看下这个故事。
2023-02-26 18:18:44
11004
23
原创 Kafka3.x核心速查手册三、服务端原理篇-3、Broker故障恢复机制
所有Follower Partition上报后,Leader Partition才能更新HW的值,然后Follower Partition在下次拉取消息时,才能更新HW值。当Leader Partition出现切换,所有的Follower Partition都按照自己的HW进行数据恢复,就会出现数据不一致的情况。所以在很多对性能要求比较高的线上环境,会选择关闭Kafka的这个Leader Partiton自平衡操作,而用其他运维的方式手动进行Leader Partiton自平衡,尽量减少自平衡过程。
2022-09-16 19:33:25
1572
原创 Kafka3.x核心速查手册三、服务端原理篇-2、Broker选举机制
而在一个Partition的众多备份中,需要选举出一个Leader Partition,负责对接所有的客户端请求,并将消息优先保存,然后再通知其他Follower Partition来同步消息。 当一个集群内的Kafka服务启动时,就会尝试往Zookeeper上创建一个/controller临时节点,并将自己的brokerid写入这个节点。 选举产生的Controller节点,就会负责监听Zookeeper中的其他一些关键节点,触发集群的相关管理工作。
2022-09-16 19:31:06
941
原创 Kafka3.x核心速查手册三、服务端原理篇-1、Zookeeper整体数据
这一部分主要是理解Kafka的服务端重要原理。但是Kafak为了保证高吞吐,高性能,很多具体实现都是相当复杂的。如果直接跳进去学习研究,很快就会晕头转向。所以,找一个简单清晰的主线就显得尤为重要。这一部分主要是从存储的角度来理解Kafka的Broker运行机制。这对于上一章节建立的简单模型,是一个很好的细节补充。 Kafka依赖很多的存储数据,但是,总体上是有划分的。Kafka会将每个服务的不同之处,也就是状态信息,保存到Zookeeper中。
2022-09-16 19:28:49
823
原创 kafka如何保证消息不丢失?半分钟的答案和半个小时的答案有点不一样。
关于Kafka保证消息不丢失的问题,就简单总结到这里,但这其实并不是结束。相反,随着你对Kafka理解得越深,你会发现这个问题会有更多的发散空间。像MQ如何保证消息不丢失?如何不重复消费?如何处理消息积压?等等,这都是一系列非常开放的面试题。对于你是否真正理解了每个MQ产品,是非常好的检验标准。所以,这么好的题目,如果只是简简单单背个八股文,那太可惜了。...
2022-08-30 19:47:54
8595
NettyDemo.zip
2021-06-12
Java类加载的故事-修正终结版.zip
2020-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人