LangChain4j 快速上手:Java 开发者的 AI 入门第一步

文章目录

    • 前言
    • [一、LangChain4j 是什么](#一、LangChain4j 是什么)
    • 二、5分钟跑起第一个对话
    • [三、让 AI 有"记忆"------对话历史](#三、让 AI 有"记忆"——对话历史)
    • [四、让 AI 调用你的方法------Tool Use](#四、让 AI 调用你的方法——Tool Use)
    • [五、跟 Spring Boot 集成](#五、跟 Spring Boot 集成)
    • 总结

前言

这篇文章带你用 LangChain4j 在 Java 项目里跑起第一个 AI 对话,从零到能用只需要 20 分钟。

很多 Java 开发者想接 AI 能力,但 Python 的 LangChain 上手门槛高、又不想切语言。LangChain4j 就是为这个场景设计的------Java 原生,API 风格熟悉,直接 Maven 引入就能用。


一、LangChain4j 是什么

一句话:Java 版的 AI 应用开发框架,封装了 LLM 调用、RAG、工具调用、MCP 等常用能力。

复制代码
你的 Java 代码
     ↓
LangChain4j(统一接口)
     ↓
Claude / GPT / Gemini / 本地模型

不用关心每个模型的 API 差异,换模型只改配置。


二、5分钟跑起第一个对话

第一步:加依赖

xml 复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-anthropic</artifactId>
    <version>1.0.0</version>
</dependency>

第二步:写代码

java 复制代码
import dev.langchain4j.model.anthropic.AnthropicChatModel;
import dev.langchain4j.model.chat.ChatLanguageModel;

public class HelloAI {
    public static void main(String[] args) {
        ChatLanguageModel model = AnthropicChatModel.builder()
                .apiKey(System.getenv("ANTHROPIC_API_KEY"))
                .modelName("claude-sonnet-4-6")
                .build();

        String answer = model.generate("用一句话解释什么是 Spring Boot");
        System.out.println(answer);
    }
}

第三步:设置 API Key

bash 复制代码
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxx

运行,完事。


三、让 AI 有"记忆"------对话历史

默认每次调用都是无状态的,AI 不记得上一句说了什么。加上 ChatMemory 就能有上下文:

java 复制代码
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.service.AiServices;

interface Assistant {
    String chat(String message);
}

public class MemoryDemo {
    public static void main(String[] args) {
        ChatLanguageModel model = AnthropicChatModel.builder()
                .apiKey(System.getenv("ANTHROPIC_API_KEY"))
                .modelName("claude-sonnet-4-6")
                .build();

        Assistant assistant = AiServices.builder(Assistant.class)
                .chatLanguageModel(model)
                .chatMemory(MessageWindowChatMemory.withMaxMessages(10))
                .build();

        System.out.println(assistant.chat("我叫小明"));
        System.out.println(assistant.chat("我叫什么名字?")); // 能答出"小明"
    }
}

AiServices 是 LangChain4j 的核心设计:用 Java 接口定义 AI 能力,框架帮你生成实现。


四、让 AI 调用你的方法------Tool Use

这才是 LangChain4j 的精华。你写一个 Java 方法,AI 能决定什么时候调用它:

java 复制代码
import dev.langchain4j.agent.tool.Tool;

class WeatherTool {
    @Tool("查询某个城市的天气")
    public String getWeather(String city) {
        // 这里接真实天气 API
        return city + "今天晴,25°C";
    }
}

// 注册给 AI
Assistant assistant = AiServices.builder(Assistant.class)
        .chatLanguageModel(model)
        .tools(new WeatherTool())
        .build();

System.out.println(assistant.chat("北京今天天气怎么样?"));
// AI 会自动调用 getWeather("北京"),然后回答

用户问天气,AI 自动调你的方法,再把结果整合成回答。全自动。


五、跟 Spring Boot 集成

加一个 starter 依赖,自动配置全搞定:

xml 复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

application.yml 配置:

yaml 复制代码
langchain4j:
  anthropic:
    chat-model:
      api-key: ${ANTHROPIC_API_KEY}
      model-name: claude-sonnet-4-6

然后直接 @Autowired ChatLanguageModel model 注入使用,跟普通 Bean 一样。


总结

功能 用到的类
基础对话 AnthropicChatModel
对话记忆 MessageWindowChatMemory
接口化 AI AiServices
工具调用 @Tool 注解
Spring 集成 starter 自动配置

LangChain4j 对 Java 开发者很友好,学习曲线比 Python 那套平很多。从这篇入门,下一步可以看 RAG(让 AI 读你的文档)和 MCP(接外部工具)。

下一篇:LangChain4j + MCP------让 Java AI Agent 操作本地文件系统