实操审校说明

本文属于工具实操教程。插件版本、免费额度、模型入口和界面名称可能随产品更新变化,请以官方客户端或插件市场实际显示为准。教程重点是可复现工作流,不承诺固定效率提升。


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

对比项LangChain4jLangChain(Python)
语言JavaPython
生态中等丰富
性能高(Java 优势)
学习曲线
适合场景企业 Java 项目快速原型 / 研究

结论:Java 项目用 LangChain4j,Python 项目用 LangChain。


八、常见问题

❌ 问题1:依赖下载慢

解决:用国内 Maven 镜像,在 settings.xml 里配置阿里云镜像。

❌ 问题2:AI 回答不准确

解决

  1. 用更好的模型(DeepSeek V4 或 Claude Fable 5 / Sonnet 5)
  2. 优化提示词
  3. 接入知识库(RAG)

*LangChain4j 让 Java 项目快速接入 AI,适合企业级应用。*