一、LangChain4j 简介
LangChain4j 是 Java 生态中的 LangChain 实现,是一个用于构建大语言模型(LLM)应用程序的框架。它提供了与各种LLM服务集成的能力,并简化了构建复杂AI应用的过程。
LangChain4j官方文档:Integrations | LangChain4j
1、核心特性
多模型支持:支持OpenAI、Azure OpenAI、HuggingFace、DeepSeek等多种LLM提供商
模块化设计:包含多个功能模块,可根据需要单独使用
简化集成:提供简洁的API与LLM交互
Java原生:专为Java开发者设计,无需学习Python生态
2、主要组件
1. 模型交互 (Chat Models)
2. 提示模板 (Prompt Templates)
3. 记忆管理 (Memory)
4. 链式调用 (Chains)
5. 工具集成 (Tools)
3、典型使用场景
聊天机器人:构建具有记忆功能的对话系统
文本处理:摘要、翻译、改写等
问答系统:基于文档的智能问答
数据提取:从非结构化文本中提取结构化信息
代码生成:辅助编程和代码解释
注意:本文使用的是jdk17
二、Langchai4j的使用
1、创建一个maven工程,引入Langchai4j依赖
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<langchain4j.version>1.0.0-beta1</langchain4j.version>
</properties>
<dependencies>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.0.0-beta1</version>
</dependency>
<!--openai/deepseek大模型依赖-->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<!--阿里千问大模型依赖-->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope</artifactId>
<version>${langchain4j.version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.11.4</version>
</dependency>
</dependencies>
2、 创建一个单元测试类,使用各个大模型提示提问:
import dev.langchain4j.community.model.dashscope.QwenChatModel;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.junit.jupiter.api.Test;
/**
* @author:
* @Desc:大模型接入测试
* @create: 2025-07-12 14:14
**/
public class Langchain4jDemo {
//chatgpt大模型
@Test
void test() {
ChatLanguageModel model = OpenAiChatModel.builder()
.apiKey("demo")
.modelName("gpt-4o-mini")
.build();
String answer = model.chat("你好,你是谁?");
System.out.println(answer);
}
//deepseek大模型
@Test
void testDeepSeek(){
ChatLanguageModel model = OpenAiChatModel
.builder()
.baseUrl("https://api.deepseek.com")
.apiKey("your key")
.modelName("deepseek-reasoner")
.build();
String answer = model.chat("你好,你是谁?");
System.out.println(answer);
}
//阿里千问大模型
@Test
void testQwenAi(){
ChatLanguageModel model = QwenChatModel
.builder()
//.baseUrl("https://dashscope.aliyuncs.com")
.apiKey("your key")
.modelName("qwen-max")
.build();
String answer = model.chat("你好,你是谁?");
System.out.println(answer);
}
}
3、注意事项:
1.本文使用的Langchai4j的1.0.0-beta1版本,该版本为了降低Langchai4j的门槛,提供一个demo的apiKey,如果key为demo,请求将发送到http://langchain4j.dev/demo/openai/v1进行访问openai,后面的版本去掉这一处理,国内无法直接访问openai;
2.deepseek跟openai使用同一接口规范,因此如果引入了langchain4j-open-ai的依赖
使用deepseek不用再单独引入deepseek的依赖。构建的方式也跟openai一样,使用
ChatLanguageModel model = OpenAiChatModel.builder()
来进行构建,使用deepseek需要到官网DeepSeek | 深度求索首页右上角的API开放平台创建apikey并进行充值才可以使用;
3.使用阿里千问,需引入专门的依赖:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope</artifactId>
<version>${langchain4j.version}</version>
</dependency>
在使用前需要到阿里云百炼:大模型服务平台百炼控制台 注册账号创建apikey,有免费额度,
拿到key后进行编码开发,构建方式需要使用千问的类进行:
ChatLanguageModel model = QwenChatModel.builder()
运行后分别输出:
1、openai
你好!我是一个人工智能助手,旨在回答问题和提供信息。有任何你想了解的内容吗?
2、deepseek,deepseek响应较慢,等待时间较长
你好呀!👋我是 **DeepSeek-R1**,是由中国的 **深度求索公司(DeepSeek)** 开发的一款智能助手。你可以把我当作一个知识丰富、乐于助人的AI伙伴~无论是学习、工作、写作、编程,还是生活琐事、情感倾诉,我都可以尽力帮上忙!
✨我的特点包括:
- **免费使用**(目前完全免费,没有收费计划)
- **超长记忆上下文**(最多可处理128K字符)
- **文件阅读能力**(支持上传PDF、Word、Excel、PPT等文件)
- **联网搜索**(部分平台支持联网获取最新信息)
- **逻辑推理强**,尤其擅长数学、编程、写作类任务如果你愿意的话,可以把我当作一个24小时在线的朋友~
😊那今天有什么我可以帮你的吗?
3、阿里千问:
你好!我是Qwen,这是我的英文名,你也可以叫我通义千问。我是阿里云自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。