实操审校说明
本文属于工具实操教程。插件版本、免费额度、模型入口和界面名称可能随产品更新变化,请以官方客户端或插件市场实际显示为准。教程重点是可复现工作流,不承诺固定效率提升。
LangChain4j 教程:Java 项目接入 AI 能力实战
📅 更新时间:2026 年 6 月
🔧 参考环境:LangChain4j v0.35+ / Java 17+ / Spring Boot 3.2+
👤 适合人群:Java 后端开发者,想接入 AI 能力
⏱ 预计完成时间:1 小时
一、LangChain4j 是什么?
LangChain4j 是 Java 版的 LangChain,让 Java 开发者能轻松接入 AI 模型:
| 功能 | 说明 |
| 接入 LLM | 支持 OpenAI/DeepSeek/Claude/Ollama |
| RAG | 构建知识库,让 AI 基于文档回答 |
| 工具调用 | AI 可以调用 Java 方法(Function Calling) |
| 记忆 | 多轮对话上下文管理 |
| 链式调用 | 把多个 AI 调用串联起来 |
二、快速开始:第一个 AI 对话程序
步骤1:创建 Spring Boot 项目
访问:https://start.spring.io/
- Project:Maven
- Language:Java
- Spring Boot:3.2.x
- Dependencies:添加
Spring Web
步骤2:添加 LangChain4j 依赖
pom.xml:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.35.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
<version>0.35.0</version>
</dependency>
步骤3:配置 API Key
application.yml:
langchain4j:
open-ai:
chat-model:
api-key: sk-你的DeepSeekKey
base-url: https://api.deepseek.com/v1
model-name: deepseek-v4-flash
步骤4:写对话接口
import dev.langchain4j.service.AiServices;
import org.springframework.web.bind.annotation.*;
public interface Assistant {
String chat(String message);
}
@RestController
public class ChatController {
private final Assistant assistant;
public ChatController() {
// 初始化 AI 助手
assistant = AiServices.create(Assistant.class);
}
@GetMapping("/chat")
public String chat(@RequestParam String msg) {
return assistant.chat(msg);
}
}
步骤5:运行测试
mvn spring-boot:run
# 浏览器访问
curl "http://localhost:8080/chat?msg=你好"
三、接入 DeepSeek(省钱方案)
LangChain4j 支持任何兼容 OpenAI API 的模型,DeepSeek 完全兼容:
langchain4j:
open-ai:
chat-model:
api-key: sk-你的DeepSeekKey
base-url: https://api.deepseek.com/v1 # DeepSeek 的兼容接口
model-name: deepseek-v4-flash
四、RAG 知识库(让 AI 基于你的文档回答)
步骤1:添加依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-easy-rag</artifactId>
<version>0.35.0</version>
</dependency>
步骤2:上传文档并查询
import dev.langchain4j.rag.content.retriever.EasyRagContentRetriever;
import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.document.loader.FileSystemDocumentLoader;
// 加载文档
List<Document> docs = FileSystemDocumentLoader.loadDocuments("docs/");
// 构建知识库
EasyRagContentRetriever retriever = EasyRagContentRetriever.from(docs);
// 将知识库绑定到 AI 助手
Assistant assistant = AiServices.builder(Assistant.class)
.contentRetriever(retriever)
.build();
五、工具调用(Function Calling)
让 AI 能调用你的 Java 方法(比如查数据库、调接口):
import dev.langchain4j.service.Tool;
public class WeatherTools {
@Tool("获取某个城市的天气")
public String getWeather(String city) {
// 调用天气 API
return "北京今天晴天,25°C";
}
}
// 绑定工具
Assistant assistant = AiServices.builder(Assistant.class)
.tools(new WeatherTools())
.build();
// 现在 AI 可以自己调用 getWeather 方法了
// 用户问:「北京天气怎么样?」→ AI 会自动调用 getWeather("北京")
六、完整示例:AI 客服接口
@RestController
@RequestMapping("/api")
public class CustomerServiceController {
private final Assistant assistant;
public CustomerServiceController() {
// 接入知识库(产品文档)
List<Document> docs = FileSystemDocumentLoader.loadDocuments("docs/products/");
EasyRagContentRetriever retriever = EasyRagContentRetriever.from(docs);
// 接入工具(查订单)
OrderTools orderTools = new OrderTools();
// 构建 AI 助手
assistant = AiServices.builder(Assistant.class)
.contentRetriever(retriever)
.tools(orderTools)
.build();
}
@PostMapping("/chat")
public Map<String, String> chat(@RequestBody Map<String, String> body) {
String reply = assistant.chat(body.get("message"));
return Map.of("reply", reply);
}
}
七、LangChain4j vs Python LangChain
| 对比项 | LangChain4j | LangChain(Python) |
| 语言 | Java | Python |
| 生态 | 中等 | 丰富 |
| 性能 | 高(Java 优势) | 中 |
| 学习曲线 | 中 | 低 |
| 适合场景 | 企业 Java 项目 | 快速原型 / 研究 |
结论:Java 项目用 LangChain4j,Python 项目用 LangChain。
八、常见问题
❌ 问题1:依赖下载慢
解决:用国内 Maven 镜像,在 settings.xml 里配置阿里云镜像。
❌ 问题2:AI 回答不准确
解决:
- 用更好的模型(DeepSeek V4 或 Claude Fable 5 / Sonnet 5)
- 优化提示词
- 接入知识库(RAG)
*LangChain4j 让 Java 项目快速接入 AI,适合企业级应用。*