Java程序员AI开发新姿势!LangChain4j零基础入门+SpringBoot实战
我们是由枫哥组建的IT技术团队,成立于2017年,致力于帮助IT从业者提供实力,成功入职理想企业,我们提供一对一学习辅导,由知名大厂导师指导,分享Java技术、参与项目实战等服务,并为学员定制职业规划,全面提升竞争力,过去8年,我们已成功帮助数千名求职者拿到满意的Offer:IT枫斗者、IT枫斗者-Java面试突击。
01 引言
提起大模型(LLM)应用开发,绝大多数开发者第一时间想到的都是Python。Python凭借丰富的AI生态,成为LLM开发的主流选型。
虽然Spring AI已经正式推出,补齐了Java生态的AI开发短板,但在使用体验、生态适配、灵活性上,始终差强人意。很多Java开发者不想跨语言、不想脱离熟悉的Java/Spring技术栈,却一直没有一款轻量化、原生适配的LLM开发框架。
LangChain4j 的出现完美解决了这个问题!今天带大家从零上手,解锁Java程序员接入AI大模型的全新姿势,零基础实现大模型快速接入与业务开发。
02 LangChain4j 核心简介
LangChain4j 是官方 LangChain 的 Java/JVM 原生版本,核心目标是让Java开发者无需切换技术栈,即可像Python开发者一样,便捷、高效地搭建LLM驱动的AI应用。
它并非简单的Python代码翻译移植,而是基于Java思想从零设计,深度适配Spring Boot、Quarkus、Helidon等主流Java生态,完美兼容依赖注入、动态代理、注解开发等Java核心特性,上手门槛极低。
核心能力亮点
- 统一API适配:一套API对接OpenAI、谷歌Gemini、通义千问、智谱等主流大模型,同时兼容Milvus、Pinecone、Chroma等向量数据库,无需适配各家差异化SDK
- Java原生设计:依托接口、注解、泛型、依赖注入等Java原生特性,贴合Java开发者编码习惯
- 分层抽象设计:底层提供ChatModel、ChatMessage等基础组件,满足高度定制化需求;上层封装AI Services、RAG等高阶能力,大幅精简业务代码
- 版本适配:最低支持 JDK17,适配现阶段主流Java项目版本
官方地址
GitHub:github.com/langchain4j
03 快速入门:基础环境搭建
推荐使用Maven BOM统一管理版本,避免版本冲突,这是企业级项目的最佳实践。
3.1 引入Maven依赖
先在项目中配置BOM版本管理,统一约束LangChain4j版本:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-bom</artifactId>
<version>1.15.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- OpenAI 适配依赖 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
<!-- 核心基础依赖 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
</dependency>
</dependencies>
3.2 极速体验:OpenAI在线模型测试
没有私有API Key也能快速体验!LangChain4j官方提供免费Demo密钥,仅支持 gpt-4o-mini 模型,适合新手快速验证环境。
import dev.langchain4j.model.openai.OpenAiChatModel;
public class LangChain4jTest {
public static void main(String[] args) {
OpenAiChatModel model = OpenAiChatModel.builder()
.baseUrl("http://langchain4j.dev/demo/openai/v1")
.apiKey("demo")
.modelName("gpt-4o-mini")
.build();
// 调用大模型对话
String answer = model.chat("Java如何快速接入AI大模型?");
System.out.println("大模型回复:" + answer);
}
}
运行代码即可拿到模型返回结果,无需复杂配置,极简接入!
3.3 本地部署:接入Ollama私有大模型
除了在线大模型,LangChain4j完美适配本地Ollama部署的私有模型,数据不上云、安全性更高,适配内网项目开发。
1)引入Ollama专属依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
</dependency>
2)完整测试案例
根据自己本地Ollama部署的模型名称、IP端口修改配置:
import dev.langchain4j.model.ollama.OllamaChatModel;
import org.junit.jupiter.api.Test;
public class OllamaModelTest {
@Test
void testOllamaChat() {
// 构建本地Ollama大模型实例
OllamaChatModel model = OllamaChatModel.builder()
.baseUrl("http://10.100.213.26:11434") // 本地Ollama服务地址
.modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest") // 本地模型名
.build();
// 对话调用
String response = model.chat("你是什么模型?");
System.out.println("本地模型回复:" + response);
}
}
核心优势:纯Java独立运行,不依赖Spring生态,普通Java项目、工具类均可直接使用,灵活性拉满!
04 核心进阶:AI Services 高阶抽象
AI Services 是 LangChain4j 最核心、体验最佳的高阶能力,也是区别于其他AI框架的核心亮点。
4.1 核心设计思路
借鉴 Spring Data JPA、Retrofit 的经典思想:仅需定义业务接口,框架通过动态代理自动生成实现类。开发者无需手动处理Prompt拼接、模型调用、结果解析等底层逻辑,专注业务开发即可。
4.2 基础接口调用
1)定义AI业务接口
public interface Assistant {
// 通用对话方法
String chat(String message);
}
2)通过AiServices创建代理实例并调用
import dev.langchain4j.service.AiServices;
import org.junit.jupiter.api.Test;
public class AiServiceTest {
@Test
void testAiServiceChat() {
// 初始化本地模型
OllamaChatModel model = OllamaChatModel.builder()
.baseUrl("http://10.100.213.26:11434")
.modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
.build();
// 动态代理生成接口实现类
Assistant assistant = AiServices.create(Assistant.class, model);
// 直接调用方法对话
String response = assistant.chat("hello,介绍一下LangChain4j");
System.out.println(response);
}
}
4.3 角色设定:@SystemMessage注解
通过 @SystemMessage 注解可快速给AI注入角色、行为规范、业务定位,无需每次对话重复传参,全局生效。
1)带角色设定的AI接口
import dev.langchain4j.service.SystemMessage;
public interface Friend {
// 定义AI角色:情绪价值陪伴助手
@SystemMessage("你是我的专属朋友,性格温柔,总能给我提供满满的情绪价值,语言通俗易懂。")
String chat(String userMessage);
}
2)调用测试
@Test
void testRoleChat() {
OllamaChatModel model = OllamaChatModel.builder()
.baseUrl("http://10.100.213.26:11434")
.modelName("modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest")
.build();
Friend friend = AiServices.create(Friend.class, model);
String response = friend.chat("我最近压力很大,心情很差");
System.out.println(response);
}
运行后AI会严格按照设定的角色回复,精准实现定制化AI能力!
05 SpringBoot 一站式集成实战
LangChain4j 官方提供SpringBoot专属启动器,无缝适配Spring生态,支持自动注入、配置化管理,适配企业级项目开发。
5.1 引入SpringBoot Starter依赖
<!-- LangChain4j SpringBoot核心启动器 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
</dependency>
<!-- Ollama SpringBoot适配启动器 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama-spring-boot-starter</artifactId>
</dependency>
5.2 改造AI接口(自动注入Bean)
使用 @AiService 注解,框架自动将接口注册为Spring Bean,无需手动创建代理对象,直接注入使用即可。
import dev.langchain4j.service.AiService;
import dev.langchain4j.service.SystemMessage;
@AiService
public interface Friend {
@SystemMessage("你是我的专属朋友,性格温柔,总能给我提供满满的情绪价值,语言通俗易懂。")
String chat(String userMessage);
}
5.3 配置文件参数绑定
在 application.yml 或 application.properties 中配置Ollama模型参数,统一管理环境配置:
# Ollama大模型配置
langchain4j.ollama.chat-model.base-url=http://10.100.213.26:11434
langchain4j.ollama.chat-model.model-name=modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest
5.4 单元测试调用
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.junit.jupiter.api.Test;
@SpringBootTest
public class BootLangChain4jTests {
// 自动注入AI服务Bean
@Autowired
private Friend friend;
@Test
void testChat() {
String response = friend.chat("我失恋了,心情很不好");
System.out.println("AI回复:" + response);
}
}
启动测试即可正常调用本地大模型,全程零冗余代码,企业级开发直接落地!
06 总结
LangChain4j 彻底解决了Java开发者AI开发跨语言、生态不适配、开发繁琐的痛点,相比Spring AI,它更轻量化、更贴合Java原生思想、上手成本更低。
核心优势总结:
- 纯Java原生生态,无需切换Python,老Java项目无缝接入AI能力
- 统一API适配多厂商大模型,灵活切换云端/本地模型
- AI Services动态代理抽象,极简代码实现复杂AI业务
- 完美集成SpringBoot,适配企业级工程化开发
⭐️推荐:
更多推荐


所有评论(0)