LangChain4j简述与示例
🚀 LangChain4j简述与示例
让 Java 开发者也能轻松玩转大模型!
📖 什么是 LangChain4j?
LangChain4j 是一个专为 Java 开发者量身打造的大模型集成框架。
它的核心目标很简单:简化将 LLM(大语言模型)集成到 Java 应用中的过程。
无论你是想用 OpenAI、通义千问,还是 DeepSeek,LangChain4j 都提供了一套统一的 API,让你不用为每个模型重写代码——换模型?改一行配置就行。

🎯 核心优势
1️⃣ 专为 Java 而生
LangChain4j 深度集成了 Quarkus、Spring Boot、Helidon 等主流 Java 框架,可以实现:
- ✅ 从 Java 代码直接调用大模型
- ✅ 让大模型反过来调用你的 Java 代码(工具调用)
- ✅ 双向互动,无缝衔接

2️⃣ 统一 API,告别适配地狱
各大模型平台(OpenAI、Google Vertex AI、通义千问等)和向量数据库(Milvus、Pinecone 等)各有各的 API。
LangChain4j 做了什么呢?统一抽象。
你只需要面向一套接口编程,想换模型?切换配置即可,无需重写任何业务代码。
3️⃣ 开箱即用的工具箱
自 2023 年初以来,社区已经构建了海量的 LLM 应用。LangChain4j 把这些最佳实践提炼成了即用型组件:
| 组件 | 说明 |
|---|---|
| 📝 Prompt 模板 | 灵活的提示词模板引擎 |
| 💬 聊天记忆 | 自动管理多轮对话上下文 |
| 🔍 RAG 管道 | 完整的检索增强生成方案 |
| 🗄️ 向量存储 | 支持 20+ 主流向量数据库 |

🌐 支持的大模型平台
LangChain4j 目前支持 15+ 主流大模型平台,覆盖国内外主流厂商:


💡 重点平台速览
- DashScope(阿里百炼) — 通义千问系列
- Ollama — 本地部署开源模型
- 千帆(百度) — 文心一言系列
- 智谱 AI — ChatGLM 系列
- DeepSeek — 深度求索
- OpenAI / Anthropic / Google — 海外主流
🔑 阿里百炼模型调用指南
以阿里百炼平台(DashScope)为例,手把手教你接入。
Step 1:获取API Key
登录百炼平台 → 创建 API Key:


⚠️ 安全提示:API Key 请妥善保管,建议配置为环境变量,不要硬编码到代码中!
Step 2:选择模型 Code
进入模型广场,选择你想要的模型,复制对应的 Code:


📌 常用模型:
qwen-plus(通义千问-Plus)、qwen-turbo(通义千问-Turbo)
Step 3:获取 Base URL
点击模型的 API 参考,获取调用地址:

🔑 DeepSeek 模型调用指南
平台地址
进入 DeepSeek 开放平台,查看用量和 API Key 管理。

创建 API Key


💻 Hello World 实战:接入阿里百炼
理论讲完了,直接上代码!我们用一个完整的 Spring Boot 项目来演示。
1️⃣ 创建项目模块

2️⃣ Maven 依赖
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.whc</groupId>
<artifactId>langChain4j-whc</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>langchain4j-whc-helloworld</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- LangChain4j OpenAI 兼容模块 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
</dependency>
<!-- LangChain4j 核心 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
💡 关键点:使用
langchain4j-open-ai模块,因为百炼平台兼容 OpenAI 的 API 格式。
3️⃣ 配置文件
server:
port: 9001
spring:
application:
name: langChain_whc_helloWord
ai:
dashScope:
apiKey: ${AI_DASHSCOPE_API_KEY}
modelName: ${AI_DASHSCOPE_MODEL_NAME}
baseUrl: ${AI_DASHSCOPE_BASE_URL}
📌 三部分对应关系:
apiKey→ 你的 API KeymodelName→ 模型 Code(如qwen-plus)baseUrl→ 模型调用地址
4️⃣ 启动类
@SpringBootApplication
public class HelloWorldApp {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApp.class, args);
}
}
5️⃣ 大模型配置类
@Slf4j
@Configuration
public class LlmConfig {
@Value("${ai.dashScope.apiKey}")
private String apiKey;
@Value("${ai.dashScope.modelName}")
private String modelName;
@Value("${ai.dashScope.baseUrl}")
private String baseUrl;
@Bean
public ChatModel chatModel() {
return OpenAiChatModel.builder()
.apiKey(apiKey)
.modelName(modelName)
.baseUrl(baseUrl)
.build();
}
}
🔐 最佳实践:API Key 等敏感参数建议配置为环境变量,避免泄露。
6️⃣ 测试接口
@Slf4j
@RestController
public class HelloController {
@Resource
private ChatModel chatModel;
@GetMapping("langChain4j/hello")
public String hello(@RequestParam(value = "question", defaultValue = "你是谁") String question) {
String result = chatModel.chat(question);
log.info("调用大模型回复: " + result);
return result;
}
}
7️⃣ 测试效果
问题 1:介绍下自己

