Langchain4j学习(1)
LangChain4j 是 Java 生态的 LangChain 实现,旨在帮助开发者轻松集成 大语言模型(LLM)(如 OpenAI、DeepSeek、Llama3)到 Java 应用中。它提供了统一的 API,支持 对话模型(Chat)、嵌入(Embedding)、检索增强生成(RAG)、智能代理(Agent) 等功能,适用于企业级 AI 应用,简单来说就是将java与大模型集合并进行运用。
1. 什么是 LangChain4j?为什么要学 LangChain4j?
LangChain4j 是 Java 生态的 LangChain 实现,旨在帮助开发者轻松集成 大语言模型(LLM)(如 OpenAI、DeepSeek、Llama3)到 Java 应用中。它提供了统一的 API,支持 对话模型(Chat)、嵌入(Embedding)、检索增强生成(RAG)、智能代理(Agent) 等功能,适用于企业级 AI 应用,简单来说就是将java与大模型集合并进行运用
大模型(LLM)的普及:以 ChatGPT、DeepSeek、Claude 等为代表的大语言模型正在改变软件开发方式,但直接调用 API 难以满足复杂业务需求(如知识库问答、自动化流程等)。
Java 企业开发生态的需求:Python 有 LangChain,但 Java/Kotlin 企业级应用(如金融、电商、ERP)同样需要 AI 集成方案。
LangChain4j 的诞生:作为 LangChain 的 Java 移植版本,它填补了 Java 生态在大模型应用开发工具链上的空白。
2.为什么选择 LangChain4j?
Java 友好:无缝集成 Spring Boot、Quarkus 等框架。
模块化设计:灵活替换模型(OpenAI/DeepSeek/LocalAI)。
企业级支持:适合高并发、安全敏感的场景。
3.构建一个基础的 LangChain4j实现
可以先去官方文档查看方法Get Started | LangChain4j

首先构建一个基本的maven项目(用jdk17),然后导入需要的依赖
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>3.2.6</spring-boot.version>
<langchain4j.version>1.0.0-beta3</langchain4j.version>
<mybatis-plus.version>3.5.11</mybatis-plus.version>
</properties>
<dependencies>
<!-- web应用程序核心依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 编写和运行测试用例 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 基于open-ai的langchain4j接口:ChatGPT、deepseek都是open-ai标准下的大模型 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<!--langchain4j依赖管理清单-->
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bom</artifactId>
<version>${langchain4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--引入SpringBoot依赖管理清单-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
创建启动类与application.properties,写端口后,然后就可以进行示例的创建,在test中进行测试(记住包名要测试类与主应用类相同),如下
@Test
public void testGPTEDemo(){
OpenAiChatModel model = OpenAiChatModel.builder()
.baseUrl("http://langchain4j.dev/demo/openai/v1")
.apiKey("demo")
.modelName("gpt-4o-mini")
.build();
String chat = model.chat("你好,我是谁?");
System.out.println(chat);
}
这里的测试模型是LangChain4j官方给的示例,代码在官方文档里面也有,这样基本上就可以完成测试
4.LangChain4j与springboot整合
文档为Spring Boot Integration | LangChain4j,上面的方法既麻烦又不能和springbot进行较好的交互,接下来就是将LangChain4j与springboot整合,首先进行依赖替换,将langchain4j-open-ai替换成
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
</dependency>
然后我们就可以将所有配置写在application.properties中
langchain4j.open-ai.chat-model.base-url=http://langchain4j.dev/demo/openai/v1
langchain4j.open-ai.chat-model.api-key=demo
langchain4j.open-ai.chat-model.model-name=gpt-4o-mini
langchain4j.open-ai.chat-model.log-requests=true
langchain4j.open-ai.chat-model.log-responses=true
之后,我们再测试一下与springboot整合后的情况
@Autowired
private OpenAiChatModel openAiChatModel;
@Test
public void testGPTSpringbootDemo(){
String chat = openAiChatModel.chat("你好世界");
System.out.println(chat);
}
使用langchain4j-open-ai-spring-boot-starter依赖后,再在properties中配置好OpenAI的key和模型名称,就可以直接注入OpenAiChatModel,然后调用chat方法,chat里面就是你与大模型的对话内容可自由发挥
我们不仅可以注入OpenAiChatModel来使用,也可以用
ChatLanguageModel:
在 LangChain4j(Java 版本的 LangChain)中,OpenAiChatModel 和 ChatLanguageModel 的关系是 实现(Implementation)与抽象接口(Interface) 的关系
private ChatLanguageModel openAiChatModel;//OpenAiChatModel 实现了 ChatLanguageModel 接口,符合 依赖倒置原则(依赖抽象,而非具体实现)。
@Test
public void testGPTSpringbootDemo(){
String chat = openAiChatModel.chat("deepseek在api引入时为什么用的是openai标准");
System.out.println(chat);
}
结语
这篇讲述了LangChain4j的基本运用与springboot的集成,接下来将学习接入其他大模型
更多推荐


所有评论(0)