Java使用Langchai4j接入AI大模型的简单使用(一)
一、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大模型@Testvoid test() {ChatLanguageModel model = OpenAiChatModel.builder().apiKey("demo").modelName("gpt-4o-mini").build();String answer = model.chat("你好,你是谁?");System.out.println(answer);}//deepseek大模型@Testvoid 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);}//阿里千问大模型@Testvoid 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,这是我的英文名,你也可以叫我通义千问。我是阿里云自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。