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 回复 分享
发布于 今天 09:55 山东

相关推荐

今天 09:35
门头沟学院 Java
八股很久没复习,回答的一坨大学期间最得意的项目是什么?为什么要做这个电商商城项目?这个电商商城项目里你是自己独立完成还是合作完成的?最近一年你印象最深刻的开发卡点是什么?Java 中线程控制的方法有哪些呢?AOP(面向切面编程)是什么?过滤器和拦截器有什么区别?可以简单讲一下 @Autowired 注解吗?它和 @Resource 的区别是什么?你熟练 MySQL 数据库索引,索引的分类可以讲一下吗?怎么创建一个 MySQL 索引?哪些情况会导致 MySQL 索引失效?事务的四个特性和四个隔离级别分别是什么?使用 Redis 做缓存会存在什么问题?秒杀系统中如何保证缓存和数据库的一致性?项目中用到的登录相关技术(Cookie、Session、SSO、JWT 等),可以解释并说明它们之间的区别吗?可以简单介绍几种常用的数据结构及其特点吗?对于难以复现、几率极低的 bug,你会按哪些步骤处理?你更喜欢接手已有项目还是做全新的项目?为什么?如果设计一个新项目,应该优先考虑什么?新加入团队,你觉得自己该怎么做才能更快融入团队、进入工作状态?最近有关注什么技术热点吗?你使用过或了解过哪些数据库?可以简述 MySQL、Redis、PG 的区别吗?手撕:全排列空闲时间一般会做什么?------------------------------已过,hr面没接
查看48道真题和解析
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

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