LangChain4j(Java 版 LangChain)速成教学

收到评论区的朋友邀请,我写一下这个教学,我本人是java转行,所以还是有java的基础,

不讲废话哦,直接开始,

一、LangChain4j 是什么?

  • Java 实现的 LangChain 框架
  • 让你用 Java 调大模型(如 OpenAI)、加记忆、连知识库、做 Agent
  • 核心思想:Model + Prompt + Chain = App

说白了也就那一套,前端还是tomcat之类的。

然后很多朋友还会问也没有类似fastapi的前端框架,

现在正常的话是几步走,首先假设我们有三年开发经验,(现在是面试吹牛时间)

那么第一步就是了解需求,第二步骤是技术选型,第三步是和产品或者其他伙伴讨论可行性,第四步就是问客户意见/或者给几个方案,第五步就是快速迭代开发,最后才是优化剩余的小部分(这个一听就知道你在公司做过实际开发而且具备自己的思考hh)

那么同样的,我们这里以实际案例作为来说,这里用langchian4j,肯定就是搞agent了,

首先不考虑工作流或者模型的部分,因为这里暂时讲纯代码,那么我们肯定就只能去找替代品了,

因为没有能实现这个或者比这个优秀的框架,所以暂时选择:Spring Boot + Springdoc OpenAPI/Javalin,

那么为什么选择这个,首先要考虑fastapi是什么,有什么特点,(我这里废话很多,但是全是有用的东西,我在教你怎么做事情)

其实反而是这个东西在中国的教育是最欠缺的。他的特点也就是速度快,生成文档,有个代码补全之类的乱七八糟的。

这里就不上代码了,你知道有这么个东西然后面试吹牛吹的过就可以了,Springdoc OpenAPI这个是比较全的生产级,

下面这个javalin是比较轻便的,你下来整着玩一下就行了,现在技术迭代确实很快,每天都有新鲜玩意,每天都像圣诞节。

好了接着讲上面这个langchain4J:这个其实就是传统java框架,

var model = OpenAiChatModel.builder()
6    .apiKey("sk-你的-key")
7    .modelName("gpt-4o") // 或 gpt-3.5-turbo
8    .build();
11String answer = model.generate("你好,你是谁?");
12System.out.println(answer);

这里我们可以看到生成一套流程,在maven下载库导入包之后,可以来一个模板化框架,中间上自己要用的模型就行了。

再往下也可以配上memory(记忆),RAG之类的,然后你可以封装成类,然后让agent调用这个ai类。

核心组件如下:

ChatLanguageModel 连大模型

AiServices 自动生成 AI 接口

ChatMemory 加对话记忆

EmbeddingStore + Retriever 实现 RAG(知识库问答)

基本上讲完了,这个没什么区别,可以说只是做了一个自适应的java版。

其实编程语言是通的,反而编程框架不重要,那么编程框架不重要,继而八股文不重要,

作为程序员你真正的核心竞争力是创造价值的能力,公司不管要什么你都可以做,你想要什么东西你都可以做,

这份能力与资本才是你最值得骄傲的东西,我做过量化程序,做过市商订单撮合,做过tg的跟单bot,做过x的实用插件,

做过个人博客网站,做过链条开发,也做过rag,金融agent,网安agent,还有各种乱七八糟的东西,这份好奇心支撑着我去探索,而正是这份探索有了

现在写博客教程的经历,所以说你应该去做的是思考,去做感兴趣的事情而不是每天背八股文背各种编程语言的效用,我个人而言反倒是觉得本末倒置了。

那么也是1300字了,拜拜了,还有什么想了解的都可以评论,我都会看,也会讲网安或者solidity之类的开发。

#产品每日一题##聊聊我眼中的AI#
大模型集合 文章被收录于专栏

这里全放大模型的,需要自取,后面可能没什么空搞这些了。

全部评论
点点关注,点点赞朋友吗,我的流量好少现在,
1 回复 分享
发布于 2025-12-08 09:55 山东
请问一下想走 agent 开发或者是 ai 应用开发是不是后端的那一套都要会呀
点赞 回复 分享
发布于 01-06 20:06 广东
太强了佬,支持!
点赞 回复 分享
发布于 2025-12-11 09:38 福建
兄弟们点赞点赞
点赞 回复 分享
发布于 2025-12-09 10:49 湖北
好好好 兄弟们点赞
点赞 回复 分享
发布于 2025-12-09 09:41 湖北
ai怎么转后端了,这些大家都会
点赞 回复 分享
发布于 2025-12-09 09:27 江西

相关推荐

04-12 18:08
已编辑
合肥工业大学宣城校区 Java
1. 自我介绍2. Java是否为你使用最多的开发语言3. 项目为实际实习项目还是个人自研项目4. Java包含哪些锁及对应特性5. 日常使用最多的锁类型6. Synchronized属于JVM层面还是其他层面的锁7. Synchronized与ReentrantLock的适用场景8. Spring Boot中Bean的加载流程9. Java如何实现类似C++析构函数的资源释放与优雅停机能力(想答GC,面试官说不是这个,就答了Bean销毁阶段加注解,应该对了)10.TCP三次握手过程,为什么要第三次握手11. 多线程与多进程的区别,及对线程和进程的理解12. Java线程与操作系统线程的映射比例13. 父子进程间常见的通信机制14. 同一应用内单个进程挂掉是否会影响其他进程15. 多线程之间是否会相互影响16. 单一线程异常是否会导致其他所有线程挂掉17. 写文件从用户态到内核态再到磁盘写入的全流程中,存在缓存的环节(不会,答了缓存池让我答得更具体点. Gemini说是操作系统底层的 Page Cache页缓存和 Kernel Buffer内核缓冲区)提示:思考CAS是用户态的还是内核态的18. MySQL表数据超两千万行推荐分库分表的原因19. 表数据超两千万行后的性能瓶颈 (磁盘到内存的IO操作)20. 表数据超两千万行前后的IO次数变化及平均增量21. MySQL选用B+树作为索引数据结构的原因22. 不分库分表时20毫秒的RT是否会影响业务23. MySQL binlog、redolog、undolog各自解决的核心问题24. Redis高性能的核心体现25. Redis Zset的底层实现, 为什么用压缩列表而非仅用跳表实现26. 做过的最有挑战性的项目介绍(经典外卖)27. 项目是否上线,有无真实用户使用28. 项目难点,流程,接口设计29. 下单流程中Redis扣减库存成功但MySQL更新失败导致数据不一致的处理方案30. Redis缓存击穿、缓存穿透、缓存雪崩的核心含义31. 三类缓存问题的应对与规避方案32. 如果用Redis做持久化 , 热点key大量并发访问时,如何实现多请求仅单次回源Redis以降低压力(完全想不到,Gemini说要加Local Cache实现多级缓存)手撕:用快速排序整理链表(看我卡了,就说归并也行.最后用归并做了)反问:1.哪里可以提升(进程线程,redis,项目的常用指标要了解)2.pdd业务有没有ai升级(公司会有一些插件集成大模型放到你的IDE里面去写代码,研发团队负责了解得比较深,开发只需要会用就好.)3.部门详情(报了一大堆技术栈我也没听明白,后面有人找就结束了)要是纯八股的话答得还行,一旦结合场景要拓展要测试上限就炸了还有拼多多那个编译器真懒得喷,啥提示都没有,我连public都手快打错了不知道能不能过,面试机会是真少
点赞 评论 收藏
分享
查看12道真题和解析
点赞 评论 收藏
分享
评论
10
29
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务