别只会写 Java 了!LangChain4J 带你弯道超车 AI 赛道

什么是LangChain4J

要想知道LangChain4j是什么,就要知道LangChain。

LangChain 是一个开源框架,用于构建基于大语言模型(LLM)的智能应用。它由 Harrison Chase 于 2022 年创建,现已成为 LLM 应用开发的事实标准之一。

LangChain4j 是 LangChain 的官方 Java 实现 ,由 LangChain 核心团队支持,专为 Java 和 JVM 开发者设计,用于构建基于大语言模型(LLM)的智能应用,如 RAG(检索增强生成)、Agent(智能体)、对话系统等。

LangChain4j 官网:docs.langchain4j.dev/


LangChain 与 LangChain4j 的核心区别在于:它们是同一理念在不同编程语言生态中的官方实现 。

LangChain 最初是 Python 版本 ,而 LangChain4j 是其官方 Java/JVM 实现,由 LangChain 团队支持,专为 Java 开发者设计。

阿里百炼大模型

申请阿里百炼大模型,来对接qwen 大模型。

bailian.console.aliyun.com/

登录阿里云账号,进入模型服务,选择qwen-max模型,点击进入API参考页面

自行申请api-key即可

api-key配置页面

整合SpringBoot

基础对话问答

引入langchain、百炼大模型依赖

xml 复制代码
<properties>
        <java.version>17</java.version>
        <langchain4j.version>1.0.0-beta1</langchain4j.version>
</properties>

<dependency>
  <groupId>dev.langchain4j</groupId>
  <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

<dependency>
  <groupId>dev.langchain4j</groupId>
  <artifactId>langchain4j</artifactId>
  <version>${langchain4j.version}</version>
</dependency>



<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>dev.langchain4j</groupId>
                <artifactId>langchain4j-community-bom</artifactId>
                <version>${langchain4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

选择qwen-max

接入后,我们需要加载依赖到springboot项目中,搜索 dashscope-spring-boot-starter 找到AutoConfig

在配置文件中进行配置api-key、model-name信息

ini 复制代码
langchain4j.community.dashscope.chat-model.api-key=${apiKey} # 阿里百炼大平台申请apiKey
#langchain4j.community.dashscope.chat-model.model-name=qwen-max

测试AI基础问答

less 复制代码
@Resource
QwenChatModel qwenChatModel;

@RequestMapping("/chat")
public String test(@RequestParam(defaultValue="你是谁") String message) {
    String chat = qwenChatModel.chat(message);
    return chat;
}

效果

流式对话

加入依赖

xml 复制代码
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

增加代码

typescript 复制代码
@Resource
StreamingChatLanguageModel qwenStreamingChatModel;

@RequestMapping(value = "/stream_chat",produces ="text/stream;charset=UTF-8")
    public Flux<String> streamChat(@RequestParam(defaultValue="你是谁") String message) {
        return Flux.create(sink -> {
            qwenStreamingChatModel.chat(message, new StreamingChatResponseHandler() {
                @Override
                public void onPartialResponse(String partialResponse) {
                    sink.next(partialResponse);  // 逐次返回部分响应
                }

                @Override
                public void onCompleteResponse(ChatResponse completeResponse) {
                    sink.complete();  // 完成整个响应流
                }

                @Override
                public void onError(Throwable error) {
                    sink.error(error);  // 异常处理
                }
            });
        });
    }

测试效果

结语

LangChain4J是Java程序员面向AI应用开发的必备技能,通过此示例,我们可以基本的了解到在SpringBoot项目中如何对接AI来对自己的业务系统进行升级。 未来,Java AI应用开发是一个大趋势,作为Java程序员,AI是必备技能。

相关推荐
BD_Marathon2 分钟前
LangChain的简介
langchain
ikun_文14 分钟前
LangChain-常用场景
langchain·agent
雾行0x0014 分钟前
粗排:如何在毫秒级筛出值得精排的内容?
后端·架构
D1213815 分钟前
从零用 C++17 写一个 API 网关:线程模型、控制面分离,以及三个真实 Bug
后端
Scene21615 分钟前
AgentScope Java 进阶:2.如何精准定义问题类型与处理“不确定性”?
后端
用户3459668152116 分钟前
在嵌入式 Linux 摄像头上跑 WebRTC:metaRTC 8.0 的 8 个坑与解法
后端
znnnk17 分钟前
【AI技术】Vibe Coding 实践指南:从项目规划到高效开发
人工智能·ai·ai编程·ai ide·vibe coding
今天早睡19 分钟前
用 State、Reducer 和条件边搭出可控循环
后端
站大爷IP20 分钟前
Python的字符串格式化把我坑惨了,原来f-string和format的区别这么大
后端
雾行0x0023 分钟前
精排:推荐系统如何给内容打分?从多目标预估到分数融合
后端·架构