Java接入大模型再也不用手写HTTP!极简上手Langchain4j,小白也能看懂
哈喽各位Java小伙伴👋
最近越来越多业务需要接入大模型,很多同学接入OpenAI、通义千问、本地Llama3的时候,都踩过这些坑:
-
每家大模型接口格式不一样,切换模型就要改一遍代码
-
手写HTTP请求、拼接prompt、解析返回值,重复代码巨多
-
想做多轮对话记忆、本地知识库RAG、工具调用,从零开发成本太高
今天给大家安利Java生态专属AI框架:Langchain4j,一行代码搞定大模型调用,统一屏蔽所有大模型差异,不用懂底层HTTP,Java开发者零门槛开发AI应用。
一、一句话搞懂:Langchain4j是什么?
简单直白解释:
Langchain4j 就是 LangChain 的Java专属版本,专为Java/Kotlin开发者打造的大模型应用开发框架。
它核心解决一个痛点:统一所有大模型接口。
不管你用OpenAI、阿里通义千问、百度文心一言、本地开源大模型,代码完全不用改,只需要切换底层模型配置即可。
它能帮我们做什么?日常开发全覆盖
-
✅ 基础单轮/多轮对话(自带对话记忆)
-
✅ RAG本地知识库问答(企业最常用)
-
✅ AI工具调用(让大模型调用你的Java接口)
-
✅ 结构化输出(强制大模型返回JSON,不用自己解析)
-
✅ 无缝整合SpringBoot,开箱即用
二、5分钟Hello World:最简单大模型调用
不搞复杂概念,直接上手代码,原生Java项目零配置跑通。
1. 引入Maven依赖
<dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>1.14.0</version> </dependency>
2. 核心代码(极简,无需封装HTTP)
import dev.langchain4j.model.openai.OpenAiChatModel;
public class Langchain4jHello {
public static void main(String[] args) {
// 初始化大模型,填入自己的key和代理地址
OpenAiChatModel model = OpenAiChatModel.builder() .apiKey("你的API_KEY") .baseUrl("代理地址") // 国内使用必填
.temperature(0.7) // 创意度,0严谨,1脑洞大
.build(); // 直接发起对话,一行代码获取结果
String answer = model.chat("用大白话解释什么是微服务");
System.out.println("AI回答:" + answer);
}
}
运行直接出结果,全程不用写任何HTTP请求、不用拼接请求体,框架全部封装完毕。
三、两个高频实用功能,业务直接照搬
1. 多轮对话(自带记忆,上下文连贯)
原生调用大模型是没有记忆的,每次对话都是独立请求,Langchain4j内置ChatMemory,开箱即用对话记忆:
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
public class ChatMemoryDemo {
// 定义AI助手接口,无需写实现类
interface AiAssistant {
String chat(String msg);
}
public static void main(String[] args) {
OpenAiChatModel model = OpenAiChatModel.builder()
.apiKey("你的API_KEY")
.baseUrl("代理地址")
.build();
// 设置对话记忆,保留最近10条对话
MessageWindowChatMemory memory = MessageWindowChatMemory.withMaxMessages(10);
// 自动动态代理生成AI服务
AiAssistant assistant = AiServices.builder(AiAssistant.class)
.chatLanguageModel(model)
.chatMemory(memory)
.build();
System.out.println(assistant.chat("我叫小明"));
System.out.println(assistant.chat("我叫什么名字?"));
// AI可以记住上文,正确回答:小明
}
}
亮点:面向接口编程,不用手动管理对话上下文,框架自动维护聊天记录。
2. 强制大模型返回JSON(解决返回格式混乱问题)
业务开发中经常需要大模型返回固定格式数据,以往需要反复写prompt约束,Langchain4j直接注解搞定,强制结构化输出:
// 定义需要返回的实体类
record UserInfo(String name, Integer age, String hobby) {}
interface AiAssistant {
UserInfo getUserInfo(String msg);
}
// 调用直接返回实体对象,无需手动解析JSON
UserInfo userInfo = assistant.getUserInfo("介绍一下25岁喜欢打球的张三");
System.out.println(userInfo.name());
再也不用手写JSON解析,极大减少脏代码!
四、SpringBoot整合,企业级开发标配
日常开发基本都是SpringBoot项目,整合更加简单,自动装配零冗余代码。
1. 引入SpringBoot专属依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-spring-boot-starter</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>1.14.0</version>
</dependency>
2. yml配置文件直接配置参数
langchain4j:
open-ai:
chat-model:
api-key: 你的key
base-url: 代理地址
temperature: 0.7
3. 直接注入使用
@RestController
@RequestMapping("/ai")
public class AiController {
@Autowired
private ChatLanguageModel chatLanguageModel;
@GetMapping("/chat")
public String chat(String msg){
return chatLanguageModel.chat(msg);
}
}
直接启动项目,接口即可调用大模型,零业务层冗余代码。
五、Langchain4j VS 原生HTTP调用,优势对比
|
对比项 |
原生手写HTTP |
Langchain4j |
|---|---|---|
|
接口适配 |
每个大模型单独适配,改模型必改代码 |
统一API,无缝切换各类大模型 |
|
对话记忆 |
需要自己存上下文、拼接prompt |
内置多种记忆模式,开箱即用 |
|
RAG/工具调用 |
从零开发,工程量极大 |
官方封装好,直接调用API |
|
开发效率 |
低,大量重复基建代码 |
极高,专注业务逻辑即可 |
六、适用场景总结
如果你正在做以下业务,直接无脑选用Langchain4j:
-
后台系统接入AI问答、智能客服
-
本地知识库、文档问答(RAG场景)
-
AI代码生成、内容改写、文案生成
-
需要大模型调用本地接口、实现智能Agent
七、博主总结
对于Java开发者来说,不用再跟风Python的LangChain生态,Langchain4j完全对齐官方能力,且更贴合Java面向接口、Spring生态的开发习惯。
不用关心底层大模型的接口差异,不用重复造轮子做HTTP封装,把精力全部放在业务上即可。
更多推荐



所有评论(0)