问题 2:佛山有什么特色美食?

🎉 恭喜! 你的第一个 LangChain4j 应用已经跑通了!
💻 进阶实战:同时接入多个模型
实际项目中,我们可能需要同时接入多个模型进行对比或切换。下面演示如何同时接入 阿里百炼 + DeepSeek。
1️⃣ 扩展配置
server:
port: 9001
spring:
application:
name: langChain_whc_helloWord
ai:
dashScope:
apiKey: ${AI_DASHSCOPE_API_KEY}
modelName: ${AI_DASHSCOPE_MODEL_NAME}
baseUrl: ${AI_DASHSCOPE_BASE_URL}
deepSeek:
apiKey: ${AI_DEEPSEEK_API_KEY}
modelName: ${AI_DEEPSEEK_MODEL_NAME}
baseUrl: ${AI_DEEPSEEK_BASE_URL}
2️⃣ 配置环境变量

3️⃣ 配置类(多 Bean)
@Slf4j
@Configuration
public class LlmConfig {
@Value("${ai.dashScope.apiKey}")
private String dashScopeApiKey;
@Value("${ai.dashScope.modelName}")
private String dashScopeModelName;
@Value("${ai.dashScope.baseUrl}")
private String dashScopeBaseUrl;
@Value("${ai.deepSeek.apiKey}")
private String deepSeekApiKey;
@Value("${ai.deepSeek.modelName}")
private String deepSeekModelName;
@Value("${ai.deepSeek.baseUrl}")
private String deepSeekBaseUrl;
@Bean
public ChatModel dashScopeChatModel() {
return OpenAiChatModel.builder()
.apiKey(dashScopeApiKey)
.modelName(dashScopeModelName)
.baseUrl(dashScopeBaseUrl)
.build();
}
@Bean
public ChatModel deepSeekChatModel() {
return OpenAiChatModel.builder()
.apiKey(deepSeekApiKey)
.modelName(deepSeekModelName)
.baseUrl(deepSeekBaseUrl)
.build();
}
}
4️⃣ 接口类(多模型路由)
@Slf4j
@RestController
@RequiredArgsConstructor
public class HelloController {
private final ChatModel dashScopeChatModel;
private final ChatModel deepSeekChatModel;
@GetMapping("langChain4j/dashScope/hello")
public String dashScopeHello(
@RequestParam(value = "question", defaultValue = "你是谁") String question) {
String result = dashScopeChatModel.chat(question);
log.info("调用 dashScope 大模型回复: " + result);
return result;
}
@GetMapping("langChain4j/deepSeek/hello")
public String deepSeekHello(
@RequestParam(value = "question", defaultValue = "介绍下自己") String question) {
String result = deepSeekChatModel.chat(question);
log.info("调用 deepSeek 大模型回复: " + result);
return result;
}
}
5️⃣ 测试效果
阿里百炼(通义千问):

DeepSeek:

🔥 同一个问题,不同模型的回复风格各异,你可以根据业务场景灵活选择!
📝 总结
通过这篇文章,我们完成了:
| ✅ | 内容 |
|---|---|
| 1 | 了解 LangChain4j 的核心定位和优势 |
| 2 | 认识支持的大模型平台 |
| 3 | 掌握阿里百炼模型的接入流程 |
| 4 | 掌握 DeepSeek 模型的接入流程 |
| 5 | 完成 Hello World 实战 |
| 6 | 实现多模型同时接入 |
LangChain4j 让 Java 开发者也能零门槛接入大模型,统一 API + 开箱即用的组件,真正做到了 Write Once, Run Any LLM。
🚀 还在等什么?赶紧在你的 Java 项目中接入大模型吧!

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)