系列文章目录
第一章 「Java AI实战」LangChain4J接入Xinference本地大模型
文章目录
前言
随着大语言模型(LLM)的持续火热,LangChain 成为构建智能应用的事实标准。而对于 Java 开发者而言,LangChain4J 则是一把通往 AI 应用开发的新钥匙。它不仅封装了与 OpenAI、HuggingFace、Baidu、Azure 等模型服务的接入能力,更提供了类似 LangChain 的链式调用编排、上下文管理、Agent 机制、工具集成等核心功能,让 Java 开发者也能便捷地构建问答系统、RAG 应用、多轮对话、智能代理等 LLM 应用。
本系列将逐步了解 LangChain4J 的核心模块与实际用法,从基础组件到复杂链路,通过代码示例与项目实战,在 Java 的世界里轻松驾驭大模型,开启智能应用开发的新纪元。本文主要先介绍相关的基础内容。
一、简介
🚀 LangChain4J 是什么?
简介:LangChain4J 是一个专为 Java 开发者打造的开源框架,致力于将大语言模型(LLM)的强大能力以链式结构集成到 Java 应用中。它是 LangChain 在 Java 世界的“平行宇宙”,通过统一的接口封装,支持主流模型平台(如 OpenAI、Azure、HuggingFace、百度文心一言、Ollama、LocalAI 等),并提供对 Prompt 模板、Agent 智能体、多轮对话、记忆管理(Memory)、工具调用(Tool Calling)等核心能力的支持。
LangChain4J 的设计理念是:让 Java 开发者像使用标准库一样优雅地构建智能应用,不再受限于 Python 生态。
核心特性
✅ 多模型兼容(OpenAI / Claude / 文心 / Ollama 等)
🧩 支持 Prompt 模板、Chain 编排、上下文管理
🧠 内置 Memory 模块,支持多轮对话
🕹️ Agent 智能体 + Tool 插件机制
⚙️ 与 Spring Boot 无缝集成
🌍 支持 RAG(检索增强生成)场景构建
📦 Maven 依赖简单、API 易于使用
🚀 为什么使用LangChain4J ?
LangChain4J 是 LangChain 框架的 Java 语言实现,它的核心价值在于:将大模型能力嵌入到 Java 系统中,构建真正实用的“智能体”与“智能服务”。
1. Java生态兼容好,适合企业场景
- 大多数企业系统后端还是 Java(Spring Boot / JEE)
- LangChain4J 可以无缝嵌入 Java 服务,比如银行、政务、金融系统
2. 支持复杂链式调用和流程编排
- 类似流程引擎,但围绕大模型的智能推理展开
- 可以组合:LLM + 工具调用 + 数据查询 + 外部API + 状态判断 等
3. 可以打通数据库、微服务、搜索系统等
- 嵌入 RAG 检索系统
- 与业务系统双向通讯,实现 AI 助手执行复杂任务
4. 支持Agent、工具函数调用、上下文缓存等先进能力
- 真正将“调用AI”变成“调用一个有智能的组件”,具备记忆和操作力
二、使用步骤
1.pom依赖
LangChain4j 在两个抽象层次上运行:
- Low level:在此级别,可以最自由地访问所有底层组件
- High level:在此级别,可以使用 AI 服务等高级 API 与 LLM 进行交互
基础pom
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.0.0-beta3</version>
</dependency>
如果需要使用高级 AI 服务 API,则还需要添加 以下依赖项:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.0.0-beta3</version>
</dependency>
本篇选择的pom依赖如下:
<!--所有调用均基于 OpenAI 协议标准,实现一致的接口设计与规范LangChain4j 提供与许多 LLM 提供商的集成。每个集成都有自己的 maven 依赖项。
最简单的开始方式是从 OpenAI 集成开始-->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.26.0</version> <!-- 或使用最新版本 -->
</dependency>
2.API key + 模型选择
此处选择的模型为Xinference框架部署的模型,使用maxkb进行简单应用的创建。maxkb的部署和简单应用的创建可参考官网信息:
https://maxkb.cn/docs/
使用maxkb创建应用之后,可以获取应用的api key和base url。
xinference启动对应的LLM模型。Xinference的部署和使用参考往期文章:
https://blog.youkuaiyun.com/OFFTime_we/article/details/144774407?spm=1001.2014.3001.5502
3.Java服务配置文件 - application.properties
server.port=9001
spring.application.name=langchain4j
langchain4j.open-ai.chat-model.api-key=application-8cd247697f4e2b5c5b32dbae1a229b85
langchain4j.open-ai.chat-model.model-name=qwen2.5-instruct
langchain4j.open-ai.chat-model.base-url=http://localhost:8080/api/application/33405a8c-2372-11f0-84c3-0242ac110002
测试代码:
@RestController
@Slf4j
public class HelloLangChain4JController {
@Resource
private ChatLanguageModel chatLanguageModel;
@GetMapping(value = "/langchain4j/hello")
public String hello(@RequestParam(value = "prompt", defaultValue = "你是谁") String prompt) {
String result = chatLanguageModel.generate(prompt);
System.out.println("通过langchain4j调用模型返回结果:\n"+result);
return result;
}
@GetMapping(value = "/langchain4j/hello2")
public String hello2() {
String result = chatLanguageModel.generate("你好,我爱吃西瓜");
String result2 = chatLanguageModel.generate("我爱吃什么");
System.out.println("11111\n"+result);
System.out.println("2222\n"+result2);
return result;
}
}
输出结果:
三、总结
在本篇文章中,我们简要了解了 LangChain4J 的核心概念和优势,并通过实际步骤,快速完成了一个 Java 项目的基本接入。从添加 pom 依赖,到配置 API Key 和模型,再到完善服务端配置,整个流程清晰且高效。
LangChain4J 作为连接 Java 应用与大语言模型的桥梁,不仅降低了接入门槛,还为开发者提供了极大的灵活性和扩展性。无论是构建智能问答系统、自动化工具,还是结合私有知识库做定制化开发,LangChain4J 都展现了强大的潜力。
未来如果需要深度应用,比如自定义 Memory、优化 Prompt 模板、链式调用(Chain)等内容,还可以在此基础上进一步拓展。本专栏也会持续更新更深入的实战内容,欢迎大家一起探索 AI 与 Java 结合的更多可能!🚀